Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> kiedy dane z bazy są wysyłane do interpretera php?, pobieranie danych mysql_query() i mysql_fetch_assoc()
janek
post
Post #1





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 31.01.2003
Skąd: piękne, czyste, pachnące Katowice

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


Witam,

Z tego co wiem funkcja mysql_query() pobiera uchwyt do wyniku z zapytania, a dopiero funckja np. mysql_fetch_assoc() daje dostęp do danych.

Wiecie może gdzie faktycznie znajduje się wynik zapytania do którego prowadzi uchwyt zwracany przez mysql_query()? Pytam, ponieważ mam problem z adminem, który twierdzi że już na etapie mysql_query() MySql wysyła dane do interpretera php i z tego powodu każe mi optymalizować zapytania. Pytam o to, ponieważ mam taki przypadek, że wykonuję mysql_query() a nastepnie nie wykonuję mysql_fetch_assoc() i nie wiem na ile ma sens to co on mówi (czyli czy to ja piszę słabe zapytania czy może on oferuje mi mało wydajną bazę).

Z góry dziękuję za pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

J.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
thornag
post
Post #2





Grupa: Zarejestrowani
Postów: 504
Pomógł: 2
Dołączył: 31.03.2006
Skąd: Londyn

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


Po sparsowaniu lini
  1. <?php
  2. $result = mysql_query($query)
  3. ?>

Wynik zapytania siedzi w zmiennej $result co chyba jasno obrazuje powyzsza linijka.

W momencie kiedy chcesz wyswietlic taki wynik albo uzyc go do dalszych dzialan musisz taki wynik sparsowac do postaci wygodnej dla php, sluza do tego funckcje z rodziny mysql_fetch_* (w przypadku mysqla oczywiscie)

Nie widze sensu wykonywania zapytania jesli pozniej nijak nie korzysta sie z wyniku (nie tylko fetchem ale tez np mysql_num_rows()).

Zasada prosta, im mniej zapytan tym lepiej i szybciej, wiec jesli wysylasz zapytania i nijak nie korzystasz z wyniku to ciezko powiedziec zeby Twoje zapytania byly malo optymalne, one sa zbedne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
janek
post
Post #3





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 31.01.2003
Skąd: piękne, czyste, pachnące Katowice

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


Dzieki za odpowiedz.

Czyli jak rozumiem po mysql_query wynik idzie do interpretera php. O to mi chodziło. Dzięki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Na marginesie: nie pisałem że nie korzystam z zapytań, napisałem tylko że nie używam mysql_fetch_assoc(). Akurat trafiłeś, po mysql_query() jest mysql_num_rows() ... ale już to sobie zoptymalizowałem. Chodziło mi tylko o odpowiedz na pytanie zawarte w temacie posta.

Dzięki raz jeszcze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
thornag
post
Post #4





Grupa: Zarejestrowani
Postów: 504
Pomógł: 2
Dołączył: 31.03.2006
Skąd: Londyn

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


Jesli chodzi o num_rows() to jesli juz optymalizujesz to zmien zapytania na SELECT COUNT(pole) AS nazwa, wtedy nie bedzies zmsuial ciagnac ogromnej ilosci rekordow z bazy tylko po to zeby je sobie policzyc, korzystaj z funkcji ktore oferuje sama baza, mozna zaoszczedzic sporo czasu i wysilku.
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: 22.08.2025 - 14:41