Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql] Jeśli rekord nie istnieje to INSERT..., a jeżeli istnieje to "nic"
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.
Natrafiłem ostatnio na stronie php5_pl , na skrypt który pokazuje liczbe osób online...

Przerobiłem odrobine skrypt...(dodalem moją funkcje sql() zamiast mysql_query() )...

  1. <?php
  2. sql('DELETE FROM tabela WHERE DATE_ADD(`time`, INTERVAL 1 MINUTE) < NOW()');
  3. sql('INSERT INTO tabela VALUES("'.$_SERVER['REMOTE_ADDR'].'", NOW())');
  4. sql('UPDATE tabela SET `time` = NOW() WHERE `ip` = '.$_SERVER['REMOTE_ADDR']);
  5. $mysql_result = sql('SELECT COUNT(*) FROM tabela;');
  6. $osoby_online =mysql_result($mysql_result, 0, 0);
  7. ?>

Problem w tym, że funkcja pokazuje komunikat "Duplicate entry"...
Jest mozliwośc zlożenia zapytania w ten sposób, aby w przypadku, gdy rekord z takim kluczem istnieje, żeby polecenie "INSERT" ne bylo realizowane?
Czy pozostaje tylko zastosowac zapytanie "SELECT" sprawdzające czy klucz nie istnieje?


P.S. W takim razie po co ten kawalek kodu: "if (!mysql_affected_rows()) "...?

Ten post edytował kukix 7.03.2007, 17:00:44
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.10.2025 - 13:35