Hi,
ich habe ein paar Fragen was die foreach Schleife und Arrays angeht. Vielleicht poste ich dazu mal meinen bisherigen Code und erkläre dann woran es hapert:
Ich habe bisher noch nie mit foreach gearbeitet. Das Problem ist, es tut sich einfach nichts. Ich möchte alle gecheckten Datensätze editieren können oder löschen. Desweiteren weiß ich nicht ob mein Array richtig aufgebaut ist und in der foreach Schleife richtig abgerufen wird.
Zum Aufbau des Arrays dachte ich, ich muss ja irgendwie, zumindest beim UPDATE query, einzelne Felder in den query bringen. Das habe ich dadurch versucht den feldnamen hinten anzuhängen, allso quasi das schema: feld[inhalt][feldname].
Ich hoffe ich konnte es möglichst verständlich erklären und hoffe mir kann jemand helfen, denn ich hänge da jetzt schon fast 1 Tag fest.
mfg
Sebbo
ich habe ein paar Fragen was die foreach Schleife und Arrays angeht. Vielleicht poste ich dazu mal meinen bisherigen Code und erkläre dann woran es hapert:
PHP:
if ( isset($_POST['select']) && $_POST['select'] == "delete"){
foreach($_POST['feld'] AS $id => $feld) {
mysql_query("DELETE FROM adressbuch WHERE id = '$feld[check]' LIMIT 1");
}
}
if ( isset($_POST['select']) && $_POST['select'] == "edit"){
foreach($_POST['feld'] AS $id => $feld) {
mysql_query("UPDATE adressbuch SET nachname='$feld[nachname]', vorname='$feld[vorname]' WHERE id='$feld[id]'");
}
}
echo '<table id="table" width="500px">';
echo '<td></td>';
echo '<td>Nachname</td>';
echo '<td>Vorname</td>';
echo '<form action="" method="POST">';
echo "<select name=\"select\" id=\"select\" onchange='document.getElementById("loginForm").action = this.options[this.selectedIndex].value'>";
echo '<option value="delete">Löschen</option>';
echo '<option value="edit">Editieren</option>';
$counter = 1;
while ($row = mysql_fetch_array( $result, MYSQL_ASSOC)){
echo "<tr>";
echo '<td class=\"row$counter\"><input type="checkbox" name="feld['.$row['id'].'][check]" ></td>';
echo '<td class=\"row$counter\"><input type="text" name="feld['. $row['nachname'] . '][nachname]" value="'. $row['nachname'] . '"></td>';
echo '<td class=\"row$counter\"><input type="text" name="feld['. $row['vorname'] . '][vorname]" value="'. $row['vorname'] . '"</td>';
echo "</tr>";
$counter = $counter == 1 ? 2 : 1;
}
echo '<input type="submit" name="löschen" value="OK">';
echo '</form>';
echo "</table>";
mysql_free_result( $result );
Ich habe bisher noch nie mit foreach gearbeitet. Das Problem ist, es tut sich einfach nichts. Ich möchte alle gecheckten Datensätze editieren können oder löschen. Desweiteren weiß ich nicht ob mein Array richtig aufgebaut ist und in der foreach Schleife richtig abgerufen wird.
Zum Aufbau des Arrays dachte ich, ich muss ja irgendwie, zumindest beim UPDATE query, einzelne Felder in den query bringen. Das habe ich dadurch versucht den feldnamen hinten anzuhängen, allso quasi das schema: feld[inhalt][feldname].
Ich hoffe ich konnte es möglichst verständlich erklären und hoffe mir kann jemand helfen, denn ich hänge da jetzt schon fast 1 Tag fest.
mfg
Sebbo
Zuletzt bearbeitet: