dedlfix: Änderung in der MySql DB mit Formular

Beitrag lesen

Hi!

Leider speichert er die Änderung nicht in der Datenbank. Wo liegt mein Fehler?

Wer konkret ist "er"? An welcher Stelle genau stimmen denn Wunsch und Wirklichkeit nicht mehr überein? Bitte betreibe Debugging.

[code lang=php]<?php
$mysqlhost="localhost"; // MySQL-Host angeben
$mysqluser="abc"; // MySQL-User angeben
$mysqlpwd="abc"; // Passwort angeben
$mysqldb="Projekte"; // Gewuenschte Datenbank angeben

if($_GET['id'] == "")
{
$id = "0";
}
else $id = $_GET['id'];

Ob ein Array-Element vorhanden ist, prüft man mit isset() oder in speziellen Fällen wie deinem mit empty(). Der einfache lesende Zugriff auf nicht vorhandenes ergibt eine Notice-Meldung (wenn man sie sich anzeigen lässt, was beim Entwickeln immer eine gute Idee ist: error_reporting auf E_ALL stellen).

$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die ("Verbindungsversuch fehlgeschlagen");
mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");

"or die()" ist üblicherweise eine völlig unangemessene Art, auf Fehler zu reagieren. Sowas hinterlässt halbe Dokumente und unzufriedene Anwender.

$sql = "SELECT * FROM Projekt WHERE ID = '$id'";

Kontextwechsel beachten!

echo "
        <p>ID".$id." gefunden und kann jetzt bearbeitet werden.</p>

Kontextwechsel beachten!

<td><input name='ID' type='text' size='30' maxlength='30' value='".$pro[ID]."'></td>

Kontextwechsel beachten!

...

if ($_POST['save']) {
      $update = mysql_query("UPDATE Projekt SET Kurzname = '{$_POST['Kurzname']}' WHERE ID = '{$_POST['$id']}'");

Kontextwechsel beachten! Wo ist die Fehlerbehandlung? Hast du Debugging betrieben?

Lo!