Daten aus MySQL-DB auslesen, über Formular ändern und speichern

Fabian Frank

Erfahrenes Mitglied
Hallo Liebe Tutorials-Gemeinde,

ich hab ein Problem (mal wieder :D):

Und zwar hab ich ein Login-Script, bei dem die Daten über folgenden Code aus einer MySQL-DB ausgelesen werden:

PHP:
if (mysql_num_rows ($result) > 0) 
{ 
  $data = mysql_fetch_array ($result); 

  $_SESSION["id"] = $data["id"]; 
  $_SESSION["email"] = $data["email"]; 
    $_SESSION["anrede"] = $data["anrede"]; 
  $_SESSION["vorname"] = $data["vorname"]; 
    $_SESSION["nachname"] = $data["nachname"];



  header("Location: account.php");
} 
else 
{ 
  header ("Location: login.php?fehler=1"); 
}

Sie werden ja praktisch zwischengespeichert mit der session. So. Jetzt lese ich die Daten in der Datei "account.php" aus. Das mach ich mit folgendem Befehl:

PHP:
<?php echo $_SESSION["vorname"]; ?>

Jetzt will ich es aber so hinbekommen, das man die Daten auf der Website ändern kann, und eben die neu eingegebenen Daten anstatt der alten im selben Datensatz abspeichert.
Wie kann ich soetwas realisieren?

Vielen Dank schonmal für eure Hilfe, würde mich freuen, wenns schnell gehen würde :)

Grüße,

Fabi
 
also ich weiß nicht so ganz genau was du meinst, aber ich meine wenn du willst das man irgentetwas ändern kann musst du erst mal ein formular erstellen mit

Code:
<form action="account.php" methode="GET"> 
<input type="text" ...
usw.
 
ok danke. Das hat mir schon etwas weitergeholfen. Aber so wie ich das interpretiert habe ist der code dann folgender:

Code:
<?
mysql = UPDATE [LOW_PRIORITY] [IGNORE] user
    SET vorname=$_POST['name']
    [WHERE where_definition]
	
?>

dann kommt aber folgende fehlermeldung:

Code:
Parse error: parse error, unexpected '[' in /var/www/web39/html/login/2.php on line 2
 
achso...aber ich bin jetzt schonmal soweit:

PHP:
<?
$connectionid = mysql_connect ("localhost", "web39", "QKVmoNZ2"); 
if (!mysql_select_db ("usr_web39_1", $connectionid)) 
{ 
  die ("Es konnte keine Verbindung zur Datenbank hergestellt werden."); 
} 
mysql_query("UPDATE user " 
        ."SET vorname=$_POST['name'] " 
        ."WHERE vorname=".$name)

	
?>

Dann kommt folgende Fehlermeldung:

Code:
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/web39/html/login/2.php on line 8

Es tut mir wirklich leid dass ich zu blöd bin, dass selbst zu erledigen. Aber ich bin neu auf dem Gebiet und es ist sozusagen ein Schulprojekt...
 
Versuchs mal so, dann müsste es eigentlich gehen:
PHP:
<? 
$connectionid = mysql_connect ("localhost", "web39", "QKVmoNZ2");  
if (!mysql_select_db ("usr_web39_1", $connectionid))  
{  
  die ("Es konnte keine Verbindung zur Datenbank hergestellt werden.");  
}  
mysql_query("UPDATE user "  
        ."SET vorname = '".$_POST['name']."' "  
        ."WHERE vorname='".$name."';") 
     
?>
 
naja, wenigstens kommt jetzt keine fehlermeldung mehr...aber ändern tuts nicht o_O...

Ich dachte mir, es liegt vlt. daran, dass nicht klar ist, was eigentlich überschrieben werden soll, bzw. welcher datensatz...jetzt hab ichs mal so versucht:


PHP:
<? 
session_start (); 
$connectionid = mysql_connect ("localhost", "web39", "QKVmoNZ2");   
if (!mysql_select_db ("usr_web39_1", $connectionid))   
{   
  die ("Es konnte keine Verbindung zur Datenbank hergestellt werden.");   
}   
mysql_query("UPDATE user "   
        ."SET $_SESSION['vorname'] = '".$_POST['name']."' "   
        ."WHERE $_SESSION['vorname']='".$name."'");  
      
?>

was irgendwie auch nicht ...:

Code:
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/web39/html/login/2.php on line 9
 
Zuletzt bearbeitet:
Das Semikolon gehört, wie bei jeder anderen Funktion hinter die schließende Klammer:
PHP:
<? 
$connectionid = mysql_connect ("localhost", "web39", "QKVmoNZ2");  
if (!mysql_select_db ("usr_web39_1", $connectionid))  
{  
  die ("Es konnte keine Verbindung zur Datenbank hergestellt werden.");  
}  
mysql_query("UPDATE user "  
        ."SET vorname = '".$_POST['name']."' "  
        ."WHERE vorname='".$name."'"); 
     
?>
 

Neue Beiträge

Zurück