Autor Zpráva
Budulinek
Profil
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
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
Budulinek:nastudujte si funkci mysql_affected_rows (). Cyklus klasická while smyčka.
Budulinek
Profil
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
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...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0