Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывод данных из таблицы MySQL (используя классы)
 
 автор: Worldmen   (02.01.2008 в 20:20)   письмо автору
 
 

Создал класс:
  <?
 
Class myBD
  
{
      function 
Kategor() {
        
// выбираем все родительские категории :
        
$sql "select id, name, parent_id  from ...... ..... ";
        
$res=mysql_query($sql);
        if( (!
$res) or (empty($res)) ) return false;
        
$r =mysql_fetch_array($res);
        
//mysql_free_result($res);
        
return($r);
    } 
?>

Как правильно вывести данные, потому что я понял , так неправильно:
<?
  $m 
= new myBD();
  
$kat $m->Kategor();
  for(
$i=0$i<count($kat); $i++) 
      echo 
"$i:".$kat['name']." <br>";  ?>

Как сделать чтоб выводило все строки по порядку, а не одну и ту же?
И еще count($kat) выводит - 6, хотя записей в базе 60.

   
 
 автор: cheops   (03.01.2008 в 13:44)   письмо автору
 
   для: Worldmen   (02.01.2008 в 20:20)
 

Дело в том, что mysql_fetch_array() возвращает массив только для одной записи, чтобы пройтись по всей таблице, необходимо последовательно вызывать функцию mysql_fetch_array(), пока результирующая таблица не будет исчерпана. Поэтому класс должен выглядеть примерно так
 <? 
 
Class myBD 
  

      function 
Kategor() { 
        
// выбираем все родительские категории : 
        
$sql "select id, name, parent_id  from ...... ..... "
        
$res=mysql_query($sql); 
        if( (!
$res) or (empty($res)) ) return false
        if(
mysql_num_rows($res))
        while(
$r[] = mysql_fetch_array($res)); 
        
//mysql_free_result($res); 
        
return($r); 
    } 
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования