[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: while выводит только одну запись...
jumper_dev
В данной функции производится выборка из базы и с помощью простого "шаблонизатора" выводит информацию, но почему то выводит только одну запись. Что я не так делаю?
Спасибо.

public function test() {
$db = action_db();
$sql = "SELECT * FROM ant_cat LIMIT 3";
$db->Query($sql);
while($arr = $db->Assoc()) {
$this->id = $arr['id_cat'];
$this->name = $arr['name'];
$this->title = $arr['title'];
$this->descrip = $arr['descrip'];
return $this->show('content.tpl.php');
}
}





Спустя 13 минут, 39 секунд (9.03.2011 - 16:07) slimper написал(а):
Если БД mysql то пользуйся тогда mysql_fetch_assoc
если $db->Query($sql) возвращает результат запроса

while($arr = mysql_fetch_assoc($db->Query($sql))
{
...
}

mysql_fetch_assoc возвращает либо ассоциативный массив либо FALSE

Спустя 3 минуты, 55 секунд (9.03.2011 - 16:11) jumper_dev написал(а):

$db->Assoc() // возвращает @mysql_fetch_assoc($this->result);

Вот функция из класса БД

public function Assoc() {
return @mysql_fetch_assoc($this->result);
}


$arr = $db->Assoc(); // Возвращает ассоциативный массив

Спустя 12 минут, 19 секунд (9.03.2011 - 16:24) slimper написал(а):
так у тебя класс разве? откуда там $this->result возмется? и когда ты успел положить в него результат запроса?

может так тогда?

public function test() {
$db = action_db();
$sql = "SELECT * FROM ant_cat LIMIT 3";
$resultQuery = $db->Query($sql);
while($arr = $db->Assoc($resultQuery)) {
$this->id = $arr['id_cat'];
$this->name = $arr['name'];
$this->title = $arr['title'];
$this->descrip = $arr['descrip'];
return $this->show('content.tpl.php');
}
}


public function Assoc($param) {
return mysql_fetch_assoc($param);
}


да и точно надо ли создавать функцию Assoc под это дело?

Спустя 46 секунд (9.03.2011 - 16:24) linker написал(а):
while($arr = $db->Assoc()) {
...
return $this->show('content.tpl.php');
}
ну ты же сам прерываешь цикл используя return.

Спустя 17 минут, 2 секунды (9.03.2011 - 16:41) jumper_dev написал(а):
Цитата (linker @ 9.03.2011 - 13:24)
while($arr = $db->Assoc()) {
...
return $this->show('content.tpl.php');
}
ну ты же сам прерываешь цикл используя return.

Спасибо Linker


_____________
Как повысить рождаемость на планете? - Заставить Microsoft выпускать презервативы!
Разъяренный Админ не нервно моргает, а материт вас, используя двоичный код.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.