vrienden van vrienden systeem

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Christian k

christian k

01/07/2014 15:43:33
Quote Anchor link
hallo iedereen,
ik wil graag dat als iemand (persoon A) op iemands account (persoon B) kijkt dat er dan max 8 aangeraden vrienden van die persoon staan. ik wil die vrienden selecteren op basis van gemeenschappelijke vrienden maar hoe kan ik die personen selecteren? de tabel met vrienden bestaat uit:
-id
-user_id
-friend_id
-status

weet iemand hoe ik dit het beste kan aanpakken?

alvast bedankt
 
PHP hulp

PHP hulp

18/12/2024 11:43:02
 
Frank Nietbelangrijk

Frank Nietbelangrijk

01/07/2014 19:49:51
Quote Anchor link
Christian k op 01/07/2014 15:43:33:
ik wil die vrienden selecteren op basis van gemeenschappelijke vrienden


dat snap ik niet.

Wat wel kan:
Persoon A is bevriend met Persoon B.
Persoon B heeft een vriend Persoon C.
Stel Persoon C voor als vriend aan Persoon A.
 
Christian k

christian k

01/07/2014 19:54:46
Quote Anchor link
Dat bedoel ik ook ongeveer maar dan wil ik zeg maar
Dan wil ik de persoon met het meeste gemeenschappelijke vrienden bovenaan
 
Frank Nietbelangrijk

Frank Nietbelangrijk

01/07/2014 22:45:46
Quote Anchor link
Ik heb daar niet zo even iets voor liggen.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

02/07/2014 08:13:50
Quote Anchor link
Hoe sla je het op?
Heb je per 'koppel' 2 records of 1?
 
Christian k

christian k

02/07/2014 10:08:17
Quote Anchor link
Per koppel 1 die word zo opgeslagen
-id van het record
-user_id verstuurder van het verzoek
-friend_id ontvanger van het verzoek
-status status van het verzoek (vrienden of verzoek)
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

02/07/2014 18:56:47
Quote Anchor link
Extreme self-join:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
SELECT
    fr.friend_id,
    u.user_name,
    COUNT(ff.user_id) common_friends
FROM (    
    SELECT
        CASE
            WHEN user_id = 2 THEN friend_id
            ELSE user_id
        END friend_id
    FROM
        friends f
    WHERE
        (user_id = 2 AND friend_id <> 1)
            OR
        (friend_id = 2 AND user_id <> 1)        
    ) fr
JOIN
    friends fof
    ON
    fr.friend_id = fof.friend_id
        OR
    fr.friend_id = fof.user_id
LEFT JOIN
    friends ff
    ON
    (IF(fr.friend_id = fof.friend_id, fof.user_id, fof.friend_id) = ff.friend_id AND ff.user_id = 1)
        OR
    (IF(fr.friend_id = fof.friend_id, fof.user_id, fof.friend_id) = ff.user_id AND ff.friend_id = 1)
JOIN
    users u
    ON
    fr.friend_id = u.user_id
GROUP BY
    fr.friend_id, u.user_name
ORDER BY
    common_friends DESC
LIMIT 8  

Edit:
Query een beetje aangepast
Gewijzigd op 03/07/2014 10:07:33 door Ger van Steenderen
 
Christian k

christian k

03/07/2014 10:55:12
Quote Anchor link
hartelijk bedankt voor de code!
maar op welke plekken moet ik de $user_id van de user van wie het account is plaatsen
en waar de $myid het id van mij?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

03/07/2014 11:17:26
Quote Anchor link
Waar in de query 1 staat ben jijzelf, en 2 is het account van de user.
 
Christian k

christian k

03/07/2014 14:51:29
Quote Anchor link
hij werkt hartelijk bedankt
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

03/07/2014 17:57:09
Quote Anchor link
Niet helemaal goed ben ik bang, vrienden die reeds jouw vriend zijn worden in de eerdere query ook getoond.
Deze zal beter gaan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
SELECT
    fr.friend_id,
    u.user_name,
    COUNT(ff.user_id) common_friends
FROM (    
    SELECT f.friend_id FROM
        (SELECT
            CASE
                WHEN user_id = 2 THEN friend_id
                ELSE user_id
            END friend_id
        FROM
            friends f
        WHERE
            (user_id = 2 AND friend_id <> 1)
                OR
            (friend_id = 2 AND user_id <> 1)
        ) f
        LEFT JOIN
            friends k
            ON
            (f.friend_id = k.friend_id AND k.user_id = 1)
                OR
            (f.friend_id = k.user_id AND k.friend_id = 1)
        WHERE k.user_id IS NULL        
    ) fr
JOIN
    friends fof
    ON
    fr.friend_id = fof.friend_id
        OR
    fr.friend_id = fof.user_id
LEFT JOIN
    friends ff
    ON
    (IF(fr.friend_id = fof.friend_id, fof.user_id, fof.friend_id) = ff.friend_id AND ff.user_id = 1)
        OR
    (IF(fr.friend_id = fof.friend_id, fof.user_id, fof.friend_id) = ff.user_id AND ff.friend_id = 1)
JOIN
    users u
    ON
    fr.friend_id = u.user_id
GROUP BY
    fr.friend_id, u.user_name
ORDER BY
    common_friends DESC
LIMIT 8
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.