繁体   English   中英

查询错误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。 您可以在此处的手册中找到很多相关信息。

猜测您只会得到一个结果,因为没有group by的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)应该是值)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM