Profil "Editieren"

sonicks

Erfahrenes Mitglied
Wie der Topic schon sagt... es geht ums updaten von Datensätzen ;)

Also: Ich hab in meinem Login für jeden User ein Profil, wo er seine persönlichen angaben (ICQ, e-mail blabla) angeben kann.

So, ich wollte das erstmal so lösen. Ich hab für alles ein feld (email, icq) in einer tabelle... dann hab ich ein Formular gemacht, mit dem der User das profil updaten kann. Klappt eigentlich auch alles, sieht schön aus... NUR

er trägt nix neues in die Datenbank ein wenn man was ins Formular eingibt. Der Code sieht so aus:

PHP:
<?php 
session_start();

include('var.inc.php');

$conn = mysql_connect($host,$user,$pw); 
mysql_select_db($db,$conn);

$userid = $HTTP_SESSION_VARS[userid];
if(!empty($userid)) { 
?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<? if (!isset($bearbeiten))
{
$wahl = mysql_query("SELECT * FROM zugriff WHERE id='$userid' LIMIT 1");
while ($data = mysql_fetch_array($wahl)) {



?>

Dann kommts Formular:
PHP:
<form method='post' name='edit' action='<?php echo $PHP_SELF ?>?action=edit&userid=<? echo $data[userid]; ?>'>
<br>
  <table width='55%' bordercolor=000000 border='0'  cellpadding='0' cellspacing='0' align='center'>
    <tr> 
      <td> 
        <DIV align=center><font face="Verdana" size="1" color="#000000">Herkunft 
          : </font></DIV>
      </td>
      <td> 
        <DIV align=left> 
          <input style='font-family: Tahoma; background-color: #223353; color: #FFFFFF; font-size: 7pt;  border: 2 solid #000000;' type='Text' name='nick' value='<?php echo $data[herkunft]; ?>' size='$inpsize' maxlength='$max_leng'>
        </DIV>
      </td>
    </tr>
    <tr> 
      <td> 
        <DIV align=center><font face="Verdana" size="1" color="#000000">E</font><font face="Verdana" size="1" color="#000000">-mail 
          : </font></DIV>
      </td>
      <td> 
        <DIV align=left> 
          <input style='font-family: Tahoma; background-color: #223353; color: #FFFFFF; font-size: 7pt;  border: 2 solid #000000;' type='Text' name='birth' value='<?php echo $data[email]; ?>' size='$inpsize' maxlength='$max_leng'>
        </DIV>
      </td>
    </tr>
    <tr> 
      <td> 

.... and so on 
</form>

PHP:
<?php
}
}
elseif(isset($bearbeiten))
{


$wahl = mysql_query("UPDATE zugriff SET herkunft='$herkunft' WHERE id='$userid'");
$wahl = mysql_query("UPDATE zugriff SET email='$email' WHERE id='$userid'");

and so on ... 
}
?>

<BR>
</body>
</html>
<? } else {
    
    echo "Du bist nicht registriert bzw. eingeloggt";
}
?>
 
Wenn ich das richtig seh, dann ist $bearbeiten nicht gesetzt!
Er macht ja nur weiter, wenn bearbeiten gesetzt wurde.

Achso, dein Updatequery bruachst du bei jeder neuen variablen nicht neu schreiben... geht uach in der Form

PHP:
$wahl = mysql_query("UPDATE zugriff SET email='$email', herkunft='$herkunft' name='$name' text='$text' WHERE id='$userid'");

Das ganze kannst du so lang machen wie du willst... halt immer nur mit komma trennen.
 
ah ja, das hab ich von meinem Adminsystem rauskopiert, hab ich vergessen.

So jetzt ist mit folgendes aufgefallen:
Wenn ich schon in den Feldern (email, icq) über phpmyadmin was reingesetzt habe, dann wird mir das in dem Formular angezeigt. Möchte ich dies dann z.B. ändern über das Formular, werden ALLE datensätze die drin stehen gelöscht...

Wasn das?
 
Die Zeile in der DB ist aber noch drin oder?

Aber jedenfalls sieht das für mich so aus, dass die ganzen variablen beim updaten leer sind.
Lass sie mal kurz vor dem Updatequery alle ausgeben und guck, ob da was drin ist!
 
ne aus der DB is auch alles gelöscht... also die Datensätze halt. Ich habs jetzt mal probiert, gibt nix aus. Hast du vielleicht nen funktionstüchtigen "datensatzupdatecode" ;)
 
Zurück