Autor | Zpráva | ||
---|---|---|---|
pito Profil |
Zdravím,
Mám formulář na přidání článku na web a mám tři stránky které jsou si podobné. U formulářů mám checkboxy: <div class="checkbox"> <label> <input type="checkbox" class="flat" name="web1" checked="checked"> Web1 </label> <label> <input type="checkbox" class="flat" name="web2" checked="checked"> Web2 </label> <label> <input type="checkbox" class="flat" name="web3" checked="checked"> Web3 </label> </div> do databaze se mi vloží tedy "on" tam kde mám žaškrtnuto. Jenomže když chci potom článek upravit tak u checkboxu už to není tak správně zaškrtnuto jako v databázi kde v databazi mám "on" u web2 a web3 ale u formuláře kde chci upravit článek jsou zaškrtnuté všechny tři. Tak to mám když chci z databaze vybrat data (on): $result = mysql_query("SELECT * FROM example WHERE BookID = '$id'"); $test = mysql_fetch_array($result); if (!$result) { die("Error: Data not found.."); } <div class="checkbox"> <label> <input type="checkbox" class="flat" name="web1" checked="<? if($test['web1'] =='on'){echo 'checked';} ?>"> Web1 </label> <label> <input type="checkbox" class="flat" name="web2" checked="<? if($test['web2'] =='on'){echo 'checked';} ?>"> Web2 </label> <label> <input type="checkbox" class="flat" name="web3" checked="<? if($test['web3'] =='on'){echo 'checked';} ?>"> Web3 </label> </div> Tak jsem to vyřešil jinak $result = mysql_query("SELECT * FROM example WHERE BookID = '$id'"); $test = mysql_fetch_array($result); if (!$result) { die("Error: Data not found.."); } $Nadpis=$test['Nadpis'] ; $Clanek= $test['Clanek'] ; if($test["web1"]=="1"){$web1_zaskr='checked="checked"';} if($test["web2"]=="1"){$web2_zaskr='checked="checked"';} if($test["web3"]=="1"){$web3_zaskr='checked="checked"';} if($test["web1"]=="0"){$web1_zaskr='';} if($test["web2"]=="0"){$web2_zaskr='';} if($test["web3"]=="0"){$web3_zaskr='';} už se zobrazují zaškrtnuté checkboxy podle toho jestli mám v DB 1 nebo 0 ,ale problém je v tom že když chci změnit checkbox v úpravě článku tedy odškrtnu jeden tak mi to napíše chybu Incorrect integer value: '' for column 'web2' at row 1 tedy že nepřiřadí 0 do databáze, naopak to funguje, když zaškrtnu tak to přiřadí 1
|
||
Hando Profil |
#2 · Zasláno: 15. 6. 2017, 08:17:36
pito:
„ Incorrect integer value: '' for column 'web2' at row 1 “
Skutečně vkládáš do databáze to, co si myslíš? Vypiš si celý insert jako string... Mimochodem, nepožívej mysql_* rozšíření, je zastaralé a v budoucnu můžeš mít problém s funkčností tvých kódů. Používej alespoň mysqli_*, liší se jen nepatrně. |
||
pito Profil |
no ja při úpravě článku nepouživám insert ale update v tom bude chyba?
tak to vypada, že to je už funkční. Změnil jsem typ v tabulce v databazi z tinyint na text a jede to |
||
juriad_ Profil * |
#4 · Zasláno: 15. 6. 2017, 11:15:38
To není dobré řešení. Ukládáš do db nějaký bordel a změnou datového typu to jen podpořuješ.
Ano, vypiš si ten UPDATE a uvidíš, co skutečně ukládáš do db. Vypadá to, že vkládáš prázdný řetězec, který na číslo nelze převést. |
||
Časová prodleva: 6 let
|
0