Проблем с код за приятели

lub4o

Registered
Здравейте, имам този код за приятели
Код:
$id = (int)$_GET[fr];
if($_SESSION['username'])
{
    if($id)
    {
        $sql = mysql_query("SELECT * FROM friends WHERE friend = '$id'") or die (mysql_error());
        $broi = mysql_num_rows($sql);
        $zaqvka = mysql_query("SELECT * FROM users WHERE id = '$id'") or die (mysql_error());
            $row = mysql_fetch_assoc($zaqvka);
        $chislo = mysql_num_rows($zaqvka);
        
        if($row[username] == $_SESSION['username'])
        {
            echo 'Не можеш да се добавяш в приятели';
        }elseif($broi >= 1)
        {
            echo 'We4e ste priqteli';
        }
        else
        {
            
            if($chislo == 0)
        {
            echo 'nqma takuv potrebitel';
        }else{
            $sql = mysql_query("INSERT INTO friends (friend,user) VALUES ('$id','$_SESSION[user_id]')") or die (mysql_error());
            echo "Добави $id успешно в приятели";
            }
        }
            
    }else
    {
     echo 'Избери потребител';   
    }

}else
{
    echo 'Първо влез';
}

Записвам приятели с id-тата им

id friend user
1 2 1
Как мога да иска, като изкарвам колко приятели имам да им показвам и имената
 
Да предположим, че информацията за потребителите е в подобна таблица:

id, name

Променяш заявката, която вече имаш, като свързваш таблицата friends с таблицата users:

Код:
SELECT 
             friends.*,
             users.name 

            FROM friends 
            LEFT JOIN users on users.id = friends.friend

            WHERE friends.friend = '$id'
(не съм много сигурен за правилните колони, защото не си сложил правилни имена на колоните и малко се бъркам, но ще схванеш идеята)

Оптималния вариант е да имаш две заявки - едната само да брои колко приятеля има съответния потребител:

Код:
SELECT count(*) FROM friends WHERE friend = '$id'

Другата, като тази която съм написал с join-a, да показва приятелите. Не е добро решение да използваш mysql_num_rows само за да видиш общия брой на резултатите от заявката.
 

Back
Горе