Vrienden van vrienden, wat voor query?

Status
Niet open voor verdere reacties.

gebruiker78

Gebruiker
Lid geworden
29 jun 2010
Berichten
428
Hallo,
ik heb een profiel waar vrienden bij kunnen en vrienden van vrienden maar hoe maak ik dit?
ik heb het zo in mijn database staan.
Piet
Jan
Henk
id vrienden
Jan Henk
Henk Jan
Piet Jan
Jan Piet

dus Jan is vrienden met Henk en Piet is vrienden met Jan.
Hoe zorg ik ervoor dat Piet bij het profiel van Henk kan (aangezien profiel van Henk op vrienden van vrienden staat).
iets van alle vrienden van Henk selecteren en kijken of Piet ook vrienden is met een van die vrienden (dus Jan) maar hoe maak ik z'n query?
 
Laatst bewerkt:
Wat je moet doen is het volgende..

Maak een namen tabel aan:
NAMEN (met ID als sleutel)
Code:
+--------+--------+
|    ID  |   NAAM  |
+--------+--------+
|    0   |  Henk  |
+--------+--------+
|    1   |  Piet  |
+--------+--------+
|    2   |  Joos  |
+--------+--------+
en een tabel vrienden

VRIENDEN (met naamid en vriendenid als sleutel)
Code:
+--------+--------+
| naamid | vriendid|
+--------+--------+
|    0   |  1     |
+--------+--------+
|    0   |  2     |
+--------+--------+
|    1   |  2     |
+--------+--------+
Stel nu je bent HENK --> naamid = 0.. (zou je kunnen ophalen door de loginid)

Dan zou je een sql statement kunnen maken als:
Code:
SELECT	(SELECT naam FROM NAMEN n where v.vriendid = n.id)
FROM	VRIENDEN v
WHERE	naamid = 0;
 
Laatst bewerkt:
Ja ik werk ook met nummers maar ik had het neergezet en was een beetje moeilijk te lezen dus maakte ik maar namen en kleurtjes van.
Alleen werkt deze query niet want nu haal ik alleen de naam op.
Ik wil gewoon weten.
0 is een persoon
1 is een persoon
2 is een persoon
id friend
0 1
1 0
2 1
1 2

dus 2 is geen vrienden met 0, maar vriend van 2 wel (1 dus, is wel vrienden met 0).
hoe kan ik erdan voor zorgen dat een query bijv een true statement geeft als je op profiel 0 komt en z'n soort query komt:
selecteer vrienden van 0
daar komt dan 1 uit
en aangezien 2 wel vrienden is met 1 moet er uit deze query true komen aangezien het dus een vriend van een vriend is.
ong:
Select friends where id=0
select friends where id=2

is een van de 0/2 vrienden gelijk geef dan true terug.
of zoiets dus:
$count = mysql_num_rows($friendoffriend);
if($count!=0){
// er zijn dus vrienden hetzelfde
}

Maar hoe maak ik zoiets?
 
opgelost:
select count(id) from `usersf` where id = 2 and usersf.friends in (select `friends` from `usersf` where id = 0)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan