php - PHP循环帮助"Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result…"

我一直收到这个错误消息,


Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in /home/jpl8ce/public_html/php_grocery1.php on line 20


<html>
<head>
<title>Grocery Results!</title>
</head>
<body>
<h1>
<?php
$connect = mysqli_connect("localhost","jpl8ce","jpl8ce@siedb","grocery");
$item_name = $_post["input1"];

$query_String =" SELECT Stores.Name, Price, Address, Open_Time, Close_Time
FROM (Stores JOIN Carry ON Stores.Store_ID = Carry.Store_ID) JOIN Items ON Carry.Product_ID = Items.Product_ID
WHERE Items.name = $item_name
ORDER BY Close_Time DESC";


$result = mysqli_query($connect, $query_String);

while ($row = mysqli_fetch_assoc($result)) 
{

echo '<P>'.$row["Stores.Name"].', '.'</P>'; 
//echo '$' number_format($row["Price"],2).', ';
echo '<P>'.$row["Address"] .', '.'</P>';
echo '<P>'.$row["Open_Time"] .', '.'</P>';
echo '<P>'.$row["Close_Time"].'</P>';
}

mysqli_close($connect); 
?>
</h1>
</body>
</html>

这是HTML代码


<html>
<head>
<title>Grocery Database Search</title>
</head>
<body>
<H1> Grocery Database Search! </H1>
<IMG SRC='grocery_cart_2.jpg'/>
<P> Use this Search Engine to input a name of an item.
After clicking the Search button, the price of the item, as well as the address and hours of the store 
the item is located at will be displayed. </P>

<form action="php_grocery1.php" method="POST">
<p>Item: <input type="text" name="input1"/></p>
<p><input type="submit" value="Search!"/></p>
</form>
</body>
</html>

再次感谢你们!

时间:

你的代码有一些问题:

  • 所有超全局变量都必须大写,用$_post["input1"];替换$_post["input1"];
  • 你的查询很容易受到sql注入攻击,每当你想将用户提交的数据放入查询时,就可以使用转义函数,如mysql_real_escape_string()
  • 另外,传递给SQL查询的字符串必须是在单引号内(注意下面的'转义引号),
  • 
    <html>
     <head>
     <title>Grocery Results!</title>
     </head>
     <body>
     <?php
     if(!$connect = mysqli_connect("localhost","jpl8ce","jpl8ce@siedb","grocery"))
     die('Error connecting to DB!: ' . mysql_error());
    
     $item_name = $_POST["input1"];
    
     $query_String = 'SELECT Stores.Name, Price, Address, Open_Time, Close_Time
     FROM (Stores JOIN Carry ON Stores.Store_ID = Carry.Store_ID) JOIN Items ON Carry.Product_ID = Items.Product_ID
     WHERE Items.name = '' . mysql_real_escape_string($item_name) . '' ORDER BY Close_Time DESC';
    
     if(!$result = mysqli_query($connect, $query_String))
     die('Error on query: ' . mysql_error($connect));
    
     while ($row = mysqli_fetch_assoc($result)) {
     echo '<P>' . $row["Stores.Name"] . ', ' . '</P>';
     //echo '$' number_format($row["Price"],2).', ';
     echo '<P>' . $row["Address"] . ', ' . '</P>';
     echo '<P>' . $row["Open_Time"] . ', ' . '</P>';
     echo '<P>' . $row["Close_Time"] . '</P>';
     }
    
     mysqli_close($connect);
     ?>
     </body>
    </html>
    
    

希望这有帮助。

...