[PHP + SQL +HTML] Userprofil will nicht updaten

Rafioso

Mitglied
Ich mal wieder....

Hi

Ich habe angefangen ein Userprofil zu schreiben, doch schon hackt es wieder.
Es wird beim öffnen der Datei alles richtig angezeigt.
Auch das was ich via MySQL eingefügt habe, ist in den Eingabefeldern zu sehen, doch sobald ich dieses in den Eingabefeldern ändere und dann auf Übernehmen klicke, speichert er das neue nicht in der Datenbank.

Habe festes Vertrauen, dass ihr mir helfen könnt :)

Hier der Code:

PHP:
<?php    $sql = "SELECT
                Nickname,
				Nachname, 
				Vorname, 
				hobbys, 
				lfarbe, 
				smoke
            FROM
                test
			WHERE
                Id = '".$_SESSION['user_id']."';";
				
    $result = mysql_query($sql) OR die(mysql_error());
    $row = mysql_fetch_assoc($result);
	

$Nickname = strip_tags($_POST['Nickname']);
$Nachname = strip_tags($_POST['Nachname']);
$Vorname = strip_tags($_POST['Vorname']);
$hobbys = strip_tags($_POST['hobbys']);
$lfarbe = strip_tags($_POST['lfarbe']);
$smoke = strip_tags($_POST['smoke']);	
	
if (isset($_POST['ok'])){
    if (count($_POST['set']) > 0){
        foreach ($_POST['set'] as $userid => $value){
            mysql_query('UPDATE 
							test 
						SET 
							Nickname = "'.intval($Nickname).'",
							Nachname = "'.intval($Nachname).'",
							Vorname = "'.intval($Vorname).'",
							hobbys = "'.intval($hobbys).'",
							lfarbe = "'.intval($lfarbe).'",
							smoke = "'.intval($smoke).'"
						WHERE 
							Id = "'.intval($userid).'"'
						)
			 or die(mysql_error());
        }
    }
}*/
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<table width="700px" border="2">
  <tr>
    <td width="133" align="center" valign="middle">< ?php echo $_SESSION["user_pic"]; ?></td>
    <td width="549">< ?php echo $_SESSION["user_rang"]; ?></td>
  </tr>
  <tr>
    <td align="left" valign="top">&nbsp;Nachname:</td>
    <td><label for="Nachname"></label><input width="200" name="Nachname" type="text" maxlength="50" value="<?php echo $row['Nachname']; ?>" /></td>
  </tr>
  <tr>
    <td align="left" valign="top">&nbsp;Vorname:</td>
    <td><label for="Vorname"></label><input width="200" name="Vorname" type="text" maxlength="50" value="<?php echo $row['Vorname']; ?>" /></td>
  </tr>
  <tr>
    <td align="left" valign="top">&nbsp;Spitzname:</td>
    <td><label for="Nickname"></label><input width="200" name="Nickname" type="text" maxlength="50" value="<?php echo $row['Nickname']; ?>" /></td>
  </tr>
  <tr>
    <td align="left" valign="top">&nbsp;Hobbys:</td>
    <td><label for="hobbys"></label><input width="200" name="hobbys" type="text" maxlength="50" value="<?php echo $row['hobbys']; ?>" /></td>
  </tr>
  <tr>
    <td align="left" valign="top">&nbsp;Lieblingsfarbe:</td>
    <td><label for="lfarbe"></label><input width="200" name="lfarbe" type="text" maxlength="50" value="<?php echo $row['lfarbe']; ?>" /></td>
  </tr>
  <tr>
    <td align="left" valign="top">&nbsp;Raucher:</td>
    <td><label for="smoke"></label><input width="200" name="smoke" type="radio" maxlength="50" value="Ja"/> Ja
	<input width="200" name="smoke" type="radio" maxlength="50" value="Nein"/> Nein</td>
  </tr>
</table>
<table border="1" width="700" cellspacing="1" cellpadding="1" bgcolor="#ADEF00" style="color:#000000"> 
  <tr>
   <td align="center" valign="middle"><input name="ok" type="submit" id="ok" value="&Uuml;bernehmen"></td>
  </tr> 
</table>
</form>

Vielen Dank schonmal
 
Zuletzt bearbeitet:
Oh, habs vergessen hinzuschreiben *schäm*


Aber dann muss ich ja das set in name"" reinschreiben, oder geht das auch wo anders?
Denn so hätte die Funktion keinen sinn, oder denke ich wieder zu kompliziert .....

Wenn ich es ohne Arrays mache, würde das auch gehen?
Ich glaub ich hab des sogar vor paar Tagen probiert, habs aber auch net richtig hinbekommen.

Danke
 
Hab nun noch ein wenig daran gearbeitet, aber ich finde nicht die Rätsels Lösung.....


Code:

PHP:
<?php    $sql = "SELECT
                Nickname,
				Nachname, 
				Vorname, 
				hobbys, 
				lfarbe, 
				smoke
            FROM
                test
			WHERE
                Id = '".$_SESSION['user_id']."';";
				
    $result = mysql_query($sql) OR die(mysql_error());
    $row = mysql_fetch_assoc($result);


