Autor | Zpráva | ||
---|---|---|---|
Budulinek Profil |
#1 · Zasláno: 6. 8. 2009, 14:44:13
Zdravím,
za boha si nemůžu vzpomenout, jak jsem dělával opakující se dotazy na DB. Jde o to, že když chci zapsat do DB nějakou informaci, která má být unikátní, kontroluji pak, jestli operace proběhla či nikoli. Pokud neproběhne, měla by se akce opakovat - zapisovaná informace se samozřejmě změní. Nemůžu přijít na to jak co nejlépe vyřešit tu smyčku. Dřív jsem to dělával, ale za oha si nemůžu vzpomenout jak :) Poradíte prosím? |
||
MCKAY Profil |
#2 · Zasláno: 6. 8. 2009, 14:50:12 · Upravil/a: MCKAY
Možná pokud to má být unikátní tak by to šlo takto
<?php for(tady si nastav podmínku){ $sel = "select * from tabulka where hodnota='{$hodnota}'"; $f= mysql_fetch_array($sel); if(!empty($f)){continue;} $insert ="insert ..."; mysql_query($insert); } ?> //opravil jsem tam větší chybičku Pokud to tak není, nechápu smysl otázky. |
||
ninja Profil |
#3 · Zasláno: 6. 8. 2009, 16:59:23
Budulinek:nastudujte si funkci mysql_affected_rows (). Cyklus klasická while smyčka.
|
||
Budulinek Profil |
#4 · Zasláno: 6. 8. 2009, 19:21:24
No jasně, tuhle funkci znám, ale pořád to nemůžu dát elegantně dohromady. Nejde mi do hlavy, jak to správně poskládat:
Provedu dotaz, ten skončí selháním, protože záznam už ve sloupci bude, pak by se měl dotaz zopakovat - pokud opět dotaz vyplivne false, provede se znovu, tak dlouho se bude točit, až se dílo zdaří. Pak bude pokračovat dál. Pořád mě nenapadá, jak bych to co nejelegantněji sesmolil. Jinak jde o ukládání unikátního řetězce pro opětovné přihlášení uživatelů a podobně. Takže když vygeneruju tenhle řetězec, potřebuju ho uložit do db, ale nesmí být duplicitní. Potřeboval nakopnout :( |
||
Budulinek Profil |
#5 · Zasláno: 6. 8. 2009, 19:33:10
hehe, jsem to ale trubka... Já vymyslel takový složitosti a ono je to tak jednoduchý. Vzpomněl jsem si, jak jsem to dělával dřív :-D
Přesně, jak psal ninja, affected rows a while... |
||
Časová prodleva: 15 let
|
0