Hi David,
Ich mache deinen Code mal etwas übersichlticher:
while ($praef = mysql_fetch_array($praef_abfr))
{
echo "<tr>\n";
echo "<td>" . wochentag ($praef[datum]) . "</td>\n";
echo "<td>" . schoenes_datum ($praef[datum]) . "</td>\n";
// echo "<td><input type=\"radio\" name=\"$praef[id]\" value=\"1\">Ja"
// Hier hast du immer noch eine Nummer als Namen!
// Wir werden das mit den Namen jetzt etwas anders machen, wir werden das
// als ein Array aufbauen - damit das auch wieder als Array reinkommt, das macht
// das ganze beim Verarbeiten leichter!
echo "<td><input type=\"radio\" name=\"antwort[" . $praef['id'] . "]\" value=\"1\">Ja\n";
echo " <input type=\"radio\" name=\"antwort[" . $praef['id'] . "]\" value=\"2\">Nein\n";
echo " <input type=\"radio\" name=\"antwort[" . $praef['id'] . "]\" value=\"3\">Vielleicht\n";
// ^^^^ Das ist besserer Stil!
// Alternativ könntest du auch im String {$praef['id']}
// schreiben, aber $praef[id] ist Murks!!
echo "</td>\n";
// für den Browser sähe das dann z.B. so aus:
// <input type="radio" name="antwort[5]" value="1">Ja
// nachfolgendes brauchen wir nicht
// <td>$praef[kommentar] <input type=\"hidden\" name=\"idselektor\" value=\"$praef[id]\"></td>
echo "</tr>\n";
}
Dieses Formular will ich also in die Datenbank eintragen.
Und genau das machen wir jetzt:
// Schau dir ruhig mal an, wie das $_POST Array aussieht:
echo "<pre>";
print_r($_POST);
echo "</pre>";
if(isset($_POST['verfuegbarkeit_etr']))
// ^^^^^ Name des Submit Buttons
{
foreach($_POST['antwort'] as $id => $wert)
// Wir durchlaufen alle Einträge in $_POST['antwort'], der Key enspricht dabei $praef['id'], hier $id
// und der Wert ist das was der Besucher angeklickt hat, 1, 2 oder 3
{
// es ist guten Stil den MySQL Query erst in eine Variable zu schreiben (weil der dann beim
// Debuggen leichter auszugeben ist) und außerdem über mehrere Zeilen zu schreiben (weil dann
// die Zeilenummer von mysql_error() hilft einen Fehler einzugrenzen)
$sql = "INSERT into datenbank (
user,
verfuegbar,
kommentar
)
VALUES (
'" . mysql_real_escape_string($_SESSION['name']) . "',
'" . mysql_real_escape_string($wert) . "',
'" . mysql_real_escape_string($kommentar) . "'
)";
// $_SESSION['name'] kann zwar eigentlich nicht von einem Besucher gefälscht werden, aber zur
// Sicherheit jagen wir es auch durch mysql_real_escape_string(), für $wert ist dies besonders
// wichtig, da dies ja unmittelbar vom User kommt!! Ich weiß nicht, woher deine Variable
// $kommentar kommt - zur Sicherheit habe ich auch die durch mysql_real_escape_string() geschickt.
// nun wird der erstelle MySQL-Query verschickt:
mysql_query($sql) OR die(mysql_error());
}
}
MfG, Dennis.
--
Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
Patch zur Verwendung von PATHINFO in JLog
Krieg ist Gottes Art, den Amerikanern Geographie beizubringen. (Aus dem Häfft)
Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
Patch zur Verwendung von PATHINFO in JLog
Krieg ist Gottes Art, den Amerikanern Geographie beizubringen. (Aus dem Häfft)