Я создал основную форму поиска, которая извлекает имя пользователя из базы данных. У меня есть две проблемы, когда я нажимаю кнопку ввода в пустое поле поиска, он отображает всю базу данных, а не показывает сообщение об ошибке или просто не делает ничего подобного поисковому окну Google. во-вторых, я хочу, чтобы результаты поиска отображались в раскрывающемся списке сначала, а затем кнопку, когда пользователь хочет больше результатов поиска.Форма расширенного поиска PHP
Просьба помочь в внесении изменений. любая помощь будет определенно оценена.
<h2>Users:</h2><br>
<?php
$username="";
$output = '';
if (isset($_POST['search'])){
$search_query = $_POST['search'];
$search_q = $_POST['search'];
$search_query = preg_replace("#[^0-9a-z]#i","", $search_query);
$search_q = preg_replace("#[^0-9a-z]#i","", $search_q);
$query = mysql_query("SELECT * FROM users WHERE username LIKE '%$search_query%' OR last_name LIKE '%$search_query%'") or die ("Could not search");
$count = mysql_num_rows($query);
if($count == 0 ||) {
$output = 'No Results Found.';
}
else{
while($row = mysql_fetch_array($query)){
$fname = $row['first_name'];
$lname = $row['last_name'];
$id = $row['id'];
$output .= "<div><a href='profile.php?u=$row[username]'>$fname $lname</a></div>";
}
}
}
?>
<?php echo("$output");?>
<form method="post" action="search.php" id="search">
<input type="text" name="search" placeholder="Search..">
[** Пожалуйста, донских 't использовать 'mysql_ *' функции в новом коде **] (http://stackoverflow.com/q/12859942). 'mysql_ *' функции устарели, поскольку PHP 5.5 (и ** полностью удалены ** в PHP 7), и вы должны прекратить их использовать, если сможете. Вы должны выбрать другой API, который позволит вам использовать [подготовленные операторы] (http://stackoverflow.com/q/60174/) (которые вы действительно должны * при работе с переменными), например 'mysqli_ * 'или PDO - см. [выбор API] (http://php.net/manual/en/mysqlinfo.api.choosing.php). – Qirel
Просто не выполняйте запрос, если он пуст. На стороне клиента вы можете добавить атрибут 'required' к вашему вводу, на стороне сервера вы можете сделать' if (! Empty ($ _ POST ['search'])) {'вместо этого, который проверяет, есть ли любые значения для поиска. – Qirel