[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: PHP поиск по БД
Puk
Всем привет!

Есть поисковый скрип, который, наверное, известен многим (приведён ниже). Всё перкрасно работает - вводишь запрос, нажимаешь кнопку, снизу отображается результат. Но есть одни косяк. При первичной загрузки страницы в поле результата появляется всё содержание таблицы БД, по которой ведётся поиск. Как от этого "бонуса" можно избавится?

Заранее спасибо B)



<body>
<
form action="all.php" method="post">

Название <br>

<
input type="text" name="nmag" size="60" value="">

<
input type="submit" name="submit" value="Искать">

<
input type="reset" name="reset" value="Очистить">

</
form>

<
br>
<
br>

<?php

$query = "SELECT * FROM mag WHERE UPPER(name_mag) LIKE '".strtoupper($_POST['nmag'])."%'";

$result = mysql_query($query) or die("Запрос ошибочный");


print "<table>\n";

while ($line = mysql_fetch_array($result, MYSQL_NUM)) {

print "\t<tr>\n";

for ($i=1;$i<=1;$i++) { print "\t\t<td><a href=\"lit/lit.php?id=$line[0]\">$line[1]</a></td>\n"; }


print "\t</tr>\n";

}

print "</table>\n";

if (!mysql_num_rows($result)) echo "Поиск результатов не дал";

mysql_free_result($result);


?>




Спустя 14 минут, 18 секунд (21.06.2012 - 16:17) sergeiss написал(а):
Цитата (Puk @ 21.06.2012 - 17:03)
Как от этого "бонуса" можно избавится?

Это не просто. А очень просто smile.gif

Ты используешь $_POST['nmag'], но не проверяешь, есть ли такая хрень. Поэтому при начальном запуске в условии ты имеешь LIKE '%', то есть поиск ВСЕГО. Поставь проверку на наличие в ПОСТе нужного ключа и только при его наличии делай поиск в БД.
Быстрый ответ:

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