使用PHP查询MySQL时DESC关键字出现问题
我有一个简单的查询,结尾如下使用PHP查询MySQL时DESC关键字出现问题,php,mysql,Php,Mysql,我有一个简单的查询,结尾如下 group by subject order by count_entries DESC, person ASC LIMIT 0,10 它一点也不费力(当我使用Sequel Pro直接在MySQL数据库中运行它时,它会立即/正确地运行) 但当通过PHP文件运行时,返回500错误。要删除500错误,我所要做的就是删除对DESC的引用(要么完全删除,要么替换为ASC)——在这一点上,我从数据库中获得结果 我真的需要按降序排列结果,但我完全不知道这个非常奇怪的问题 有
group by subject
order by count_entries DESC, person ASC
LIMIT 0,10
它一点也不费力(当我使用Sequel Pro直接在MySQL数据库中运行它时,它会立即/正确地运行)
但当通过PHP文件运行时,返回500错误。要删除500错误,我所要做的就是删除对DESC的引用(要么完全删除,要么替换为ASC)——在这一点上,我从数据库中获得结果
我真的需要按降序排列结果,但我完全不知道这个非常奇怪的问题
有人见过DESC关键字的类似行为吗?!有没有人对我可以尝试修复它有任何想法
谢谢你的想法
编辑-按要求编辑完整代码
<?php
$dbhost = 'myIP';
$dbuser = 'myUser';
$dbpass = 'myPassword';
$conn = mysql_connect ($dbhost, $dbuser, $dbpass) or die ('error connecting to your database');
$dbname = 'myDBName';
mysql_select_db($dbname); // connects to your database
$myquery = "select s.subject_id
, count(e.entry_id) count_entries
, e.person
from subjects s, entries e
where s.subject_id = e.subject_id
group by s.subject_id
order by count_entries DESC, e.person ASC
LIMIT 0,10";
$query = mysql_query($myquery);
if ( ! $myquery ) {
echo mysql_error();
die;
}
$data = array();
for ($x = 0; $x < mysql_num_rows($query); $x++) {
$data[] = mysql_fetch_assoc($query);
}
echo json_encode($data, JSON_PRETTY_PRINT);
mysql_close($conn);
?>
将以下内容放在代码开头,以便显示错误,而不是模糊的500错误
ini_set('display_errors', 1);
(摘自:)嗨,达贡,我已根据p.s.的要求修改了我原来的帖子。如果我甚至从select中删除e.person,从ORDERBY中删除e.person ASC,我会遇到完全相同的问题。唯一影响成功/失败的似乎是DESC关键字
Order by
的存在没有任何意义这只能返回一行,因为使用了aggrigate countNo有很多行-主题和条目之间有一对多的关系。例如,返回10个主题ID,每个ID都有一个count\u条目,我需要确保count\u条目从最大到最小排序。这就解决了整个问题!现在DESC关键字又开始工作了。很抱歉-如果我自己读这篇文章,我会很难相信没有遗漏什么,但这确实是修复它所需要的全部!!!