2011-05-04 61 views
0

我有兩個while循環填充關聯數組 - 我可以一次運行一個(即註釋另一個),但是,當我同時運行兩個同時收到服務器錯誤。儘管查詢沒有查詢同一組數據,但我仍然嘗試添加一個沒有運氣的指針重置。這裏有兩個循環:PHP while 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; 
} 

// 2。從數據庫中計算新的成績,並創建陣列美元的新

$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; 
} 
+11

後使用mysql_free_result什麼是服務器錯誤說? – Mark 2011-05-04 07:49:26

+0

'from l,'在第二個查詢中。這是一個錯字或表名是'l'嗎? – Gaurav 2011-05-04 07:50:36

+1

服務器說:HTTP錯誤500(內部服務器錯誤):服務器試圖完成請求時遇到意外情況。 – mhawk 2011-05-04 12:53:26

回答

0

1)。在你的查詢中選擇的字段沒有'l_id',所以$rowb['l_id']$row['l_id']將生成通知。

2)from l, fips f這是我錯過的錯字?您的GROUP BY l_id不明確。所有具有相同l_id的行都有相同的score, uid, like_id?很奇怪。

4)每個週期http://ru2.php.net/manual/en/function.mysql-free-result.php

+0

請原諒那些錯誤,它們已被修復。查詢或循環都不會自己產生拼寫錯誤(另一個被註釋掉)......它只是在一個循環之後運行一個循環。 – mhawk 2011-05-04 13:09:38

+0

這裏更新了代碼: – mhawk 2011-05-04 13:10:21

+0

查看ento error_logs瞭解詳細的錯誤描述。並從查詢結束刪除';' - 這些在這裏是沒用的:) – Emmerman 2011-05-04 13:17:19