Daten über Formular ändern / löschen

danyh

Mitglied
Hallo Community.

Ich krieg hier ein Nervenzusammenbruch !

Ich habe Daten über ein Kontakformular erfolgreich in die Datenbank geschrieben.

Die Daten lass ich mir auch ausgeben mit

Code:
$dbname = "DB"; // Name der Datenbank
$dbuser = "U"; // Username des Datenbankbenutzers
$dbpass = "" ; // Passwort des Datenbankbenutzers
$dbserver = ""; // Server des Users

$db = @mysql_connect($dbserver,$dbuser,$dbpass); // Verbindung zur Datenbank mit den oben genannten Variablen herstellen.
mysql_select_db($dbname,$db);


$abfrage = "SELECT * FROM freunde";
$ergebnis = mysql_query($abfrage,$db);

echo "<table border=2>";
echo" <tr><td>Name</td><td>Vorname</td></tr>";

while($row = mysql_fetch_object($ergebnis))
{
echo" <tr><td>$row->Name</td><td>$row->Vorname</td></tr>";
}

?>

in eine Tabelle.

mir werden nun meine Datensätze angezeigt wenn ich jetzt aber Datensatz 10 editieren will wie muss ich da vor gehen .....
ich kann schon kein google mehr sehen ;)

vlt hat ja jemand einen Tipp für mich !

Besten Dank
 
Ok wie ich die einzelnen Datensätze ändern kann weiss ich jetzt..

habe nochmal das selbe Formular erstellt da soll es mir angezeigt werden !

wenn ich auf editieren klicke leitet er mich auch auf die Seite um aber das Formular ist leer :(
 
So ich bin schon ein ganzes Stück weiter

Wenn ich auf Editieren klicke

Werde ich auf die adresse/edit.php?id=2
und mir werden auch alle Daten in die Formularfelder angezeigt :D

Wenn ich nun den Namen ändere passiert nix er er aktuallisiert die Seite neu weil ich das action auch auf der selben Seite ausführe lädt er die Seite neu und der alte Name steht wieder in der Tabelle ..

Hier mal der Quelltext!

Daten werden eingelesen !

PHP:
$abfrage = "SELECT * FROM adressen where id =$id";
$ergebnis = mysql_query($abfrage,$db)or die(mysql_error());


while($row = mysql_fetch_object($ergebnis))

{
$id = $row->id;
$name = $row->name;
$datum = $row->datum;
$telefon = $row->telefon;
$hname = $row->hname;
$mail = $row->mail;
$url = $row->url;
$nr = $row->nr;
$strasse = $row->strasse;

}

Dann kommt der html Teil da übergebe ich die Daten so

PHP:
 <input type="text" name="datum" size="25" value="<?php echo $datum ?>">

natürlich mit allen anderen Feldern auch..

Und hier der Quelltext das er die neuen Werte (Namen) usw übernimmt

PHP:
$id = $_POST['id'];
$name = $_POST['name'];
$datum = $_POST['datum'];
$telefon = $_POST['telefon'];
$hname = $_POST['hname'];
$mail = $_POST['mail'];
$url = $_POST['url'];
$nr = $_POST['nr'];
$strasse = $_POST['strasse'];


    
	
	if (isset ($_POST['name'])) {

$sql = "UPDATE adressen SET id='$id',name='$name', datum='$datum', telefon='$telefon', hname='$hname', mail='$mail', url='$url', nr='$nr', strasse='$strasse' WHERE id=$id";
		$ergebnis=mysql_query($sql);
		   
	echo "Datensatz erfolgreich geändert!";
     }
     else
     {

    echo 'Fehler';
	 }
	 mysql_close();

Ich hoffe mir kann hier jemand helfen ich bin echt am verzweifeln :(

Besten Dank
 
Zuletzt bearbeitet:
Hi,

ändere mal diese Zeile

PHP:
$ergebnis=mysql_query($sql);

in

PHP:
$ergebnis=mysql_query($sql) or echo  mysql_error();

Grundsätzlich solltest du auch prüfen, ob Fehlermeldungen auf deinem System aktiviert sind. Sicherheitshalber an den Anfang des Scripts:

PHP:
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);
 
Hallo saftmeister ...

Danke das du mir versucht zu helfen.

Also ich habe die Änderung von dir übernommen.

Wenn ich jetzt auf ein Datensatz klicke um diesen zu editieren komme ich schon nicht merh auf Formular und erhalte folgende Fehlermeldung !

PHP:
Parse error: syntax error, unexpected T_ECHO in C:\xampp\htdocs\ticket\open.php  on line 44
##

Ahso und in 44 steht

$ergebnis=mysql_query($sql) or echo mysql_error();

Danke nochmal
 
Zuletzt bearbeitet:
Achja richtig, sorry, das vergesse ich immer wieder, das echo an dieser Stelle nicht funktioniert. Notiere es doch bitte mal so:

PHP:
$ergebnis=mysql_query($sql) or die( mysql_error() );
 
Hi

ja das hatte ich vorher auch schon dachte echo sei wieder was neues :D

Also mit
PHP:
$ergebnis=mysql_query($sql) or die( mysql_error() );

kommt
PHP:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Gruss
 
Was mir aufgefallen ist

Wenn ich die Seite direkt aus Dreamweaver aufrufe erhalte ich die Fehlermeldung.

Gehe ich aber den normalen Weg also über die normalen Seite wo ich den zu ändernden Datenbank auswähle komme ich normal auf die Seite und kann editieren nur speichert es nicht !

Gruss
 
Ich denke, du solltest deine Eingabe-Werte in den SQL-Query prüfen. Sprich mach ein var_dump() auf die Variablen und schau, ob das drin steht, was du vorausgesagt hast. Der Query sieht für mich erstmal korrekt aus. Da du aber dein Formular nicht gepostet hast, kann man da nur raten.

Wenn id allerdings ein Primärschlüssel ist, solltest du _nicht_ versuchen, eine ID noch einmal einzutragen. Das wäre ein Verstoß gegen das ID-Konzept. Nimm mal diese Spalte aus dem UPDATE-Query raus und schau, was passiert.
 
Zurück