Есть поисковый скрип, который, наверное, известен многим (приведён ниже). Всё перкрасно работает - вводишь запрос, нажимаешь кнопку, снизу отображается результат. Но есть одни косяк. При первичной загрузки страницы в поле результата появляется всё содержание таблицы БД, по которой ведётся поиск. Как от этого "бонуса" можно избавится?
Заранее спасибо 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](http://phpforum.su/html/emoticons/smile.gif)
Ты используешь $_POST['nmag'], но не проверяешь, есть ли такая хрень. Поэтому при начальном запуске в условии ты имеешь LIKE '%', то есть поиск ВСЕГО. Поставь проверку на наличие в ПОСТе нужного ключа и только при его наличии делай поиск в БД.