Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Ilość zapytań wykonywanych przez skrypt
jaaneq
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 17.03.2009

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


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
mortus
post
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


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)";


Ten post edytował mortus 18.12.2011, 17:20:51
Go to the top of the page
+Quote Post
jaaneq
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 17.03.2009

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


Pewnie dlatego, że mój poziom wiedzy o bazach danych jest dramatycznie niski (IMG:style_emoticons/default/biggrin.gif)
Dziękuje bardzo za podsunięcie fajnego rozwiązania.
Go to the top of the page
+Quote Post

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: 23.08.2025 - 21:35