Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Łączenie tabeli
Forum PHP.pl > Forum > Przedszkole
Ayrox
  1. <?php
  2. $zapytanie = "SELECT * from `friends` WHERE `zapraszajacy` = '$user' OR `zaproszony` = '$user' AND `status` = '1' 
  3.  
  4.  
  5.  
  6. ORDER BY 'kiedy' DESC LIMIT 0, 4;";
  7.  
  8.  
  9. $wynik = mysql_query($zapytanie);
  10.  
  11. while ($wiersz = mysql_fetch_array($wynik)) {
  12.  
  13. $zapraszajacy=$wiersz['zapraszajacy'];
  14. $zaproszony=$wiersz['zaproszony'];
  15.  
  16. if ($zapraszajacy == $user)
  17. {
  18. $jedenzmienna=$zaproszony;
  19. }
  20. else
  21. {
  22. $jedenzmienna=$zapraszajacy;
  23. }
  24.  
  25.  
  26.  
  27.  
  28.  
  29. $zapytanie = "SELECT `czyistniejezdjecie` FROM `uzytkownicy` WHERE `login`='$jedenzmienna';";
  30. $wynik = mysql_query($zapytanie);
  31.  
  32. $danee = mysql_fetch_array($wynik);
  33. $czyistniejezdjecie=$danee['czyistniejezdjecie'];
  34. }
  35. ?>




Nie wiem, jak zrobić żeby nie było to tak mało wydajne, jak jest teraz, czyli każdy "obrót" pętli to nowe zapytanie;

kolumne czyistniejezdjecie odczytuje z tabeli uzytkownicy gdzie struktura wyglada tak login|haslo|czyistniejezdjecie|ostatnielogowanie

z kolei kolumne zapraszajacy albo zaproszony, w zależności od tego który użytkownik zaprosi którego, nie zmienia to faktu że są znajomymi, odczytuje z tabeli friends

Wnioskuje na podstawie wcześniejszych wypowiedzi użytkowników, że najlepszym sposobem, będzie połączenie tych tabel, tylko tutaj mam problem, bo w tym przykładzie zapytanie jest dosyć złożone.

Pozdrawiam 
kefirek
Nie wiem czy te kolumny chciałeś złączyć ale zobacz tak
  1. $zapytanie = "SELECT t.*, u.* FROM `friends` t LEFT JOIN u `czyistniejezdjecie` ON t.login=u.zaproszony WHERE `zapraszajacy` = '$user' OR `zaproszony` = '$user' AND `status` = '1'";
Ayrox
Kefirku, byłbym Ci wdzięczny jakbyś mi napisał, co oznaczają poszególne te literki: t, u itd, bo trochę tego nie rozumiem tongue.gif
kefirek
Te literki to aliasy stasuje się zazwyczaj przy złączaniu tabel w celu ich odróżnienia możesz tam wpisać jakie chcesz litery np. a itp. Tylko musisz pamiętać ze t.*, to odnosi się do pierwszej tabeli a u.* do drugiej dlatego przy kolumnach z drugiej tabeli masz np. u.zaproszony bo pochodzi z drugiej tabeli
W skrócie po to są te litery by odróżnić tabele lub kolumny przy złączeniach
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.