我收到一条错误,上面写着“mysqli_fetch_array()希望参数1为mysqli_result,null为”但是一切看起来都不错。我在这里缺少什么或添加什么?它说错误在第41行。我很感激你看着这个 - 这让我发疯了!
<html>
<head>
<title>Search</title>
</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="name">Name</option>
<option value="date">Date</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 calls WHERE $category = '$category'";
$result = mysqli_query ($dbcon, $query) or die ('Error');
echo "<table>";
echo "<tr> <th>Date</th> <th>Name</th>";
}
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
echo "<tr><td>";
echo $row ['date'];
echo "<tr><td>";
echo $row ['name'];
}
?>
</body>
</html>
答案 0 :(得分:3)
您的查询中有“$”..
应该是:
SELECT * FROM calls WHERE category = '$category'
答案 1 :(得分:3)
正确缩进代码会显示您的问题。 请注意,你做了
$result = mysqli_query ($dbcon, $query) or die ('Error');
内部
if (isset($_POST['submitted'])) {
然而,
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
在此if-block之外完成(其中$result
为null
)。向下移动}
,使其也包含while
。
此外,您在SQL查询中遇到语法错误,当您修复第一个问题时,这个错误将会很明显。