классы и mysql_fetch_array()

IBSN

Новичок
классы и mysql_fetch_array()

Объясните пожалуйста, никак не могу понять каким образом обрабатывать mysql_fetch_array()

PHP:
// класс

function sellect($from, $where)
{
$this->connect(); // коннект
if (!isset($from)) break;
if (isset($where)) $where = "WHERE ".$where;
$this->query = "SELECT * FROM $from";
$this->result = mysql_query ($this->query);
return (mysql_fetch_array($this->result)); // таким образом хочу вернуть значение
}

// \класс

// обработка

while($test=$menu->sellect("sections", "")) ... // по логике так оно и должно быть
но данный код вешает ЧПУ до 100%...

Как нужно делать :confused:
 

Макс

Старожил PHPClub
у тебя бесконечный цикл.
При каждом test=$menu->sellect("sections", "")) делается SEELCT-запрос
 

IBSN

Новичок
ёмоё точно как я не заметил,
но тем не менее такой код

$values=$menu->sellect("sections", "");
while($test=$values) ...

не вызывает бесконечный цикл, но по прежнему обрабатывает массив неправильно :( Выводит несколько одинаковых значений а потом умирает
 

lucas

Guest
$values=$menu->sellect("sections", "");
while($test=$values) ...
Ты получаешь одну строку результата, потому и "обрабатывает неправильно".

В данном случае стоит или возвращать из метода, выполняющего запрос, идентификатор результата и получать данные другим методом (по старинке: while ($row = $this -> fetch($result)) {...}) либо получать все данные в методе select и возращать массив строк.

Еще лучше посмотреть, как это сделано в PEAR :: DB и ADODB.

P. S.: Вообще идеально -- использовать именно их. :)
 
Сверху