Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: проблема с цыклом

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
mro
Отправлено: 14 Октября, 2011 - 16:39:28
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




сильно не пинайте, только начал изучать ПХП

создаю клас для работы с базой данных с использованием PDO

есть метод класа который выводит содержымое таблицы в зависимости от переданых в него имен столбцов или вывод всех столбцов по дефолту

при выводе всех столбцов работает, при выводе кастомных столбцов выводится только первая строка но WHILE продолжает работать потому что таблица генерируется но только с первой строчкой

я предполагаю что проблема в цыкле вот только не могу понять где
PHP:
скопировать код в буфер обмена
  1.  
  2. class database{
  3.     var $db_host='*';
  4.     var $db_name='*';
  5.     var $db_user='*';
  6.     var $db_pswd='*';
  7.    
  8.     function showRecords($sql,$vCols='all'){
  9.  
  10.         $dsn=$this->db_host;
  11.         $username=$this->db_user;
  12.         $password=$this->db_pswd;
  13.  
  14.         $checkQ=explode(' ', $sql);
  15.         if ($checkQ[0]== 'SELECT' OR $checkQ[0]== 'select'){ //проверка или точно был СЕЛЕКТ
  16.         try {
  17.             $db = new PDO("mysql:host=$dsn;dbname=db",$username,$password);
  18.             $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  19.             $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
  20.            
  21.             $res = $db->query($sql);
  22.             $colsNum= $res->columnCount();
  23.  
  24. ///////////////////////////////start show rows///////////////////////////////
  25.             while ($row = $res->fetch(PDO::FETCH_BOTH)){// <- generate row
  26.                 print '<tr>';
  27.                 switch ($vCols){
  28.                     case 'all'://<- show all coll
  29.                         for($i=0; $i<$colsNum; $i++){
  30.                             print '<td>'.$row[$i].'</td>';
  31.                         }
  32.                         break;
  33.                     default :// собственно проблемная часть
  34.                         $vCols=explode(',',$vCols);
  35.                         $vColsNum=count($vCols);
  36.                         for($i=0; $i<$vColsNum; $i++){
  37.                             print '<td>'.$row[$vCols[$i]].'</td>';
  38.                         }
  39.                         break;
  40.                 }
  41.                 print '</tr>';
  42.             }
  43. ///////////////////////////////end show rows///////////////////////////////
  44.  
  45.             $db = NULL;
  46.         }
  47.         catch (PDOException $e) {
  48.           echo $e->getMessage();
  49.         }
  50.  
  51.     }else print '<strong>'.$checkQ[0]."</strong> not allowed!!";
  52.    }
  53. }
  54.  


заранее спасибо

(Отредактировано автором: 14 Октября, 2011 - 16:40:21)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB