Я пытаюсь сделать панель поиска на своем веб-сайте, которая будет запрашивать базу данных mysql и возвращать результаты в модной форме. Поиск будет использоваться для поиска имен. Например, пользователь может ввести «John Doe», и любая информация о John Doe будет возвращена. К сожалению, всякий раз, когда я нажимаю кнопку «Отправить», а мой сайт переходит на «search.php», страница полностью пуста. Я проверил свое подключение к базе данных и знаю, что он работает. Что-то не так с моим кодом, что абсолютно ничего не появляется? Он даже не возвращает пользователя обратно index.html.Запрос и отображение результатов поиска mysql
У меня есть строка поиска на моем index.html следующим образом:
<form id="navsearch" class="form-group" role="search" action="search.php" method="post">
<div class="input-group" display="inline">
<input name="search" type="text" value="Search" class="form-control" placeholder="Search">
<span class="input-group-btn">
<button class="btn btn-default btn" name="submit" class="btn btn-lg" type="submit">
<span class="glyphicon glyphicon-search" name="submit"></span>
</button>
</div>
</form>
Вот PHP на 'search.php':
<?php
//make connection to database
$connection = mysqli_connect('xxx.xxxx', 'root', 'hello', 'awstutorial', 3306);
$search_word = '';
if (isset($_POST['submit'])) {
if (!empty($_POST['search'])) {
$search_word = $_POST['search'];
$search = mysqli_real_escape_string($connection, $_POST['search']);
$query = "SELECT * FROM data WHERE name LIKE '%$search%' ";
$search_query = mysqli_query($connection, $query);
// START RESULTS
if ($result = mysqli_query($connection, $query)) {
$to_display = "<div>";
while ($row = mysqli_fetch_array($result)) {
if ((substr($row['file'], -3) == 'jpg') || (substr($row['file'], -3) == 'JPG') || (substr($row['file'], -3) == 'PNG') || (substr($row['file'], -3) == 'png') || (substr($row['file'], -3) == 'GIF') || (substr($row['file'], -3) == 'gif'))
$img_url = "uploads/" . $row['file'];
else {
if ((strtolower(substr($row['file'], -3) == 'png')) || (strtolower(substr($row['file'], -3) == 'doc')) || (strtolower(substr($row['file'], -3) == 'docx')))
$img_url = "uploads/pdf_logo.png";
else
$img_url = "uploads/no_doc.png";
}
$to_display .= "<a href='story.php?id=".$row['id']."' class='col-md-3 asdivs portfolio-box fancybox fancybox.iframe'><img alt='' class='img-responsive' src='" . $img_url . "'><div class='portfolio-box-caption'>
<div class='portfolio-box-caption-content'>
<div class='project-category text-faded'>
Read
</div>
<div class='project-name'>"
. $row['name'] . "'s Story
</div>
</div>
</div>" . $row['name'] . " - " . $row['email'] . "</a>";
}
}
$to_display .= "</div><div style='clear:both;'></div>";
} else {
header("Location: index.html");
}
}
?>
Try [позволяет отчеты об ошибках] (http://stackoverflow.com/a/21429652/747654) в вашей установке PHP и запустить скрипт снова – wil93
Вы используете кнопки типа 'submit', который будет по самой своей природе представить форму - которая установлена как 'search.php' - что вы ожидали? Если вам нужна асинхронная, одиночная страница, без перезагрузки для ваших пользователей, вам нужно будет использовать ajax для запуска запроса без перезагрузки страницы. – RamRaider
Удалить 'if (isset ($ _ POST ['submit'])) {...} ' – c4pricorn