PHP中的未知问题
我无法找出收到此错误的原因: mysql_fetch_assoc()希望参数1是资源,布尔值在第32行给出 我试图寻找答案,但没有这样的运气 我自学代码,任何帮助都将不胜感激PHP中的未知问题,php,mysql,html-table,Php,Mysql,Html Table,我无法找出收到此错误的原因: mysql_fetch_assoc()希望参数1是资源,布尔值在第32行给出 我试图寻找答案,但没有这样的运气 我自学代码,任何帮助都将不胜感激 <table> <thead> <tr> <td>First Name</td> <td>Last Name</td> <td>Em
<table>
<thead>
<tr>
<td>First Name</td>
<td>Last Name</td>
<td>Email</td>
</tr>
</thead>
<tbody>
<?php
$mysql_host = 'localhost';
$mysql_user = 'root';
$mysql_pass = '';
mysql_connect($mysql_host, $mysql_user, $mysql_pass);
/* #1 get properties and it's data */
$seller_id="SELECT id FROM seller WHERE coupon_id='ab2345'" or die(mysql_error());
$property="SELECT bedrooms, bathrooms, parking FROM property WHERE seller_id='{$seller_id}'" or die(mysql_error());
$results = mysql_query($property);
/* #2 store property data in variable */
$property_row = mysql_fetch_assoc($results);
$bathrooms = $property_row['bathrooms'];
$bedrooms = $property_row['bedrooms'];
$parking = $property_row['parking'];
/*#3 get buyers (& their data) using property data as inputs */
$buyers="SELECT * FROM buyers WHERE bedrooms={$bedrooms} AND bathrooms={$bathrooms} AND parking={$parking}" or die(mysql_error());
$results = mysql_query($buyers);
/* #4 loop through buyers */
if (mysql_num_rows($results) < 1) echo "Oh no it seems like their are no buyers for your property"; else {
while ($row = mysql_fetch_assoc($results)) {
?>
<tr>
<td><?php echo $row['f_name']?></td>
<td><?php echo $row['l_name']?></td>
<td><?php echo $row['email']?></td>
</tr>
<?php
}
}
?>
</tbody>
</table>
名字
姓
电子邮件
当查询中没有错误时,mysql返回一个资源,但当出现错误时,mysql返回false(booean数据类型和不适合mysql_fetch的参数…)
您的PHP代码应该检查返回代码,确保它是“truthy”(即不是false),然后再尝试使用它来获取。如果返回值为false,则可以使用两个mysql函数来确定问题。一个是mysql_error(),返回一个错误号(有利于switch语句处理);另一个是mysql_errmsg()返回一个文本错误消息(有利于程序员阅读)
其中一位评论员告诉您查询中的错误是什么,但这并没有解决代码中的结构性缺陷,即您在尝试使用之前没有检查好返回值。这个问题或与之密切相关的问题每天都会出现好几次。搜索更难一点。你在WHERE seller\u id='{$seller\u id}
中使用引号,但在WHERE beddooms={$beddooms}和bathrooms={$bathrooms}和parking={$parking}
中却没有使用引号——为什么不直接在WHERE beddooms='$beddooms'和bathrooms='AND parking=$parking='$parking'
$str=“foo”或die(mysql\u error())
完全没有意义。您究竟如何期望此字符串赋值失败?您需要对mysql调用执行或die()
。其他任何地方都没用,不客气。它修好了吗@User3342398很抱歉,Fred的回复太晚了-是的,就是这样,还有另一个小语法错误:)知道我只是在while循环中遇到了问题