Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][sql]Jak sprawdzić,czy dany wpis istnieje i jezli istnieje to go dodac.., SELECT i UPDATE.. czy lepiej REPLACE..?
kukix
post
Post #1





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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.

Ten post edytował kukix 25.06.2008, 21:41:10
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
nitro18
post
Post #2





Grupa: Zarejestrowani
Postów: 311
Pomógł: 7
Dołączył: 2.08.2006
Skąd: Bystrzyca Kłodzka/Nysa

Ostrzeżenie: (10%)
X----


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: (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
kukix
post
Post #3





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


a nie lepiej od razu zrobić REPLACE?

bez tych wszystkich operacji ?
ładniejszy kod będzie no i zamiast tylu operacji, będzie jedna....
Go to the top of the page
+Quote Post
nevt
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

Ostrzeżenie: (0%)
-----


oczywiście że lepiej i wydajniej jest w tym wypadku zastosować REPLACE ...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.12.2025 - 23:02