MySQL php查询错误


Query error MySQL php

我是php和我的sql的新手,如果没有选择任何内容,但由于某种原因,它总是显示一个结果,我会尝试从这个表中获取所有结果。的原因

$query = "SELECT *, ROUND(AVG(d.rating),0) FROM restaurant AS r, review AS d WHERE 1=1 ";
if($vicinity) $query .= "AND r.vicinity='"$vicinity'" ";
if($cuisine)  $query .= "AND r.cuisine='"$cuisine'" ";
if($price)    $query .= "AND r.price='"$price'"";
if($name)    $query .= "AND r.name LIKE '"%$name%'"";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)) {

我只得到了表上的第一个项目

我会亲自研究PDO。你可以在这里的手册中找到很多关于它的信息。

猜测您只得到一个结果,因为没有groupby的avg调用触发了一些有趣的行为。试着通过添加一个群组,我猜你也想将餐厅和评论与加入联系起来。例如:

$query = "SELECT *, ROUND(AVG(d.rating),0) FROM restaurant AS r LEFT JOIN review AS d on r.id = d.restaurant_id WHERE 1=1";
...
...
$query .= ' GROUP BY r.id';
$result = mysql_query($query);

根据线程,听起来您也应该查看准备好的语句:)。并且SELECT *可能也应该只是SELECT r.*-作为评级结果的一部分返回的数据在分组后将没有意义(r.*和round(avg(d.rating),0)值应该是)

尝试使用准备好的语句并获取结果,并使用迭代器在循环中进行解析和打印。另请参见本教程。