2014-11-30 4 views
0

Я пытаюсь создать базу данных с возможностью поиска с использованием 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> 

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

+0

'mysqli_real_escape_string()' требует подключения к БД. Типо в 'vaule =" Искать "' - 'значение', но это ничего не сломает, но первый будет. –

ответ

0

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

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

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

if ($result===false) 
{ 
    die("Database Query Failed!"); 
} 
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']); 

Plus, изменить

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

в

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

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


Добавить error reporting в начало файла (ов), который поможет найти ошибку.

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

// rest of your code 

Sidenote: Сообщения об ошибках не должно быть сделано только в постановке, и никогда производства.

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

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

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

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

  4. синтаксических ошибок в PHP, например, там shoudn't быть ; после } в if

0

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

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

$query="SELECT * From `Merchant` Where `MerchantName` like '%".$q_cond."%'"; 
Смежные вопросы