Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Jak sprawdzić czy istnieje rekord w mysql?
Forum PHP.pl > Forum > Przedszkole
PrzeoR
Witam,

Mam taki dylemat, odkąd pisze w php zawsze gdy chcialem sprawdzic czy dane (rekord)wpisywane do skryptu istnieją juz w bazie to uzywalem SELECT i jezeli to wyrazenie zwrocilo pusty wynik to znaczylo ze nie ma go ( i dalej uzywajac konstrukcji if rozwiazywalem swoj problem). Przydatne to jest gdy np. w jakies kolumnie były unikalne identyfikatory ...

Czy jest jakas funckja ktora sprawdza istnienie rekordu? Czy uzywanie select jest prawidłowe?

Czekam na opinie
dtb
  1. <?php
  2. $q = mysql_fetch_array(mysql_query('SELECT count(*) FROM tabela WHERE ...'));
  3. if ($q[0]) {
  4.  echo 'rekord istnieje';
  5. } else {
  6.  echo 'rekord nieistnieje';
  7. }
  8. ?>
NetJaro
Ale przecież mysql_query zwraca false gdy zapytanie nic nie zawiera :-)
mysql_query
nospor
@NetJaro proponuje zaglądać do linków, które sam podajesz winksmiley.jpg
mysql_query zwraca false, gdy zapytanie jest błędne, a nie gdy nie zwróci żadnego rekordu. To wielka róznica smile.gif
NetJaro
Ups.. sorry smile.gif

To odkrywa czemu mi nie działa skrypt smile.gif
Dzięki i jeszcze raz smile.gif Dzisiaj mam zły dzień smile.gif
lukas_xplowd
Przepraszam za odkopywanie tematu ale właśnie go wałkuje smile.gif
Tak się zastanawiam czy nie lepiej użyć num_rows?
CODE

<?php
$q = mysql_num_rows(mysql_query('SELECT count(*) FROM tabela WHERE ...'));
if (
$q>0) {
echo 'rekord istnieje';
} else {
echo 'rekord nieistnieje';
}
?>

Wiem, że efekt ten sam ale bardziej chodzi mi o kwestie wydajnościowe.
Bo policzyć liczbę rekordów jest chyba szybciej niż załadować je do tablicy.

Proszę o wypowiedź ludzi "bardziej obytych" z PHP i MySQLem smile.gif
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.