Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][sql]Jak sprawdzić,czy dany wpis istnieje i jezli istnieje to go dodac..
Forum PHP.pl > Forum > PHP
kukix
Witam.
Zastanawiam się nad jednym elementem kodu.

Potrzebuje sprawdzić, czy dany wpis istnieje.. i jeśli nie istnieje, to go dodać... jeśli istnieje, to zrobić UPDATE...

Zawsze robilem to tak:
1. SELECT ... LIMIT 1
2.if mysql_num_rows()>=1
3 INSERT else UPDATE

Ostatno jednak natrafilem na zapytanie

  1. REPLACE INTO VALUES (...)


Czy nie będzie wydajniej, jeśli zrobie to przez REPLACE?

Bardzo prosze o podpowiedzi.
Bede bardzo wdzięczny za wszelkie wypowiedzi.
nitro18
Powiedzmy że chcę sprawdzić czy Jan Kowalski jest w bazie danych jeżeli nie to go dodam jeżeli jest to np. zaktualizuje jego nr telefonu

Kod
$name='Jan';
$surname='Kowalski';
$tel="10010001000";
$sql=mysql_query("select count(*) as iles from userzy where imie=\"$name\" and nazwisko=\"$surname\"");
$ile=mysql_result($sql,0,"iles");
if($ile==0)
{
@mysql_query("insert into userzy(imie,nazwisko) values(\"$name\",\"$surname\")");
}
else
{
@mysql_query("update userzy set tel=\"$tel\" where imie=\"$name\" and nazwisko=\"$surname\"");
}


Kilka słów wyjaśnienia: smile.gif

count(*) as iles - zlicza ilość "Kowalskich" o zadanym warunku do "zmiennej" iles
mysql_result($sql,0,"iles") - zwraca ilość wyników

REPLACE służy do zastąpienia a UPDATE aktualizacji ale zwyczajowo biorę UPDATE


To jest mój przykład, być może koledzy pokażą Ci inny smile.gif
kukix
a nie lepiej od razu zrobić REPLACE?

bez tych wszystkich operacji ?
ładniejszy kod będzie no i zamiast tylu operacji, będzie jedna....
nevt
oczywiście że lepiej i wydajniej jest w tym wypadku zastosować REPLACE ...
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.