![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 0 Dołączył: 10.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam następujący problem.
W jaki sposób wykryć, że funkcja mysql_query dla danego zapytania zwraca 0 wyników? Prosty przykład o co chodzi. $zapytanie = mysql_query("SELECT `wiek` FROM `uczniowie` WHERE `imie` = 'Alek' LIMIT 1"); $wynik = mysql_result($check, 0); Jeśli w tabeli `uczniowie` istnieje osoba o imieniu 'Alek' w zmiennej $wynik znajdzie się jego wiek. Jednak jeśli w tabeli nie ma osoby o imieniu 'Alek' funkcja mysql_result nie zadziała dając komunikat: "Unable to jump to row 0 on MySQL result (..)". Z tego tez powodu chciałbym wiedzieć czy istnieje jakiś sposób na wykrycie, że funkcja mysq_query zwraca 0 wyników. Owszem, wiem, że mógłbym najpierw wykonać zapytanie z funkcją COUNT(), aby sprawdzić czy nie zwraca ona 0, jednak wtedy będzie potrzebne kolejne zapytanie SELECT, które dopiero pobierze `wiek`, a zależy mi żeby zapytań było raczej jak najmniej ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Hmm, przecież jak używasz mysql_fetch_array to zwraca ona albo rekord, albo false (jeśli błąd albo nie ma rekordów).
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 0 Dołączył: 10.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
W zasadzie też można, ale przypomniałem sobie o funkcji mysql_num_rows , która wydaje się, że będzie do tego najlepsza
![]() Ten post edytował 8rol 24.06.2010, 16:28:43 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
Hmm, przecież jak używasz mysql_fetch_array to zwraca ona albo rekord, albo false (jeśli błąd albo nie ma rekordów). ![]() mysql_num_rows() jak najbardziej do tego jest stworzona. Ten post edytował Mchl 24.06.2010, 16:52:52 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat W zasadzie też można, ale przypomniałem sobie o funkcji mysql_num_rows , która wydaje się, że będzie do tego najlepsza Nie będzie najlepsza. Jeśli sprawdzamy, czy są dane, bez konieczności sprawdzenia, ile jest rekordów, mysql_num_rows OMIJAMY z daleka. O ile pamiętam, to nawet w manualu jest coś o tym napisane, ale chyba w komentarzach. Nawet jeśli jest potrzebna konkretna liczba rekordów - są inne sposoby, które są zalecane, bo mysql_num_rows jest chyba najbardziej zasobożernym sposobem. Co nie zmienia faktu, że to logiczne - nie musisz liczyć, ile masz piłeczek w pudełku, skoro wystarczy do niego zerknąć, żebyś wiedział, że coś w nim jest. ![]() -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 437 Pomógł: 42 Dołączył: 16.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ten post edytował sebekzosw 24.06.2010, 17:48:37 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 06:42 |