关联数组的PHP while循环问题
我有两个while循环填充关联数组——我可以一次运行一个(即注释另一个),但是,当我同时运行这两个循环时,我会收到一个服务器错误。尽管查询没有查询同一组数据,但我仍然尝试添加指针重置,但没有成功。以下是两个循环:关联数组的PHP while循环问题,php,arrays,loops,while-loop,associative,Php,Arrays,Loops,While Loop,Associative,我有两个while循环填充关联数组——我可以一次运行一个(即注释另一个),但是,当我同时运行这两个循环时,我会收到一个服务器错误。尽管查询没有查询同一组数据,但我仍然尝试添加指针重置,但没有成功。以下是两个循环: $thecurrent = array(); $getusers = "SELECT score, uid, like_id FROM wetique_scores GROUP BY like_id;"; $gotusers = mysql_query($getusers,$con);
$thecurrent = array();
$getusers = "SELECT score, uid, like_id FROM wetique_scores GROUP BY like_id;";
$gotusers = mysql_query($getusers,$con);
while ($row = mysql_fetch_array($gotusers))
{
$score = $row['score'];
$userid = $row['uid'];
$likeid = $row['like_id'];
$comboid = $userid.$likeid;
$thecurrent[$comboid] = $score;
}
//二,。从db计算新分数并创建数组$new
$new = array();
$getusers2 = "SELECT like_id, sum(friend_rating), uid from likes l, friendships f WHERE l.friend_id = f.friend_id GROUP BY l.like_id;";
$gotusers2 = mysql_query($getusers2,$con);
while ($rowb = mysql_fetch_array($gotusers2))
{
$scoreb = $rowb['sum(friend_rating)'];
$useridb = $rowb['uid'];
$likeidb = $rowb['like_id'];
$comboidb = $useridb.$likeidb;
$new[$comboidb] = $scoreb;
}
1) 查询的选定字段中没有'l_id'
,因此$rowb['l_id']
或$row['l_id']
将生成通知
2) 来自l,fips f
我希望这是打字错误
3) 您的分组依据id
不清楚。所有具有相同l\u id
的行都具有相同的分数、uid,比如\u id
?很奇怪
4) 在每个周期后使用
mysql\u free\u结果
服务器错误是什么?从l开始,在第二次查询中使用。这是一个输入错误还是表名为l
?服务器说:HTTP错误500(内部服务器错误):当服务器试图满足请求时遇到意外情况。从l是一个输入错误,更新了代码snippitI建议您为sum(friend\u rating)
提供别名,例如sum(friend\u rating)作为sum
,因此您可以执行$rowb['sum']
。请原谅这些拼写错误,它们已被修复。查询或循环本身都不会生成键入错误(另一个被注释掉)…这只是在一个循环接着一个循环运行时发生的。有关详细的错误描述,请查看ento error_日志。并删除代码>从查询的末尾-它们在这里是无用的:)在php_日志中,我看到了这个错误:“php致命错误:允许的内存大小为33554432字节(尝试分配8字节)”。非常奇怪,因为数组的每个行只有大约10万行。但我仍然不喜欢你的第一个查询-它毫无意义,为什么要在那里使用分组方式
?防止重复,毫无疑问这是可以优化的。关于“致命错误”的思考?是什么导致如此大的内存泄漏?循环中有什么东西弹出吗?