[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Нужно остановить while
Kinky
Привет, формчане! Пожалуйста, помогите разобраться!

Цитата

$anymatches=mysql_num_rows($data);
while($row = mysql_fetch_array($data))
{
echo $row['colonka1'];
echo $row['kolonka2']; 
echo $row['kolonka5'];
  }
 
  if ($key == "")  {
echo "пустой запрос";
}

elseif ($anymatches == 0)
{
echo "нет результатов";
}


При вводе пустого результата переменной $key, скрипт выводит всё содерж БД и фразы пустой запрос, нет результатов. Пытался использовать break; в while, он не позволяет циклу вывести более одного результата.

P.S. этому отрывку скрипта предшествует оператор SELECT FROM




Спустя 19 минут, 53 секунды (13.02.2010 - 17:23) dr_Lev написал(а):
Проверка на пустой запрос идет после выполнения самого запроса... нужно просто переместить вверх проверку запроса
if ($key == "")  {
echo "пустой запрос";
}else{
$anymatches=mysql_num_rows($data);
if ($anymatches == 0){
echo "нет результатов";
}else{
while($row = mysql_fetch_array($data))
{
echo $row['colonka1'];
echo $row['kolonka2'];
echo $row['kolonka5'];
}
}
}

и лучше само выполнение запроса, где $data = mysql_query(...), лучше поместить перед строкой $anymatches=mysql_num_rows($data)

Спустя 9 минут, 37 секунд (13.02.2010 - 17:33) Kinky написал(а):
Это то, что надо! Спасибо, dr_Lev! smile.gif

Спустя 1 час, 52 минуты, 33 секунды (13.02.2010 - 19:25) twin написал(а):
Цитата
Пытался использовать break; в while, он не позволяет циклу вывести более одного результата.

На будущее: есть же не только break. Есть continue. Но в данном случае лучше конечно изменить логику, как dr_Lev посоветовал. Я бы еще присвоение лишнее убрал:


if (mysql_num_rows($data) == 0){
echo "нет результатов";

Быстрый ответ:

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