вывод в цикле

  • Автор темы Автор темы Swat
  • Дата начала Дата начала

Swat

Новичок
вывод в цикле

Не понимаю почему выводит бесконечный цикл одной строки...
Сделал функцию:
PHP:
function sqldisplay($query)
{
   $a = mysql_query($query) or die(error("mysql","Не могу извлечь данные!"));
   $b = mysql_fetch_array($a) or die(error("mysql","Не могу показать данные!"));
   return $b;
}

Применяю функцию:
PHP:
while($sql = sqldisplay("select * from menu;"))
{
   echo $sql['menu_name']."<br>";
}

Почему так выходит? Что-то не правильно с функцией?
 
Что, по-твоему, возвращает функция sqldisplay?
 
PHP:
while($sql = sqldisplay("select * from menu;")) 
{ 
     var_dump((bool)$sql);
     echo $sql['menu_name']."<br>"; 
}
Вообще вроде бы ничего удивительного - у тебя как раз написан бесконечный цикл.
 
И какие значения полей она вернет при первом и втором вызовах?
 
Выборку надо делать один раз - за пределами цикла, а в цикле уже пробегаться по строкам и выводить их. У тебя же каждый раз в цикле вся таблица выбирается заново.
 
Народ подскажите как можно грамотно составить функцию запроса и функцию вывода, плз...

делаю так:
PHP:
function sqlshow($str)
{
  return mysql_fetch_array($str) or die(error("mysql","Ошибка вывода!"));
}

Но ПХП все равно ругается :(
 
взять и нарисовать на бумаге диаграмму программы.
 
Рекомендуется:
1) Прочитать местный FAQ (особенно "Ничего не выходит! ...")
2) Понять, что возращают используемые функции
3) На листочке бумаги нарисовать, какой результат куда попадает.

Если не поможет - сменить профессию.
 
Причем тут профессия? Это мое хобби..

-~{}~ 04.02.06 20:36:

С этим разобрался :) теперь не понимаю как в запросе сделать так чтобы не выделялись повторяющиеся значения в полях :) делаю следующее:

PHP:
mysql_query("select count(counter_ip) from counter group by counter_ip;");

Получается что подсчитывается количество айпишников в counter_ip, но кроме повторяющихся... так надо делать?
 
Swat

Получается что подсчитывается количество айпишников в counter_ip, но кроме повторяющихся... так надо делать?
я так и не понял вопроса
попробуй такие SQL посмотри в чём разница:
Код:
select count(counter_ip) 
from counter;
select count(distinct counter_ip) 
from counter;
select counter_ip, count(*) cn
from counter 
group by counter_ip;
 
Сверху