![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 29.10.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam
Tak sobie teraz siedze i koduje, i zastanawia mnie, jaki jest najszbszy sposob na sprawdzenie czy zapytanie wyplulo jakis rekrod czy nie? i nie interesuje mnie zawartosc rekordu ... zazwyczaj badam ilosc wynikow: [php:1:05fff26a1b]<?php if (mysql_num_rows($wynik)>0) {...} ?>[/php:1:05fff26a1b] czy moze znacie szybsze rozwiazanie? pozdrawiam |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Do sprawdzenia czy wypluło rekord używa się [manual:e0dc6b2d48]mysql_num_rows[/manual:e0dc6b2d48].
Ewentualnie zainteresuj się funkcją COUNT z mysql - zwraca ilość wyników, nie pobierając samych wyników: :arrow: http://www.mysql.com/doc/en/ -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 29.10.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
oczywiscie mialem napisac mysql_num_rows.
![]() dzieki! Cytat Do sprawdzenia czy wypluło rekord używa się [manual:323e60bb2f]mysql_num_rows[/manual:323e60bb2f].
Ewentualnie zainteresuj się funkcją COUNT z mysql - zwraca ilość wyników, nie pobierając samych wyników: :arrow:http://www.mysql.com/doc/en/ |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
tak jak napisal spen COUNT w zapytaniu:
[sql:1:688c61dc9e]SELECT count(*) WHERE ...[/sql:1:688c61dc9e] Wtedyjuz po stronie serwera liczona jest liczba rekordow, wiec i nie trzeba uzywac dodatkowych funkcji w PHPie. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 29.10.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
nie chodzi mi o ilosc wynikow, tylko najszybszy proces sprawdzenia czy zapytanie dalo jakiekolwiek wyniki.
teraz pisze np tak: [php:1:f99db3d4c2]<?php $pyt=mysql_query("SELECT k.id_kategorii, id_rodzica, nazwa, kolejnosc FROM kategorie k, kategorie_tresc t WHERE k.id_kategorii=t.id_kategorii and id_jezyka=$valid_user[2] and id_rodzica='$id_rodz'"); if (mysql_num_rows($pyt)>0) { ......... } ?>[/php:1:f99db3d4c2] i tego zapytania raczej countem nie zastapie, a ilosc wynikow i tak przesyla baza w mysql_num_rows(), i moje pytanie jest takie, czy jest jakis lepszy (szybszy) sposob na sprawdzenie czy takie zapytanie dalo jakies odpowiedzi. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Musisz wykonać zapytanie, żeby sprawdzić, czy daje jakieswyniki. W MySQL nie ma prognozowania
![]() Dobrze robisz i się nie martw. -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli potem chcesz pobrać jakieś dane bez uzycia pętli to mozna tak[php:1:46930a9e0e]<?php
if( $wynik = mysql_fetch_assoc($zapytanie) ) { echo 'cos tam pobralo ![]() } else { echo 'puste'; } ?>[/php:1:46930a9e0e] -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat i tego zapytania raczej countem nie zastapie
Owszem zastąpisz i będzie to napewno wydajniejsze. [php:1:a8865f852f]<?php $pyt=mysql_query("SELECT count(*) as n FROM kategorie k, kategorie_tresc t WHERE k.id_kategorii=t.id_kategorii and id_jezyka=$valid_user[2] and id_rodzica='$id_rodz'"); $wyn = mysql_fetch_array($pyt); if ($wyn['n'] >0) { ......... } ?>[/php:1:a8865f852f] Cytat a ilosc wynikow i tak przesyla baza w mysql_num_rows()
Błąd. To nie baza przesyła Ci ilość zwróconych wierszy tylko liczy je funkcja z biblioteki klienckiej. Wymaga to odebrania wszystkich wierszy wyniku zapytania. Natomiast w przypadku funkcji count() otrzymujesz jeden wiersz per grupa (lub w ogóle jeden jeśli nie używasz grupowania), pomijajać fakt, że baza może sobie wyoptymalizować zapytanie gdy wie, że oczekujesz od niej tylko ilości wierszy a nie samych danych. Cytat i moje pytanie jest takie, czy jest jakis lepszy (szybszy) sposob na sprawdzenie czy takie zapytanie dalo jakies odpowiedzi.
Właśnie taki -- count() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 26.06.2025 - 23:02 |