查询数据库时未显示任何结果

时间:2014-11-30 22:04:00

标签: php mysql forms mysqli searchbar

我正在尝试使用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>

当我点击提交并在搜索栏中输入任何内容时,不会显示任何内容。我没有收到错误,我没有得到结果,一切都是空白。谁能告诉我为什么会这样?

4 个答案:

答案 0 :(得分:0)

您在mission1results.php中有语法错误

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

必须更改为:

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

答案 1 :(得分: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


error reporting添加到文件的顶部,这有助于查找错误。

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

// rest of your code

旁注:错误报告应仅在暂存时完成,而不是生产。

同时or die(mysqli_error($connection))mysqli_query()找到任何可能的错误。

答案 2 :(得分:0)

  1. 相反$_GET['search']使用$_POST['search'],因为您的提交表单方法为post

  2. mysqli_real_escape_string个参数之一应该是数据库连接。

  3. HTML中的语法错误,例如vaule="Search"

  4. PHP中的
  5. 语法错误,例如,在;

  6. 中的}之后不得if

答案 3 :(得分:0)

如果您收到前面答案中指出的错误的空白屏幕,您可能需要查看系统http://php.net/manual/en/function.error-reporting.php上的PHP error_reporting级别。您应该在开发服务器上看到PHP错误,我想报告PHP错误,警告和通知。

此外,您是否希望用户输入确切的搜索字词?您可能需要考虑以下内容:

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