Autor | Zpráva | ||
---|---|---|---|
ax123 Profil |
#1 · Zasláno: 22. 2. 2008, 18:43:41
označím pomocí checkboxu dva a více odkazů přes
<input type="checkbox" name="vymaz[]" value="<?echo $zaz["id"];?> které chci smazat z databáze a nedaří se mi to zkoušel jsem to přes $zaskrtnuto =implode(' or id=',$_POST['vymaz']); mysql_query("DELETE FROM skaut WHERE (id='$zaskrtnuto') "); ale smaže mi to vždy jen první zaškrtnuté políčko možná je moje idea špatná od začátku, ale snad by nemusela a je v tom "jen" nějaký drobný nesmysl v každém případě žádám o radu, protože už vážně nevím jak dál |
||
Casero Profil |
#2 · Zasláno: 22. 2. 2008, 18:48:37
ax123
Vytiskni si řetězec $zaskrtnuto. |
||
ax123 Profil |
#3 · Zasláno: 22. 2. 2008, 18:54:38
echo "($zaskrtnuto)";
mi vypíše (2 or id=23) přičemž 2 a 23 jsou zaškrtnutá pole |
||
nightfish Profil |
#4 · Zasláno: 22. 2. 2008, 18:57:44 · Upravil/a: nightfish
ax123
takže celý příkaz je DELETE FROM skaut WHERE (id='2 or id=23') to zřejmě nebude správně, což? volil bych variantu s procházením pole $_POST['vymaz'] a ukládáním si "id = cislo" do dalšího pole a pak už implode přesně jak píšeš ve svém příspěvku $pole = array(); foreach ($_POST['vymaz'] as $k => $v) { $pole[] = "id = $v"; // nebo id = $k, teď nevím } $zaskrtnuto =implode(' or ',$pole); mysql_query("DELETE FROM skaut WHERE ($zaskrtnuto)"); ale pozor, potřebuje to ještě nějaké další kontroly, aby sis nesmazal něco, co nechceš... EDIT: a nebo to caserovo řešení, bude jednodušší |
||
Casero Profil |
#5 · Zasláno: 22. 2. 2008, 18:59:36
ax123
Zkus to takto: mysql_query("DELETE FROM skaut WHERE id in (".implode(",",$_POST['vymaz']).")"); |
||
ax123 Profil |
#6 · Zasláno: 22. 2. 2008, 19:10:32
nightfish
no v php adminovi mi DELETE FROM skaur WHERE (id=2 or id=23); smaže id 2 i 23 Casero, nightfish Díky moc tohle funguje |
||
Časová prodleva: 16 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0