2013-12-13 86 views
-1

好吧,我可以为这个最新的问题得到一些明确的答案。这个PHP部分不会返回任何响应,但是,我知道数据在那里。有谁知道为什么这会返回文本“错误”?PHP SQL搜索页面返回错误

<html> 
<head> 
<title>Search</title> 
<style type="text/css"> 
    table { 
     background-color: #FCF; 
    } 

    th { 
     width: 150px; 
     text-align: left; 
    } 
</style> 
</head> 

<body> 
<h1>Search</h1> 


<form method="post" action="search.php"> 
<input type="hidden" name="submitted" value="true"/> 

<label> Search | Category: 
    <select name="category"> 
     <option value="fname">FName</option> 
     <option value="lname">LName</option> 
    </select> 
</label> 

<label>Search Criteria: <input type="text" name="criteria"/></label> 
<input type="submit"/> 
</form> 

<?php 

if (isset($_POST['submitted'])) { 

// connect to DB 
include('connect.php'); 

$category = $_POST['category']; 
$criteria = $_POST['criteria']; 
$query = "SELECT * FROM people WHERE category = '$category'"; 
$result = mysqli_query($dbcon, $query) or die ('Error'); 


echo "<table>"; 
    echo "<thead>"; 
     echo "<tr>"; 
      echo "<th>First Name</th>"; 
      echo "<th>Last Name</th>"; 
     echo "</tr>"; 
    echo "</thead>"; 
    echo "<tbody>"; 
     if (mysqli_num_rows($result)) { 
      while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { 
       echo "<tr>"; 
        echo "<th>" . $row['fname'] . "</th>"; 
        echo "<th>" . $row['lname'] . "</th>"; 
       echo "</tr>"; 
      } 
     } 
    echo "</tbody>"; 
echo "</table>"; 
} 
?> 
</body> 
</html> 
+0

你能指定错误是什么吗? –

+2

您需要为数据库调用添加一些错误处理:'或die('Error')' – jeroen

回答

5

也许这行的原因是:$result = mysqli_query($dbcon, $query) or die ('Error');
如果查询失败,脚本将停止并打印“错误”。
你可能会想把mysqli_error($dbcon)而不是'Error'这个东西,在这个特定的情况下,我建议回显查询看看它的样子。

而且,请在将数据用于数据库查询之前转义POST数据,或者使用预准备语句!