我明白了:
警告:mysql_fetch_assoc()期望参数1是资源,布尔值在
中给出
是一个错误,但我不知道为什么!
我必须为学校做这个练习,到目前为止一直很好,但现在我得到了这个错误,我已经被困了一段时间。
我对这件事情很安静,所以我希望我的代码不坏。 我的代码是:
mysql_connect ("localhost","root","usbw");
mysql_select_db("classicmodels");
function productLinesDropDown(){
$result = mysql_query("SELECT productLine , textDescription FROM `productlines`");
echo "<form method='post' action=dropdownlist.php><select name='productlijn'>";
while($data = mysql_fetch_assoc($result)){
echo "<option value'" . $data["productLine"] . "'>" . $data["productLine"] . "</option>";
}
echo "</select><input name=Submit type=submit value=Submit></form>";
}
if(isset($_POST['Submit'])){
$productlijn = $_POST['productlijn'];
toonProductsProductline($productlijn);
}
function toonProductsProductLine($productline) {
$gegevens = mysql_query("SELECT productName , productScale , productDescritpion , productLine FROM `product`");
echo "<table><tr><td>productName</td><td>productScale</td><td>productDescription</td></tr>";
while($data = mysql_fetch_assoc($gegevens)){
if($data["productLine"] == $productline){
echo "<tr>";
echo "<td>" . $data["productName"] . "</td>";
echo "<td>" . $data["productScale"] . "</td>";
echo "<td>" . $data["productDescription"] . "</td>";
echo "</tr>";
}
}
echo "</table>";
}
productLinesDropDown();
答案 0 :(得分:0)
阅读我们被告知的documentation
对于SELECT,SHOW,DESCRIBE,EXPLAIN和其他返回结果集的语句,mysql_query()会在成功时返回资源,或者在出错时返回FALSE。
您的代码应该在您的while循环之前测试此布尔值并执行一些适当的操作。在您的情况下,我建议获取mysql_error()
的值,以确定SQL的问题。
答案 1 :(得分:0)
正如您可以阅读手册
失败时返回FALSE。对于成功的SELECT,SHOW,DESCRIBE或EXPLAIN查询,mysqli_query()将返回一个mysqli_result对象。对于其他成功的查询,mysqli_query()将返回TRUE。
本文是关于mysqli的,但在这种情况下,它的工作方式与mysql相同。
您必须检查查询是否失败或返回空结果(包含FALSE值)。
相反
while($data = mysql_fetch_assoc($gegevens)){
做类似的事情
while($gegevens !== FALSE && $data = mysql_fetch_assoc($gegevens)){
您也可以添加其他内容,例如显示有关空结果的信息。