Php Mysql抛出查询错误但完成查询很好为什么?
我越来越Php Mysql抛出查询错误但完成查询很好为什么?,php,mysql,Php,Mysql,我越来越 Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in *filename* on line 81 在运行查询以生成图表时。查询从mysql数据库获取数据,并使用它来构建图表 通常,我会遇到这个错误,然后去看代码,找出哪里出了问题,修复它,然后继续前进。这个问题的棘手之处在于,查询实际上正在运行,图表正在准确地构建和显示。为什么我的服务器(xampp上的local
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result
resource in *filename* on line 81
在运行查询以生成图表时。查询从mysql数据库获取数据,并使用它来构建图表
通常,我会遇到这个错误,然后去看代码,找出哪里出了问题,修复它,然后继续前进。这个问题的棘手之处在于,查询实际上正在运行,图表正在准确地构建和显示。为什么我的服务器(xampp上的localhost)告诉我查询结果不好,而它可以很好地利用资源
以下是完整的查询:
$chart=array();
$roll=array();
//select used terms
$rosh=mysql_query("select distinct term from search_terms");
while($roshrow=mysql_fetch_assoc($rosh)){
extract($roshrow);
$roll[]=$term;
}
//select term_number for each term
foreach($roll as $sterm){
$termarray=array();
**//following is line 81**
$bashq="select term_number from search_terms where term ='$sterm'";
$bash=mysql_query($bashq);
while($brow=mysql_fetch_assoc($bash)){
extract($brow);
//put results into array to sum
$termarray[]=$term_number;
}
$termsum=array_sum($termarray);
//put term=>number array for chart script
$chart[$sterm]=$termsum;
}
//sort array so high numbers at beginning
arsort($chart);
//slice top 10 terms
$chart=array_slice($chart,0,10);
这样做:
$rosh=mysql_query("select distinct term from search_terms")
or die("Error with query: " . mysql_error());
这是:
$bash=mysql_query($bashq)
or die("Error with query: " . mysql_error();
当它失败时会告诉你。但是,您是正确的,因为mysql\u查询返回了“false”,并且不是有效的结果资源。请执行以下操作:
$rosh=mysql_query("select distinct term from search_terms")
or die("Error with query: " . mysql_error());
这是:
$bash=mysql_query($bashq)
or die("Error with query: " . mysql_error();
当它失败时会告诉你。但是,您是正确的,因为mysql\u查询返回了“false”,并且不是有效的结果资源。因为您在循环中查询,其中一个术语没有被处理(可能是因为搜索术语缺少该特定回合的行。这很奇怪,因为您正在查询同一个表 但是,由于这是一个警告,而不是致命错误,因此它仍将继续 无论哪种方式,提取数据的方式似乎都是错误的,您可能只需一个查询,直接在SQL server中进行适当的排序(ORDER BY),GROUP BY和SUM()即可获得术语的总和 您应该阅读您的SQL:) 选择term,SUM(term\u number)作为term\u SUM 从搜索词 按条款分组 按项排序\u求和说明 限制10
然后把它复制到你的哈希表中,它应该已经被排序了,并且限制为10个条目。因为你在一个循环中查询,其中一个术语没有被处理(可能是因为搜索术语缺少该特定回合的行。这很奇怪,因为你在查询同一个表 但是,由于这是一个警告,而不是致命错误,因此它仍将继续 无论哪种方式,提取数据的方式似乎都是错误的,您可能只需一个查询,直接在SQL server中进行适当的排序(ORDER BY),GROUP BY和SUM()即可获得术语的总和 您应该阅读您的SQL:) 选择term,SUM(term\u number)作为term\u SUM 从搜索词 按条款分组 按项排序\u求和说明 限制10
然后将它复制到您的哈希表中,它应该已经被排序,并且限制为10个条目。我认为您忽略了最重要的信息,即查询本身。为什么在那里使用extract()?你可以这样做:$roll[]=$roshrow['term'];doofledorfer,我评论了codemercutio中第81行的位置……出于习惯,我使用提取液。我应该停止这样做,我认为您忽略了最重要的信息,即查询本身。为什么在那里使用extract()?你可以这样做:$roll[]=$roshrow['term'];doofledorfer,我评论了codemercutio中第81行的位置……出于习惯,我使用提取液。我应该停止对自己说“d-oh”。我有一个很好的习惯在我的查询中包含这个,直到我变得懒惰并停止使用它。罪犯?…数据库中的撇号。谢谢我自己的“d-oh”。我有一个很好的习惯在我的查询中包含这个,直到我变得懒惰并停止使用它。罪犯?…数据库中的撇号。谢谢,我应该仔细阅读我的sql。我在尝试对查询结果进行排序时感到非常头疼。我应该仔细阅读我的sql。我在对查询结果进行排序时感到非常头疼