Közös követők lekérése
Sziasztok!
Adott 2 db tábla: users, followers.
users szerkezete:
ID, firstname, lastname, stb.
followers szerkezete:
ID, follower_userid (ki követ), following_userid (kit)
A = a bejelentkezett felhasználó (most te)
B = miközben végig megy az összes felhasználón egy ciklus, ő az aktuális felhasználó; nem egyenlő "A"-val; nem követi "A"-t
- Ha egy felhasználó követ valakit, nem jelenti azt, hogy a másik is követi őt
- van egy "ajánlott felhasználók" rész az oldalon, ahol közös követők alapján listázza ki a felhasználókat
- "A" felhasználó adatait az $user objektum tárolja ($user->id)
- ha új felhasználót akarsz létrehozni: $user2=new User(felhasználó ID-je);
Kellene egy olyan algoritmus, amely visszaadja a két felhasználó közös követőinek számát.
Eddig ezzel próbálkoztam:Nos, ha meg lehetne csinálni a $query-t úgy, hogy alapból csak azokat a felhasználókat mutassa, akik nem követik "A"-t, az jó lenne - a LEFT JOIN ON-nal próbálkoztam sikertelenül - ezért írtam egy is_follow()-t melynek első paramétere a follower_userid, második a following_userid.
Szóba jött még nálam a DISTINCT és a GROUP BY, de viszonylag tapasztalatlan vagyok a kettőt illetően.
Itt találtok egy képet az elképzelésemről, ha "A"=1 és "B"=3, a visszatérési érték 2 lesz, mivel 2 db közös követő van. (Remélem helyes a kép, mert elég fáradt voltam készítésekor xd.)
Az építő jellegű hozzászólásokat előre is köszönöm.
■ Adott 2 db tábla: users, followers.
users szerkezete:
ID, firstname, lastname, stb.
followers szerkezete:
ID, follower_userid (ki követ), following_userid (kit)
A = a bejelentkezett felhasználó (most te)
B = miközben végig megy az összes felhasználón egy ciklus, ő az aktuális felhasználó; nem egyenlő "A"-val; nem követi "A"-t
- Ha egy felhasználó követ valakit, nem jelenti azt, hogy a másik is követi őt
- van egy "ajánlott felhasználók" rész az oldalon, ahol közös követők alapján listázza ki a felhasználókat
- "A" felhasználó adatait az $user objektum tárolja ($user->id)
- ha új felhasználót akarsz létrehozni: $user2=new User(felhasználó ID-je);
Kellene egy olyan algoritmus, amely visszaadja a két felhasználó közös követőinek számát.
Eddig ezzel próbálkoztam:
$query=mysql_query("SELECT * FROM users WHERE id!='$user->id'");
while($data=mysql_fetch_assoc($query)){
if(!is_follow($user->id,$data["id"])){
echo "$data[firstname] $data[lastname] ($data[id])<br/>\n"; //"B"
$query2=mysql_query("SELECT * FROM followers WHERE follower_userid='$user->id' OR follower_userid='$data[id]' AND following_userid='ide kellene valami'");
while($data2=mysql_fetch_assoc($query2)) //tulajdonképpen ez nem is kell, csak egy mysql_num_rows, csak ellenőrzés képpen van itt
echo " - ".getName($data["id"])." (".$data["id"].")<br>"; //közös követők
}
}
Szóba jött még nálam a DISTINCT és a GROUP BY, de viszonylag tapasztalatlan vagyok a kettőt illetően.
Itt találtok egy képet az elképzelésemről, ha "A"=1 és "B"=3, a visszatérési érték 2 lesz, mivel 2 db közös követő van. (Remélem helyes a kép, mert elég fáradt voltam készítésekor xd.)
Az építő jellegű hozzászólásokat előre is köszönöm.
Gondold át
Táblát önmagához kapcsolod
Köszönöm