Autor Zpráva
ax123
Profil
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
ax123
Vytiskni si řetězec $zaskrtnuto.
ax123
Profil
echo "($zaskrtnuto)";
mi vypíše (2 or id=23) přičemž 2 a 23 jsou zaškrtnutá pole
nightfish
Profil
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
ax123
Zkus to takto:
mysql_query("DELETE FROM skaut WHERE id in (".implode(",",$_POST['vymaz']).")"); 
ax123
Profil
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
Toto téma je uzamčeno. Odpověď nelze zaslat.

0