mysqli_fetch_array()期望参数1为mysqli_result,给定为null

时间:2013-12-13 22:00:06

标签: php html sql

我收到一条错误,上面写着“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>

2 个答案:

答案 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之外完成(其中$resultnull)。向下移动},使其也包含while

此外,您在SQL查询中遇到语法错误,当您修复第一个问题时,这个错误将会很明显。