Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] algorytm wyciagania danych z bazy
Beacri
post
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 4
Dołączył: 19.02.2008
Skąd: Łódź

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


Witam,
mam 2 tabele w bazie: userzy i pliki. Chcę wyświetlać listę plików z nazwami użytkowników i szukam najwydajniejszego rozwiązania.

5 lat temu zrobiłbym coś na kształt:
  1. $mq=mysql_query("select * from pliki");
  2. while($mfa=mysql_fetch_assoc($mq)){
  3.  
  4. $usr=mysql_fetch_assoc(mysql_query("select imie from users"));
  5. echo "plik: $mfa[plik] od $usr[imie]<br>";
  6. }


ale przy 20 plikach baza zaczyna się przypalać, zwłaszcza jak korzysta z tego 50+ osób.

teraz wpadłem na pomysł (schematycznie opsiane):

  1. $i=0;
  2. $mq=mysql_query("select * from pliki");
  3. while($mfa=mysql_fetch_assoc($mq)){
  4. $stringi.="plik: $mfa[plik] od #user$i<br>";
  5.  
  6. $userlista.="ID=$mfa[wlasciciel],";
  7. $i++;
  8. }
  9.  
  10. $mq=mysql_query("select imie from userzy where $userlista");
  11. $i=0;
  12. while($mfa=mysql_fetch_assoc($mq)){
  13. str_replace("#user$i", $mfa[imie], $stringi);
  14. $i++;
  15. }
  16.  
  17. echo $stringi;


ale ciągle mam wrażenie, że jest to do zrobienia prościej. Macie może jakieś pomysły lub sprawdzone rozwiązania do tego?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
pmir13
post
Post #2





Grupa: Zarejestrowani
Postów: 282
Pomógł: 89
Dołączył: 12.04.2011

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


Wystarczyłby najzwyklejszy join:

  1. SELECT p.plik, u.imie
  2. FROM pliki p JOIN userzy u
  3. ON p.wlasciciel = u.id


I dostajesz gotowe do wyświetlenia pary plik,imię. Zwróć też uwagę na to by w select mieć tylko to, co potrzebujesz. Po co przesyłać wszystkie kolumny?
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 4.10.2025 - 15:43