Проблема с циклом PHP в ассоциативном массиве - PullRequest
0 голосов
/ 04 мая 2011

У меня есть два цикла 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

$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 Ответ

0 голосов
/ 04 мая 2011

1) В выбранных полях ваших запросов нет 'l_id', поэтому $rowb['l_id'] или $row['l_id'] создаст уведомление.

2) from l, fips f это опечатка, я надеюсь?

3) Ваш GROUP BY l_id не ясен.Все строки с одинаковыми l_id имеют одинаковые score, uid, like_id?Очень странно.

4) Используйте mysql_free_result после каждого цикла http://ru2.php.net/manual/en/function.mysql-free-result.php

...