mysql — Мгновенный поиск с использованием переполнения стека

У меня есть запрос, который работает и работает хорошо, но я хочу показать все свои элементы, прежде чем искать конкретный. Когда я щелкаю поиск btn без ввода чего-либо, в нем отображаются все мои элементы, я хочу показать их, не нажимая кнопку поиска btn.

include_once('includes/db_connect.inc.php');
$output = '';
if (isset($_POST['search'])) {
$searchq = $_POST['search'];
$searchq = preg_replace("#[^0-9a-z]#i", "", $searchq);
$sql_search = "SELECT * FROM teams WHERE teamnum LIKE '%$searchq%'";
$query = mysqli_query($con, $sql_search) or die("Could not search!");
$count = mysqli_num_rows($query);
if ($count == 0) {
$output = 'No search results';

} else {
while ($row = mysqli_fetch_array($query)) {

$output .= "<a href='view-team.php?id={$row['id']}'><div class='match-child'>
<div class='flex-inside-list'>
<div class='alliance-vs'>
<span>" . $row["teamnum"] ."</span>
</div>
</div></a>";
}
}
}

0

Решение

Если это та же страница, просто удалите if(isset($_POST['search'])) потому что приведенный ниже код, очевидно, выполняется только тогда, когда оператор if равен true.

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

Я рекомендую использовать ajax, если что-то должно быть напечатано на одной и той же странице снова и снова.

0

Другие решения

Вы можете сделать это с помощью конкатенации запросов. Сначала извлеките все записи, а затем проверьте, пуст ли $ search или нет? если нет, то завершите предыдущий запрос. Наконец, отправьте данные для просмотра / файла HTML.

0

Во-первых, если вы хотите создать приложение, пожалуйста, прочитайте о MVC .

Во-вторых, лучше использовать PDO подготовил заявления по соображениям безопасности. И это наверное удобнее и веселее.

В-третьих, попробуйте разделить PHP и HTML.
Всегда разделяйте задачи на подзадачи, потому что таким образом легче понять, что делать дальше.
По вашему вопросу:

Вы всегда можете создать отдельную функцию или метод (если хотите), в котором вы можете выбрать все элементы из вашего ‘Teamnum’ таблицы, а затем вы можете вывести их список на странице просмотра.
Итак, в итоге у вас может быть 2 массива:

первый массив данных: SELECT * FROM teams WHERE teamnum LIKE '%$searchq%'

второй массив данных, который вы выведете на страницу: SELECT fieldname FROM teamnum

Просто получите массив со всеми данными, которые вы хотите, и выведите его на страницу рядом или под кнопкой отправки.
Надеюсь, это поможет вам.

-1
По вопросам рекламы [email protected]