Jak sprawdzić czy w bazie danych istnieje aktualnie dodawana treść, PHP Skrypty


[MySQL][PHP] Jak sprawdzić czy w bazie danych istnieje aktualnie dodawana treść?

0x01 graphic

Chcesz sprawdzić czy dodawane informacje znajdują się już w bazie danych i w zależności od tego czy w niej już są czy nie, podjąć odpowiednie decyzje i np. umieścić dane lub zaniechać ich dodawania.

0x01 graphic

W praktyce bardzo często będziesz spotykać się z sytuacją, gdy trzeba sprawdzić czy jakaś informacja już istnieje w bazie i dopiero po sprawdzeniu dodać do tabeli kolejne informacje lub je modyfikować.

Nie tylko zapobiega to dublowaniu informacji, ale również pozwala podejmować wiele innych decyzji na podstawie testu na istnienie określonych rekordów. Zobacz jak poradzić sobie z tym zagadnieniem.

Stwórzmy prostą tabelę o nazwie test w bazie danych o nazwie baza1:

CREATE TABLE test (

id INT NOT NULL PRIMARY KEY auto_increment,

tresc TEXT NOT NULL

);

Dwa pola - jedno z unikalnym identyfikatorem id, a drugie z dowolnym tekstem. Będziemy sprawdzać czy tekst już istnieje w bazie, a jeżeli nie istnieje dodawać go.

<?

$txt="Dowolna treść...";

$baza=mysql_connect("localhost", "user", "password"); //połączenie

mysql_select_db("baza1",$baza); //wybranie bazy danych

$wynik=mysql_query("SELECT * FROM test WHERE tresc='$txt'",$baza);

if (mysql_num_rows($wynik)>0) {

echo "Podany tekst już istnieje w bazie!";

}

if (mysql_num_rows($wynik)==0) {

mysql_query("INSERT INTO test (tresc) VALUES ('$txt')",$baza);

echo "Podany tekst został dopisany!";

}

mysql_close($baza);

?>

Zmienna $txt przechwouje dodawany i sprawdzany tekst. Może on pochodzić z formularza, innego wyniku z baz danych lub powstać po wykonaniu jakiegoś skryptu. Mamy w każdym razie jakiś tekst, nie ważne jest źródło jego pochodzenia.

Łączymy się z bazą i wykonujemy zapytanie SELECT, które wyszuka w polu tresc nasz tekst. Funkcja mysql_num_rows() podaje ilość rekordów zwróconych w ostatnim pytaniu SQL. Ponieważ pytaliśmy o rekordy zawierające tekst, dostaniemy w odpowiedzi 0 lub liczbę rekordów zawierających nasz przykładowy tekst.

Jeżeli dostaniemy w wyniku 0, to znaczy, że nie ma rekordów spełniających kryteria wyszukiwania, a więc nie ma tam szukanego tekstu ze zmiennej $txt. Możemy więc wstawić tekst poleceniem INSERT.

Jeżeli funkcja mysql_num_rows() zwróci 1 (lub więcej), to znaczy, że taki rekord już istnieje i w tym momencie nic nie robimy.

W prosty sposób udało się nam zrealizować akcję zależną od tego czy już istnieje wpis o podanej treści czy nie



Wyszukiwarka

Podobne podstrony:
Jak sprawdzić czy zmienna przechowuje liczbę całkowitą lub rzeczywistą, PHP Skrypty
Jak wykryć i pokazać liczbę osób oglądających aktualnie stronę WWW, PHP Skrypty
Jak sprawdzić typy i atrybuty ustawione dla każdej z kolumn tabeli, PHP Skrypty
Jak sprawdzić czy istnieje podany użytkownik i jego hasło jest poprawne, PHP Skrypty
Jak sprawdzić czy domena istnieje i do kogo należy, PHP Skrypty
Jak sprawdzic czy pracodawca od Nieznany
Jak sprawdzić czy numer ewidencyjny PESEL został wpisany poprawnie
Jak sprawdzić czy numer rachunku bankowego (NRB) został wpisany poprawnie, PHP Skrypty
Jak sprawdzić czy pracodawca odprowadza składki ZUS
Jak sprawdzić czy dwa wyrazy są dla siebie anagramami (są permutacją, PHP Skrypty
Jak sprawdzić czy nasz komputer nie jest zainfekowany(1)
Jak sprawdzić, czy RAM działa prawidłowo
Jak sprawdzic czy wykonawca dysponuje osobami zdolnymi do realizacji zamowienia
jak sprawdzic czy zdjecie ma 10x15
Jak sprawdzić czy opony mają właściwe ciśnienie
Jak stworzyć indeks pierwszych liter dla wybranej kolumny z tabeli, PHP Skrypty
jak pobrac zdalny plik na lokalny server raz dziennie, PHP Skrypty

więcej podobnych podstron