Autor | Zpráva | ||
---|---|---|---|
davidcoudy Profil |
#1 · Zasláno: 27. 4. 2006, 18:32:33
Zdarec Nevim si rady s databází MYSQL mam tabulku a chci do ní přidávat data podle ip adresy ale potřebuju aby když je nová ip aby se uložila a když už tam existuje tak aby se přepsal jen čas a přičetlo číslo 1 jde o počítadlo přístupů zkoušel sem replace ale nendeto.
Pokud tohle použiju dělá to pokaždý novej řádek asi by tam měla bejt podmínka ale ja uz sem vyvařenej. MySQL_Query("REPLACE $MySQL_tabulka (id, ip, datum, pocet) VALUES ('','$ip', '$datum', +1)"); |
||
djlj Profil |
#2 · Zasláno: 27. 4. 2006, 19:07:30
MySQL_Query("UPDATE $MySQL_tabulka SET pocet=pocet+1 WHERE ip='$ip'");
|
||
Acci Profil |
#3 · Zasláno: 27. 4. 2006, 19:42:47
djlj
Jenže pokud ten záznam nebude existovat, tak si nevloží nový řádek. |
||
Kajman_ Profil * |
#4 · Zasláno: 27. 4. 2006, 20:00:48
Pokud tohle použiju dělá to pokaždý novej řádek
Asi nemáte unikátní klíč na ip. A update a insert jde z kombinovat třeba tak, že se ověří, kolik řádku update změnil a když žádný, tak se dá ještě insert. |
||
djlj Profil |
#5 · Zasláno: 27. 4. 2006, 22:07:52
Acci
Ajo, moje chyba... :) Nešlo by to třeba takto?!: $update=MySQL_Query("UPDATE $MySQL_tabulka SET pocet=pocet+1 WHERE ip='$ip'"); if(!$update){ mysql_query("INSERT ...."); } |
||
Hugo Profil |
#6 · Zasláno: 27. 4. 2006, 22:42:13
djlj
Lepší imho bude odchytávat číslo chyby (mysql_errno), protože tak můžeš odlišit jednotlivé chyby od sebe a podle toho ovlivnit chování skriptu. |
||
davidcoudy Profil |
#7 · Zasláno: 27. 4. 2006, 23:38:41
Zkusim to snad to bude chodit ja nad tim sedim celej den a prolezl sem kde co.
|
||
Kajman_ Profil * |
#8 · Zasláno: 28. 4. 2006, 09:32:11
djlj, Hugo
Ale update vám přece nevrátí chybu, když nezmění žádný řádek. Jen když je chyba v syntaxi, chybí tabulka, práva a tak. davidcoudy mysql_query("update tabulka set ..."); if (mysql_affected_rows()==0) mysql_query("insert into tabulka ..."); |
||
Časová prodleva: 6 měsíců
|
|||
M. Profil * |
#9 · Zasláno: 29. 10. 2006, 17:02:10
Musíš tam mít primární klíč - to ti vyřeší to aby se ti nedělali další řádky
|
||
24k Profil * |
#10 · Zasláno: 29. 10. 2006, 17:43:54
nebo jeste lepe
INSERT INTO ... ON DUPLICATE KEY UPDATE ... |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0