Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Łączenie tabel, gdy nieustalona jest zmienna
Forum PHP.pl > Forum > Przedszkole
Ayrox
  1. <?php
  2. $zapytanie = "SELECT * from friends WHERE `zapraszajacy` = '$user' OR `zaproszony` = '$user' AND `status` = '1' ORDER BY 'kiedy' DESC LIMIT 0, 20";
  3. $wynik = mysql_query($zapytanie);
  4.  
  5. while ($wiersz = mysql_fetch_array($wynik)) {
  6.  
  7. $zapraszajacy=$wiersz['zapraszajacy'];
  8. $zaproszony=$wiersz['zaproszony'];
  9.  
  10. if ($zapraszajacy == $user)
  11. {
  12. $jedenzmienna=$zaproszony;
  13. }
  14. else
  15. {
  16. $jedenzmienna=$zapraszajacy;
  17. }
  18.  
  19. $zapytanie = "SELECT `czyistniejezdjecie` FROM `uzytkownicy` WHERE `login`='$jedenzmienna';";
  20. $wynik = mysql_query($zapytanie);
  21.  
  22. $danee = mysql_fetch_array($wynik);
  23. $czyistniejezdjecie=$danee['czyistniejezdjecie'];
  24.  
  25.  
  26.  
  27. if ($czyistniejezdjecie == 'tak')
  28.  
  29. {
  30.  
  31. echo 'Ten użytkownik ma zdjęcie!';
  32.  
  33. }
  34.  
  35. else
  36.  
  37. {
  38.  
  39. echo 'Ten użytkownik niestety nie ma zdjęcia';
  40.  
  41. }
  42.  
  43.  
  44. echo $jedenzmienna;
  45.  
  46.  
  47. }
  48. ?>


Teraz jak wiadomo mało wydajne jest przy każdym "obrocie" pętli robienie kolejnego zapytania o to czy użytkownik ma zdjęcie. Przypuszczam, że najlepszym rozwiązaniem będzie łączenie tych tabel, tylko jak to zrobić w przypadku mojego skryptu? 
Methestel
  1. SELECT friends.*,
  2. uzytkownicy.`czyistniejezdjecie`
  3. FROM friends LEFT JOIN uzytkownicy ON uzytkownicy.`id` = friends.`userId`
  4. WHERE `zapraszajacy` = '$user' OR `zaproszony` = '$user' AND `status` = '1'
  5. ORDER BY `kiedy` DESC LIMIT 0, 20


Zakładam że klucz główny tabeli uzytkownicy to `id`, a klucz obcy tabeli friends to `userId`. Pisane na szybko, nie gwarantuje poprawności zapytania ale mniej więcej tak to się robi
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.