Hallo zusammen,
ich brauch mal wieder einen kleinen Denkanstoß.
Die grundsätzliche Auswertung von Checkboxen ist kein problem, jedoch möchte ich folgendes realisieren.
Ich erstelle gerade eine kleine Startseite für mich, Familie und Freunde in der man sich unter anderem News anzeigen lassen kann.
Die 'Kategorien' wie 'Nachrichten, Sport usw..' sowie die Quell-Adressen sind in einer MySQL-DB gespeichert.
Jeder soll sich seine News so zusammenstellen können wie er will.
Dazu lese ich z.B. alle Kategorien aus und lasse sie mit Hilfe der Checkboxen auswählen, zugleich kann man die Reihenfolge festlegen.
Die Auswahl wird dann in der DB in einer eigenen Tabelle gespeichert.
Jetzt würde ich gerne es so realisieren, dass je nach dem ob eine Kategorie aus oder abgewählt wurde, in die DB geschrieben bzw. gelöscht wird.
Irgendwie hab ich aber ein 'Denkproblem' mit den nicht ausgewählten Boxen.
=> ausgewählte Checkbox wird in DB geschrieben.
=> wenn eine Checkbox abgewählt wird, entsprechender Datensatz soll gelöscht werden.
=> unveränderte Checkboxen können ignoriert werden oder auch 'NICHTS' aus der DB gelöscht werden.
im Moment trage ich die Daten so in die DB ein (halt nur schreiben und bestehende ignorieren)
PHP-Code:
if(isset($_POST['channel_id'])){
reset($_POST['channel_id']);
reset($_POST['channel_pos']);
$c_position = $_POST['channel_pos'];
$id = $_POST['channel_id'];
$p = 0;
foreach($_POST['channel_pos'] as $v){ // ALLE 0-Werte werden aussortiert und zu einem String zusammengeführt
if($v == 0){ // so werden nur die Positionswerte verarbeitet
} else {
$pos.= "$v,";
}
}
$channel_pos = explode(",",$pos);
foreach($_POST['channel_id'] as $c_id){
include('./db_connect/connect_sql.php');
$result = mysql_query("SELECT channel_id
FROM news_channel_pos
WHERE user_id = '{$_POST['user_id']}'
AND channel_id = $c_id",$db);
if(!$result){echo mysql_error($db);}
$data = mysql_fetch_assoc($result);
if(empty($data['channel_id'])){
$insert = mysql_query("INSERT INTO news_channel_pos
(user_id, channel_id, channel_pos)
VALUES ('{$_POST['user_id']}', '$c_id', '".$channel_pos[$p++]."')",$db);
} else {
$p++;
}
mysql_close($db);
}
}
Hoffe ich hab mich einigermaßen verständlich ausgedrückt. ;)
vielleicht hat jemand einen Denkanstoß für mich wie ich das realisieren könnte. Klar, dass ich hier höchstwahrscheinlich einiges verändern muss.