Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak sprawdzić czy istnieją jakiekolwiek rekordy w tabeli?
Forum PHP.pl > Forum > Bazy danych > MySQL
kilab
Witam, dzisiaj natknąłem się na mały problem. Chodzi o to, że chcę sprawdzić czy istnieją jakieś rekordy dla tabeli x, jesli tak to wyświetla je kolejno ( to mam), ale jak nie ma to wyświetla informacje o tym. I w tym jest właśnie problem, jak sprawdzić czy są jakieś rekordy w bazie ? Czekam na wasze podpowiedzi winksmiley.jpg
erix
mysql_fetch_* zwraca false, gdy nie ma rekordów. Najprościej wstaw sobie przed pętlą listującą jedno fetch i jeśli nie jest false, cofnij się w wyniku o jeden (mysql_data_seek" title="Zobacz w manualu PHP" target="_manual) i rób normalną pętlą.

Tylko ręce precz od mysql_num_rows" title="Zobacz w manualu PHP" target="_manual, chociaż Ty nie maltretuj serwera.
kefirek
Prosze
  1. <?php
  2. $wynik = mysql_query("SELECT * FROM test")
  3. if(mysql_num_rows($wynik) > 0) {
  4. while($row = mysql_fetch_assoc($wynik)) {
  5. echo "".$row['imie']."";
  6. echo "".$row['email']."";
  7. }
  8. } else { echo 'brak rekordow';}
  9. ?>
Albitos
Łomatko dżizas.... mysql_num_rows() liczy po kolei wszystkie rekordy pobrane z bazy - pobiera je i zlicza. Samobójstwo... Drugi sposób jest co najmniej śmieszny - od robienia takich rzeczy jest specjalna funkcja w MySQL - COUNT().

  1. <?php
  2. $result = mysql_query('SELECT COUNT(*) FROM tabela');
  3. if(mysql_fetch_column($result))
  4. {
  5. //sa rekordy
  6. }
  7. else
  8. {
  9. //nie ma rekordow
  10. }
  11. ?>


Oczywiście ten sposób odnosi się tylko i wyłącznie przypadku, gdy nie potrzebujemy pobranych danych z bazy. W innym przypadku warto zapisać sobie ilość rekordów po ich wykorzystaniu.
erix
Cytat
najmniej śmieszny - od robienia takich rzeczy jest specjalna funkcja w MySQL - COUNT().

To też nie jest najefektywniejsze. winksmiley.jpg

http://dev.mysql.com/doc/refman/5.0/en/inf...tion_found-rows
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.