Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL][PHP]Pętla i pobieranie danych z bazy
Forum PHP.pl > Forum > Przedszkole
emil1702
Witam

napisałem kod, który ma za zadanie wyświetlać kadrę zespołu, a także informacje dotyczące jego kontuzji czy też narodowości. Czy pobieranie danych z mysql w pętli będzie dobrym wyborem czy za bardzo obciąży stronę?


  1. $jr = mysql_query("SELECT * FROM zawodnicy WHERE (wiek < 21) && (klubid='1')"); [i]< - pobieranych danych o zawodnikach, m.in. imie, nazwisko, wiek, zdrowie[/i]
  2. while($rek = mysql_fetch_array($jr)) {
  3.  
  4. $kraj = mysql_query("SELECT zawodnicy.id, zawodnicy.kraj, kraj.id, kraj.nazwa < - pobieranie nazwy kraju z tabeli kraj, jeśli krajid w tabeli zawodnicy jest równy kraj id w tabeli kraj
  5. FROM zawodnicy
  6. LEFT JOIN kraj
  7. ON zawodnicy.kraj=kraj.id");
  8. $krajzaw = mysql_fetch_array($kraj);
  9. echo $lp = $lp+1 .'. '. $rek['imie'].' '.$rek['nazwisko'].$krajzaw['nazwa'];
  10. if ($rek['zdrowie'] == 1) { echo '+'; }
  11. if ($rek['transferlist'] == 1) { echo '$'; }
  12. echo '<br />'; }


Według Was można to jakoś zmienić, aby dane były pobierane raz, a nie kilkanaście razy?
CuteOne
ale po co pobierasz dwa razy te same rekordy?? nie mozesz wstawic (wiek < 21) && (klubid='1') do drugiego zapytania?
emil1702
Cytat(CuteOne @ 17.06.2012, 18:38:45 ) *
ale po co pobierasz dwa razy te same rekordy?? nie mozesz wstawic (wiek < 21) && (klubid='1') do drugiego zapytania?

całość kodu wygląda tak
  1. $seniorzy = mysql_query("SELECT * FROM zawodnicy WHERE (wiek > 21) && (klubid='1')");
  2. $jr = mysql_query("SELECT * FROM zawodnicy WHERE (wiek < 21) && (klubid='1')");
  3. $lp = 0;
  4. echo '<center><b>SENIORZY</b></center>';
  5. while($rek = mysql_fetch_array($seniorzy)) {
  6. echo $lp = $lp+1 .'. '. $rek['imie'].' '.$rek['nazwisko'];
  7. if ($rek['zdrowie'] == 1) { echo '+'; }
  8. if ($rek['transferlist'] == 1) { echo '$'; }
  9. echo '<br />'; }
  10.  
  11. echo '<center><b>JR</b></center>';
  12. while($rek = mysql_fetch_array($jr)) {
  13.  
  14. $kraj = mysql_query("SELECT zawodnicy.id, zawodnicy.kraj, kraj.id, kraj.nazwa
  15. FROM zawodnicy
  16. LEFT JOIN kraj
  17. ON zawodnicy.kraj=kraj.id");
  18. $krajzaw = mysql_fetch_array($kraj);
  19. echo $lp = $lp+1 .'. '. $rek['imie'].' '.$rek['nazwisko'].$krajzaw['nazwa'];
  20. if ($rek['zdrowie'] == 1) { echo '+'; }
  21. if ($rek['transferlist'] == 1) { echo '$'; }
  22. echo '<br />'; }
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.