Variablen definiere

Big-A

Mitglied
Hallo Leute,

irgendwie funktioniert zur Zeit bei mir gar nichts, wenn ich versuche mit PHP zu porgrammieren.

Also, ich habe ein Problem und zwar...

Ich bin gerade dabei, das man via einem Formular Daten innerhalb einer Datenbank bearbeiten kann. Ich kann schon aussuchen, welchen Punkt ich bearbeiten möchte usw.
Nun bin ich zu blöd um eine Variable zu definieren.
bei drei Variablen zeigt er mir Fehler an, das diese nicht definier wäre. Es funktuioniert bei allen anderen Funktionen ohne Probleme mit den Variablen, nur genau da nicht, wo ich die geänderte Daten an die Datenbank zurück schicken möchte. (kann Daten löschen und neue anlegen, nur beim barbeiten zeigt mir sql diesen Fehler)

ich habe mir die Variablen auch mal per var_dump ausgeben lassen, da sehe ich dann, das eine gar nicht definiert ist und zwei andere sind definiert, allerdings mit einem " am ende, was da nicht hinsoll.

Nun möchte ich diese Variablen noch mal neu definieren, in der Hoffnung, das der Fehler damit behoben ist.

Variablen werden ja normalerweise mit $name = "Wert" definiert. Jedoch möchte ich so ja keinen Wert zuweisen, sondern das immer ein andere Wert vorhanden ist, da ja unterschiedliche Daten aus der Datenbank gezogen werde.

PHP:
 if(isset($_POST["speichern"])){
	var_dump($_POST);
	$ID= $_POST["ID"]; //hierbei macht er Probleme
	$Firma= $_POST["Firma"]; //hier macht er auch Probleme
	$Nachname = $_POST["Nachname"]; // hier ist alles in Ordnung
...

Wieso ist das so?:confused:
 
Zuletzt bearbeitet:
Ich würde sagen es liegt entweder daran das die Textfelder die den Wert liefern andere Namen haben als die POST-Variablen oder sie sind einfach leer!


Zeig uns mal das Formular.
 
Zuletzt bearbeitet:
Das Formular ist nicht leer, denn ich kann die Daten darin bearbeiten und var_dump gibt sie mir auch aus. Deswegen verstehe ich das ja nicht :(

PHP:
echo "<div id='right'>";	  
 echo "<form method='post'>";	
  echo "<ol>";
   echo "<fieldset>";
	echo "<legend>Welchen Datensatz m&ouml;chten Sie bearbeiten?</legend>";
		echo "<form method='bearbeiten'>";
		echo 'Firma: <input type="text" value="'.$row->Firma.'" name=Firma" /><br />';
		echo 'Nachname: <input type="text" value="'.$row->Nachname.'"   name="Nachname" /><br />';
        echo 'Vorname: <input type="text" value="'.$row->Vorname.'" name="Vorname" /><br />';
		echo 'Strasse: <input type="text" value="'.$row->Strasse.'" name=Strasse" /><br />';
        echo 'Hausnr.: <input type="text" value="'.$row->Hausnummer.'" name="Hausnummer" /><br />';
        echo 'PLZ: <input type="text" value="'.$row->PLZ.'" name="PLZ" /><br />';
		echo 'Ort: <input type="text" value="'.$row->Ort.'" name="Ort" /><br />';
        echo 'Telefonnummer: <input type="text" value="'.$row->Telefonnummer.'" name="Telefonnummer" /><br />';
		echo 'Fax: <input type="text" value="'.$row->Fax.'" name="Fax" /><br  />';
		echo 'Mail: <input type="text" value="'.$row->Mail.'" name="Mail" /><br />';		
		echo 'Datum: <input type="text" value="'.$row->Datum.'" name="Datum" /><br />';
        echo '<input type="submit" name="speichern" value="speichern">';
	echo "</form>";	
  echo "</ol>";
echo "</fieldset>";
echo "</div>";

      }
    
  }
  if(isset($_POST["speichern"])){
	var_dump($_POST);
	$Nachname = $_POST["Nachname"];
	$Vorname = $_POST["Vorname"];
	$Hausnummer = $_POST["Hausnummer"];
	$PLZ = $_POST["PLZ"];
	$Ort = $_POST["Ort"];
	$Telefonnummer = $_POST["Telefonnummer"];
	$Fax = $_POST["Fax"];
	$Mail = $_POST["Mail"];
	$Datum = $_POST["Datum"];
    
    $eintrag = "UPDATE `Datenbank` SET Nachname='{$Nachname}', Vorname='{$Vorname}', Hausnummer='{$Hausnummer}', PLZ='{$PLZ}', Ort='{$Ort}', Telefonnummer='{$Telefonnummer}', Fax='{$Fax}', Mail='{$Mail}', Datum='{$Datum}' WHERE ";

	mysql_query($eintrag);
  }
?>
 
Code:
<form method='bearbeiten'>

Was soll das denn sein und warum gibt es überhaupt 2 x das FORM-Tag?

Ein Feld mit Namen "ID" finde ich gar nicht und bei ein paar anderen fehlen beim Namen Anführungszeichen.
 
Noch zwei Sachen:
  1. da fehlt ein Anführungszeichen beim name-Attributes des Eingabefeldes mit dem Namen "Firma"
  2. wo ist dein Feld mit dem Namen "id"?
 
Ohhh jaaa******! DANKE****** Ich habe den Wald vpr lauter Bäumen nicht gesehen. ^^

Nun habe ich aber noch eine Frage, ich kann die Daten zwar bearbeiten, aber werden die Änderungen nicht in die Datenbank übernommen!?

Wie bekomme ich das denn jetzt noch hin?
 
Indem du die UPDATE-Anweisung richtig schreibst.

PHP:
$eintrag = "UPDATE Datenbank SET Nachname = '{$Nachname}', Vorname = '{$Vorname}', Hausnummer = '{$Hausnummer}', PLZ = '{$PLZ}', Ort = '{$Ort}', Telefonnummer = '{$Telefonnummer}', Fax = '{$Fax}', Mail = '{$Mail}', Datum = '{$Datum}' WHERE ID = '{$ID}'";

So in etwa sollte es stimmen. Lass dir einfach den Inhalt von $eintrag mit Hilfe von echo am Bildschirm ausgeben und kopiere das dann in phpMyAdmin. Dort solltest du dann zur Not eine hilfreiche Fehlermeldung bekommen.

NOCH WAS: Schau dir mal mysql_real_escape_string an!! Das fehlt bei dir komplett.
 
Zuletzt bearbeitet:
Du hast doch da ein UPDATE-Query stehen. Was ist den daran falsch?
Hast du mit deinem Update das Tutorial bereits durchgespielt?PHP MySQL Debug Queries (It geanu das was tombe schreibt - einfach ausführlicher *g*)
 
mh...ich habe UPLOAD-Anweiszng geändert, jedoch wird es immer noch nichts übernomme.
myadmin zeigt mir allerdings auch keinen Fehler an, wenn ich es mir ausgeben lasse. :(
wenn ich den den Code von SQL überprüfen lasse, ändert er mir auch die Daten in der Tabelle, jedoch nicht von meinem Formular aus.
 
Zurück