Результаты не отображаются при запросе базы данных

Я пытаюсь создать базу данных с возможностью поиска с использованием PHP и MySQL. У меня есть файл с именем mission.html со следующим кодом:

<html>
<body>
<form name="form1" method="post" action="mission1results.php" id="search">
<input name="search" type="text"/>
<input type="submit" name="submit" vaule="Search"/>
</form>


mission1results.php

<html>
<body>

<?php
include 'login.php';
$connection = mysqli_connect(
$db_hostname, $db_username,
$db_password, $db_database);

if(mysqli_connect_error()){
die("Database Connection Failed: " .
mysqli_connect_error() .
" (" . mysqli_connect_errno() . ")");
}
?>
<?php
$q_cond = mysqli_real_escape_string($_GET['search']);

$query="SELECT * From Merchant Where MerchantName='".$q_cond."'";

$result=mysqli_query($connection,$query);

if ($result===false)
{
die("Database Query Failed!")
};

while ($row=mysqli_fetch_assoc($result)){
echo "MerchantName: ".$row["MerchantName"].",";
echo "<hr/>";
}

mysqli_free_result($result);
?>
<?php
mysqli_close($connection);
?>
</body>
</html>

Когда я нажимаю «Отправить» и введите что-нибудь в строке поиска, ничего не появляется. Я не получаю ошибку, я не получаю результаты, все пусто. Может кто-нибудь сказать мне, почему это?

0

Решение

У вас есть синтаксическая ошибка в mission1results.php

if ($result===false)
{
die("Database Query Failed!")
};

должен быть изменен на:

if ($result===false)
{
die("Database Query Failed!");
}
0

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

  1. Вместо $_GET['search'] использование $_POST['search'] потому что ваш метод отправки форм post,

  2. Один из mysqli_real_escape_string параметры должны быть подключены к БД.

  3. синтаксические ошибки в HTML, например, vaule="Search"

  4. Синтаксические ошибки в PHP, например, не должно быть ; после } в if

0

Если вы видите пустой экран с ошибками, указанными в предыдущих ответах, вы можете взглянуть на уровень PHP error_reporting в вашей системе. http://php.net/manual/en/function.error-reporting.php. Вы должны видеть ошибки PHP, на сервере разработки мне нравится сообщать об ошибках PHP, предупреждениях и уведомлениях.

Кроме того, ожидаете ли вы, что пользователи введут точный поисковый запрос? Вы можете рассмотреть что-то вроде:

$query="SELECT * From `Merchant` Where `MerchantName` like '%".$q_cond."%'";
0

В первую очередь: mysqli_real_escape_string() Требуется передать соединение с БД, тогда есть ваша форма, где вы используете метод POST в форме и GET для вашего запроса.

Обратитесь к руководству: http://php.net/manual/en/mysqli.real-escape-string.php

$q_cond = mysqli_real_escape_string($connection,$_POST['search']);

Плюс поменяй

if ($result===false)
{
die("Database Query Failed!")
};

в

if ($result===false)
{
die("Database Query Failed!");
}

У вас также есть синтаксическая ошибка vaule="Search" измените это на value


добавлять Отчет об ошибках в начало вашего файла (ов), который поможет найти ошибки.

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

Примечание: Отчеты об ошибках должны выполняться только на стадии подготовки, а не на производстве.

Также or die(mysqli_error($connection)) в mysqli_query() чтобы найти возможные ошибки.

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