$Nickname = strip_tags($_POST['Nickname']);
$Nachname = strip_tags($_POST['Nachname']);
$Vorname = strip_tags($_POST['Vorname']);
$hobbys = strip_tags($_POST['hobbys']);
$lfarbe = strip_tags($_POST['lfarbe']);
$smoke = strip_tags($_POST['smoke']);

$sql = "UPDATE INTO test
                (Nickname, Nachname, Vorname, hobbys, lfarbe, smoke)
            VALUES
               ('".$Nickname."',
                '".$Nachname."',
                '".$Vorname."',
				'".$hobbys."',
				'".$lfarbe."',
				'".$smoke."')";
$eintragen = mysql_query($sql);
echo"Du hast dein Profil erfolgreich bearbeitet..";

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<table width="700px" border="2">
  <tr>
    <td width="133" align="center" valign="middle">< ?php echo $_SESSION["user_pic"]; ?></td>
    <td width="549">< ?php echo $_SESSION["user_rang"]; ?></td>
  </tr>
  <tr>
    <td align="left" valign="top">&nbsp;Nachname:</td>
    <td><label for="Nachname"></label><input width="200" name="Nachname" type="text" maxlength="50" value="<?php echo $row['Nachname']; ?>" /></td>
  </tr>
  <tr>
    <td align="left" valign="top">&nbsp;Vorname:</td>
    <td><label for="Vorname"></label><input width="200" name="Vorname" type="text" maxlength="50" value="<?php echo $row['Vorname']; ?>" /></td>
  </tr>
  <tr>
    <td align="left" valign="top">&nbsp;Spitzname:</td>
    <td><label for="Nickname"></label><input width="200" name="Nickname" type="text" maxlength="50" value="<?php echo $row['Nickname']; ?>" /></td>
  </tr>
  <tr>
    <td align="left" valign="top">&nbsp;Hobbys:</td>
    <td><label for="hobbys"></label><input width="200" name="hobbys" type="text" maxlength="50" value="<?php echo $row['hobbys']; ?>" /></td>
  </tr>
  <tr>
    <td align="left" valign="top">&nbsp;Lieblingsfarbe:</td>
    <td><label for="lfarbe"></label><input width="200" name="lfarbe" type="text" maxlength="50" value="<?php echo $row['lfarbe']; ?>" /></td>
  </tr>
  <tr>
    <td align="left" valign="top">&nbsp;Raucher:</td>
    <td><label for="smoke"></label><input width="200" name="smoke" type="radio" maxlength="50" value="Ja"/> Ja
	<input width="200" name="smoke" type="radio" maxlength="50" value="Nein"/> Nein</td>
  </tr>
</table>
<table border="1" width="700" cellspacing="1" cellpadding="1" bgcolor="#ADEF00" style="color:#000000"> 
  <tr>
   <td align="center" valign="middle"><input name="ok" type="submit" id="ok" value="&Uuml;bernehmen"></td>
  </tr> 
</table>
</form>

MfG
Rafioso
 
PHP:
$eintragen = mysql_query($sql);
PHP:
echo mysql_query($sql) ? "UPDATE erfolgreich" : mysql_error();
 
Zuletzt bearbeitet:
:( Warum erklärst du nicht, was da in dem Code ist?

Ich weiss nicht was ich damit anfangen soll....was deine Gedanken waren....
 
Einfach diese Ziele ( in deinem Skript )
PHP:
$eintragen = mysql_query($sql);
durch diese ersetzen
PHP:
echo mysql_query($sql) ? "UPDATE erfolgreich" : mysql_error();
. Und schauen was dir PHP ausgibt.
 
Wenn du so schreibst, dann verstehe ichs :)

Also er bringt folgenden Fehler:

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 'INTO test (Nickname, Nachname, Vorname, hobbys, ' at line 1

Danke
 
Ich habe es nun zu 90% am laufen :) *freu*

das einzige Problem ist jetzt noch das mit den Radiobuttons.

Bei Raucher Ja/nein

//EDIT

Habs hinbekommen :):):)

Aber ich finde die Dateneingabe beim Formular doof.
Also ich klicke auf Profil bearbeiten, dann stehen da meine Daten. Dann ändere ich etwas, wenn ich dann auf Übernehmen klicke, dann wird das alte angezeigt. Ich muss die Seite erst refreshen damit das neue angezeigt wird. Und wenn ich im Browser auf zurück klicke, dann sendet er auch ab und zwar das formular ohne inhalt, also ist dann alles leer :( sollte natürlich nicht so sein, gibts da ein Trick?
 
Zuletzt bearbeitet:
Ich würde das ganze entweder mit
PHP:
header("location:....");
oder
Javascript:
<script type="text/javascript">
location.href='......';
</script>
lösen.
Dann lädt die Seite einfach und die geänderte Profil wird dann angezeigt.
 
Zurück