создаю клас для работы с базой данных с использованием 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!!";
- }
- }