Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关联数组的PHP while循环问题_Php_Arrays_Loops_While Loop_Associative - Fatal编程技术网

关联数组的PHP 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);

我有两个while循环填充关联数组——我可以一次运行一个(即注释另一个),但是,当我同时运行这两个循环时,我会收到一个服务器错误。尽管查询没有查询同一组数据,但我仍然尝试添加指针重置,但没有成功。以下是两个循环:

$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万行。但我仍然不喜欢你的第一个查询-它毫无意义,为什么要在那里使用
分组方式
?防止重复,毫无疑问这是可以优化的。关于“致命错误”的思考?是什么导致如此大的内存泄漏?循环中有什么东西弹出吗?