сильно не пинайте, только начал изучать ПХП
создаю клас для работы с базой данных с использованием PDO
есть метод класа который выводит содержымое таблицы в зависимости от переданых в него имен столбцов или вывод всех столбцов по дефолту
при выводе всех столбцов работает, при выводе кастомных столбцов выводится только первая строка но WHILE продолжает работать потому что таблица генерируется но только с первой строчкой
я предполагаю что проблема в цыкле вот только не могу понять где
PHP:
скопировать код в буфер обмена
class database{ var $db_host='*'; var $db_name='*'; var $db_user='*'; var $db_pswd='*'; function showRecords($sql,$vCols='all'){ $dsn=$this->db_host; $username=$this->db_user; $password=$this->db_pswd; if ($checkQ[0]== 'SELECT' OR $checkQ[0]== 'select'){ //проверка или точно был СЕЛЕКТ try { $db = new PDO("mysql:host=$dsn;dbname=db",$username,$password); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $res = $db->query($sql); $colsNum= $res->columnCount(); ///////////////////////////////start show rows/////////////////////////////// while ($row = $res->fetch(PDO::FETCH_BOTH)){// <- generate row print '<tr>'; switch ($vCols){ case 'all'://<- show all coll for($i=0; $i<$colsNum; $i++){ print '<td>'.$row[$i].'</td>'; } break; default :// собственно проблемная часть for($i=0; $i<$vColsNum; $i++){ print '<td>'.$row[$vCols[$i]].'</td>'; } break; } print '</tr>'; } ///////////////////////////////end show rows/////////////////////////////// $db = NULL; } catch (PDOException $e) { echo $e->getMessage(); } }else print '<strong>'.$checkQ[0]."</strong> not allowed!!"; } }
заранее спасибо(Отредактировано автором: 14 Октября, 2011 - 16:40:21)
|