checkbox problem

  • Themenstarter Themenstarter buzzom
  • Beginndatum Beginndatum
B

buzzom

hab folgendes problem und hoffe auf einen weisen menschen :)

also i will mit hilfe von checkboxen kommentare die aus ner mysql datenbank aufgelistet werden auswaehlen, auch mehrere und dann nach dem betaetigen des buttons loeschen. soweit so gut.

das problem ist er loescht nur den kommentar mit der ersten id

kommentar_loeschen.php?loeschen=40&loeschen=41

also in diesem falle den kommentar mit der id 40. leider loescht er aber nicht den zweiten mit der id 41 wie in diesem beispiel

hatte versucht den loeschvorgang mehrer ids so zu beheben leider laed er sich dann dumm und daemlich, scheint also ein programmier logik fehler meinerseits zu sein

while($loeschen){
$loeschen = "DELETE FROM $kommentar_tabelle WHERE id = '$loeschen'";
$loesch = mysql_query($loeschen);
}

thx
buzz
 
du kannst eine variable natuerlich nicht mehrmals uebergeben, sie wird dann ueberschrieben
kommentar_loeschen.php?loeschen=40&loeschen=41 <--- unsinn

kommentar_loeschen.php?l1=40&l2=41&l3=45 <--- besser

und dann koenntest du ueber alle $HTTP_GET_VARS gehen und die ids entsprechend loeschen ...
 
danke auch ne moeglichkeit hab es jetzt so geloest

for ($i=0; $i<count($id); $i++) {
mysql_query("DELETE FROM $kommentar_tabelle WHERE id=".$id[$i]);
}

achja na frage am rande wie macht ihr den code immer schoen bunt wie im editor daheim? :)

buzz
 
jau, als array laesst sich das natuerlich einfacher handlen, hab ueberlesen, dass du das als formular postest ;)
 
also ich habs so gelöst:

hier die definition der checkboxen:
PHP:
echo "      <td width=15 align=center><input type=checkbox name=check[] value=$id></td>";

WICHTIG: um die id's der checkboxen als array verwenden zu können, musst du demn variablennamen (hier check) die eckigen klammern anfügen!!

und hier der code zum löschen:

PHP:
if ($delete) {

$db = mysql_connect("localhost", "benutzername", "passwort");
 
 foreach ((array)$check as $element) { 

 mysql_db_query("datenbankname", "DELETE FROM tabellenname WHERE id= '$element' ");
 
}


$num = mysql_affected_rows();
 if ($num>0)
     echo "Datensätze wurden gelöscht!<p>";   
 else      
     echo "Der Datensatz wurde nicht gelöscht!<p>";

mysql_close($db);
}

-> eigentlich keine hexerei! :-)

hoffe das hilft! ;-)

mfg redback

ps. wenn du den code "schön bunt" machen willst, schreibst du ihn einfach zwischen
PHP:
 hierdeincode
! ;-)
 
ach noch was: dem submit button hab ich im obigen beispiel den namen delete gegeben! -> daher if ($delete){ .....


mist!-> hab wohl ein "logik" black-out gehabt! für den bunten code klicke einfach mal auf den "php" button über demjenigen feld, in dem die nachricht eingibst! ->sobald der code fertig nicht vergessen den "tag" wieder abzuschliessen! ;-)
 
Zurück