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
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 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 311 Pomógł: 7 Dołączył: 2.08.2006 Skąd: Bystrzyca Kłodzka/Nysa Ostrzeżenie: (10%)
|
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) |
|
|
|
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.... |
|
|
|
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 ...
|
|
|
|
![]() ![]() |
|
Aktualny czas: 20.12.2025 - 23:02 |