Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Ilość zapytań wykonywanych przez skrypt
Forum PHP.pl > Forum > PHP
jaaneq
Mam pętlę, która wyświetla wszystkie tagi danego artykułu:
  1. $tagquery = mysql_query("SELECT tag_id FROM tagscont WHERE id = '".$content_id."'");
  2. $data = "SELECT tag FROM tags WHERE ";
  3.  
  4. $x = mysql_num_rows($tagquery);
  5. for($i=1;$i <= $x;++$i) {
  6. $tagfetch = mysql_fetch_array($tagquery);
  7. $data .= "tag_id = ".$tagfetch['tag_id']; if($i !== $x) {$data .= " OR ";}
  8. }
  9. $tagi = mysql_query($data);
  10. ...

Pytanie trywialne, aczkolwiek nie udało mi się znaleźć odpowiedzi na forum; a mianowicie:
Czy mysql_fetch_array($tagquery) za każdym "okrążeniem" pętli wykonuje zapytanie do bazy, czy tylko korzysta z wyniku zapytania zapisanego w zmiennej? Chodzi mi oczywiście o zredukowanie ilości zapytań do bazy danych do minimum.
mortus
Zapytanie wykonuje się tylko raz, a w pętli jest generowana tylko klauzula WHERE. Nie wiem, czemu ten zabieg ma służyć i dlaczego nie chcesz wykorzystać np. podzapytania:
  1. $sql = "SELECT `tag` FROM `tags` WHERE `tag_id` IN (SELECT `tag_id` FROM `tagscont` WHERE `id` = $content_id)";
jaaneq
Pewnie dlatego, że mój poziom wiedzy o bazach danych jest dramatycznie niski biggrin.gif
Dziękuje bardzo za podsunięcie fajnego rozwiązania.
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.