Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: optymalizacja zapytań SQL
Forum PHP.pl > Forum > PHP
morgun
Witam

mam problem z optymalizacją kodu zapytań SQLa
proszę o propozycje modyfikacji.
sprawa wygląda tak. mam kilka katalogów zdjęć (duże i małe).
na stronie głównej pojawia się najnowsze zdjęcie z każdej kategorii. niestety robię do każdej zapytanie - czyli w sumie 6 zapytań.
chciałbym to zrobić w jednym zapytaniu. czy taka unifikacja jest możliwa?

poniżej załączam kawałek kody zapytania:
  1.  
  2. <p class="foto_text2">Najnowsze zdjęcia w galerii</p>
  3. <?php
  4. $photo2 = "pejzaz";
  5. $ImageDir ="images/". $photo2 ."/";
  6. $ImageThumb = $ImageDir . "thumbs/";
  7.  
  8. $query = "SELECT * FROM photo WHERE photo_grupa = 'pejzaz' ORDER BY photo_data DESC LIMIT 1";
  9. $result = mysql_query($query) or die("Niepoprawne zapytanie: " . mysql_error());
  10.  
  11. while ($row = mysql_fetch_array($result)) {
  12. $photo_id = $row['photo_id'];
  13. echo "<div class='foto_smallm'><div class='foto_ikona'>";
  14. dane............................
  15. </div></div>";
  16. }
  17. $photo2 = "portret";
  18. $ImageDir ="images/". $photo2 ."/";
  19. $ImageThumb = $ImageDir . "thumbs/";
  20.  
  21. $query = "SELECT * FROM photo WHERE photo_grupa = 'portret' ORDER BY photo_data DESC LIMIT 1";
  22. $result = mysql_query($query) or die("Niepoprawne zapytanie: " . mysql_error());
  23.  
  24.  
  25. while ($row = mysql_fetch_array($result)) {
  26. $photo_id = $row['photo_id'];
  27. echo "<div class='foto_smallm'><div class='foto_ikona'>";
  28. dane.........................
  29. </div></div>";
  30.  
  31. }

Riklaunim
Taka "optymalizacja" niewiele ci da, bo to są proste zapytania zwracające mało danych. Zastępując jednym zapytaniem trzeba by wszystkie umieścić jako jedno połączone przez UNION ALL
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.