Autor Zpráva
Glumik
Profil *
Zdravim, mam jeden formular, ktery slouzi jak pro zapis, tak i pro editaci zaznamu. Problem s kontrolou duplicity se vyskytne, kdyz chci ulozit zaznam po editaci pod stejny cislem. Nevite, jak to mam vyresit, aby sel zaznam ulozit pod stejnym cislem pri editaci, ale zaroven byla kontrolovana duplicita.

<?

$sql = "SELECT * FROM cisla WHERE cislo='".$_POST['cislo']."'";

if(!($query = mysql_query($sql))){
$chyba .= "- Došlo k chybě db dotaze.<br>";
}
$PocetStejnychCisel = mysql_num_rows($query);

if($PocetStejnychCisel !=0){
$chyba .="- Číslo ".$_POST['cislo']." již existuje, zvolte prosím jiné.<br>";
}

?>
nightfish
Profil
Glumik
prováděj změnu hodnot pomocí UPDATE (tzn. primární klíč zůstane stejný, ostatní sloupce se mohou změnit)
Glumik
Profil *
nightfish

Ja nechci menit primarni klic, ale chci zmenit cislo polozky, tzn. hodnotu ve sloupci "cislo". Kdyz napriklad zmenim cislo pri editaci z DN1 na DN2 a DN2 uz ve sloupci "cislo" bude a nebude kontrolovana duplicita sloupce "cislo", tak DN2 bude ve sloupci "cislo" 2x a to ja nechci.
Pokud se ve formulari neco zmeni, tak na to pouziji UPDATE, ale nutne potrebuji kontrolovat duplicitu sloupce "cislo", aby nedochazelo k duplicite.
bukaj
Profil
pokud jsem to pochopil, tak potřebuješ editovat záznam a případně změnit jeho číslo, ale které může zůstat stejné. a když zůstane stejné, tak aby to prošlo kontrolou a uložilo se?

v tom případě by si to chtělo si do formuláře načíst stávající číslo do hidden inputu a potom ho v podmínce vynechat:

$sql = "SELECT * FROM cisla WHERE cislo='".$_POST['cislo']."' AND cislo!='".$_POST['stavajici_cislo']."'";

(doufám, že mysql používá standartní operátory)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0