Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Wspólni znajomi
Johnas
post 9.03.2011, 19:26:37
Post #1





Grupa: Zarejestrowani
Postów: 650
Pomógł: 16
Dołączył: 5.07.2010
Skąd: Ściśle Tajne

Ostrzeżenie: (0%)
-----


Witam jak zrobić zapytanie liczące wspólnych znajomych bo głowię się kilka dni i nie wiem. Szukałem w google ale nie ma napisane dokładnie jak zrobić zapytanie...
SQL ze znajomymi wygląda u mnie tak:



Zrobiłem coś takiego ale to niestety nie działa sad.gif
  1. <?php
  2. $myid = $_SESSION['id'];
  3. $result007 = mysql_query("SELECT * FROM znajomi WHERE id_dodaj=$getek AND potwierdzil=1 OR id_zap=$getek AND potwierdzil=1 ORDER BY id ") or mysql_error();
  4. $result008 = mysql_query("SELECT * FROM znajomi WHERE id_dodaj=$myid AND potwierdzil=1 OR id_zap=$myid AND potwierdzil=1 ORDER BY id ") or mysql_error();
  5. $ilez7 = mysql_num_rows($result007);
  6. $_SESSION['ilez'.$getek.''] = 0;
  7.  
  8.  
  9. while($row007 = mysql_fetch_array($result007, MYSQL_BOTH)) {
  10. $z1 = $row007['id_dodaj'];
  11. $z2 = $row007['id_zap'];
  12. if ($z1 == $getek){
  13. $toz = $z2;
  14. } else {
  15. $toz = $z1;
  16. }
  17.  
  18. while($row008 = mysql_fetch_array($result008, MYSQL_BOTH)) {
  19. $z3 = $row008['id_dodaj'];
  20. $z4 = $row008['id_zap'];
  21. if ($z3 == $gmyid){
  22. $noz = $z4;
  23. } else {
  24. $noz = $z3;
  25. }
  26.  
  27.  
  28. $liczymy = mysql_query("SELECT * FROM znajomi WHERE id_dodaj='$toz' AND id_zap='$noz' AND potwierdzil=1 OR id_zap='$toz' AND id_dodaj='$noz' AND potwierdzil=1") or mysql_error();
  29.  
  30. $ilez7 = mysql_num_rows($liczymy);
  31.  
  32. }
  33. }
  34. ?>


--------------------
Jak coś jest dobre, to nie znaczy że nie może być to lepsze - Ideały nie istnieją ;D
Strony internetowe Świnoujście
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
bmL
post 10.03.2011, 00:26:55
Post #2





Grupa: Zarejestrowani
Postów: 301
Pomógł: 25
Dołączył: 15.07.2007
Skąd: Olsztyn

Ostrzeżenie: (0%)
-----


Naprawdę intuicyjne nazwy zmiennych biggrin.gif
Załóżmy że struktura tabeli to [u1, u2, ac]
  1. SELECT u2 FROM znajomi WHERE u1 IN (SELECT u2 FROM znajomi WHERE u1 = $myID AND ac = 1) AND u2 != $myID AND ac = 1

Ręki sobie za to nie dam uciąć ale wygląda OK
Oczywiście w twoim przypadku pewnie wypadało by dopisać warunki które odwracały by u1 i u2. Ale moim zdaniem lepiej dodać skrypt zmodyfikować znajomych tak żeby po zaakceptowaniu znajomego były dwa wpisy np:
mamy userów A i B.
Użytkownik A zaprasza użytkownika B.
W bazie danych dodaje się wpis:
U1 = A, U2= B
kiedy użytkownik B zaakceptuje zaproszenie w bazie tworzy się kolejny wpis:
U1 = B, U2 = A
można by nawet dzięki temu pominąć pole accepted smile.gif ale ja bym zostawił w celu podwyższenia wydajności smile.gif

Ten post edytował bmL 10.03.2011, 00:28:50


--------------------
Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
Go to the top of the page
+Quote Post
Johnas
post 11.03.2011, 12:59:51
Post #3





Grupa: Zarejestrowani
Postów: 650
Pomógł: 16
Dołączył: 5.07.2010
Skąd: Ściśle Tajne

Ostrzeżenie: (0%)
-----


No dalej nie wiem... Chce porównać wspólnych znajomych na profilu czyli muszę pobrać znajomych $geta i porównać je z $myid Ale nie wiem jak. Najpierw muszę porównać gdzie ja zapraszałem a potem gdzie oni zapraszali. Ale od tego algorytmu aż mnie głowa boli sad.gif


Pomoże ktoś ?;>

Ten post edytował Jonek_1993 10.03.2011, 17:48:33


--------------------
Jak coś jest dobre, to nie znaczy że nie może być to lepsze - Ideały nie istnieją ;D
Strony internetowe Świnoujście
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 19:46