вывод в цикле

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>";
}
Почему так выходит? Что-то не правильно с функцией?
 

bkonst

.. хочется странного?...
Что, по-твоему, возвращает функция sqldisplay?
 

ForJest

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

bkonst

.. хочется странного?...
И какие значения полей она вернет при первом и втором вызовах?
 

Dagdamor

Новичок
Выборку надо делать один раз - за пределами цикла, а в цикле уже пробегаться по строкам и выводить их. У тебя же каждый раз в цикле вся таблица выбирается заново.
 

Swat

Новичок
Народ подскажите как можно грамотно составить функцию запроса и функцию вывода, плз...

делаю так:
PHP:
function sqlshow($str)
{
  return mysql_fetch_array($str) or die(error("mysql","Ошибка вывода!"));
}
Но ПХП все равно ругается :(
 

Frol

Новичок
взять и нарисовать на бумаге диаграмму программы.
 

bkonst

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

Если не поможет - сменить профессию.
 

Swat

Новичок
Причем тут профессия? Это мое хобби..

-~{}~ 04.02.06 20:36:

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

PHP:
mysql_query("select count(counter_ip) from counter group by counter_ip;");
Получается что подсчитывается количество айпишников в counter_ip, но кроме повторяющихся... так надо делать?
 

chira

Новичок
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;
 
Сверху