Ich möchte per Formular (das ist nur für mich gedacht und liegt in einem geschützten Bereich) Daten "updaten".
Leider wird nicht upgedatet, finde den Fehler aber nicht.
PHP
<?php
echo mysql_error();
error_reporting(E_ALL | E_STRICT);
ini_set("display_errors", true);
$db = mysql_connect('localhost','xxxx','xxx');
mysql_select_db('xxx', $db);
$father_id = isset($_POST['father_id']) ? $_POST['father_id'] : "";
$mother_id = isset($_POST['mother_id']) ? $_POST['mother_id'] : "";
if(isset($_POST['edit']))
{
mysql_query("UPDATE doggie SET father_id='".$father_id."', mother_id='".$mother_id."' WHERE id=".$_POST['id']."", $db) OR die(mysql_error("<p>Die Datenbank ist momentan nicht erreichbar!</p>"));
}
print_r($_POST);
$result = mysql_query("SELECT id, dogname, father_id, mother_id FROM doggie ORDER BY dogname ASC", $db) OR die(mysql_error());
if(@$result && mysql_num_rows($result)>0)
{
while($row = mysql_fetch_array($result))
{
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post">',
'<table>',
'<tr>',
'<td>ID:</td>',
'<td><input type="text" name="id" value="'.$row['id'].'" /></td>',
'</tr>',
'<tr>',
'<td>Name:</td>',
'<td><input type="text" name="name" value="'.$row['dogname'].'" /></td>',
'</tr>',
'<tr>',
'<td>Vater:</td>',
'<td><input type="text" name="Vater" value="'.$row['father_id'].'" /></td>',
'</tr>',
'<tr>',
'<td>Mutter:</td>',
'<td><input type="text" name="Mutter" value="'.$row['mother_id'].'" /></td>',
'</tr>',
'<tr>',
'<td><input type="hidden" name="id" value="'.$row['id'].'" /></td>',
'<td><input type="submit" name="edit" value="edit" />',
'</tr>',
'</table>',
'</form>';
}
}
else {
echo 'Keine Daten!';
}
?>
Alles anzeigen
Die Daten werden im Formular richtig angezeigt, das print_r($_POST);
gibt mir die geänderten Daten aus - aber geändert ist nichts. Keine Fehlermeldung.
Im Update query kann ich auch auf $_POST['father_id'] ändern, das Ergebnis bleibt gleich.
Steht z.B. in der Datenbank vorher nichts (''), so ändert das Script auf 0.
Was mach ich falsch?