Antworten auf deine Fragen:
Neues Thema erstellen

PHP Update funktioniert nicht

mathi77

Nicht mehr ganz neu hier

Hallo,

bin gerade dabei eine Seite zu gestalten, wo der eingeloggte Benutzer seine Daten verwalten kann sprich aktualisieren!

Erhalte folgenden Fehler:
ERROR: 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 'WHERE (id_Benutzer= '1')' at line 7

$_POST werden gesendet ,mit print_r($_POST) überprüft:

Array ( [welcheID] => 1 [benutzername] => mathi77 [passwort] => mathi77 [vorname] => Mathilde [nachname] => Linsenmayer => m.linsenmayer@greif.at [aktualisieren] => aktualisieren )

id_Benutzer=1 stimmt, aber es erfolgt kein Update!
Seht Ihr wo hier der Fehler liegt? :(

[php]
<?php

$msg="";

echo($msg);
print_r($_POST);

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

// Maskierende Slashes aus POST entfernen
$_POST = get_magic_quotes_gpc() ? array_map( 'addslashes', $_POST ) : $_POST;

// Anfrage zusammenstellen der an die DB geschickt werden soll '" .mysql_real_escape_string( $vorname ). "',

$sql = "UPDATE tbl_benutzerdaten SET
benutzername = '".$_POST["benutzername"]."',
passwort = '".$_POST["passwort"]."',
vorname = '".$_POST["vorname"]."',
nachname = '".$_POST["nachname"]."',
email = '".$_POST["email"]."',
WHERE (id_Benutzer= '".$_POSST["welcheID"]."')
";

// Schickt die Anfrage an die DB und schreibt die Daten in die Tabelle
$query = mysql_query( $sql ) or die("ERROR: ".mysql_error());

// Pruefen ob der neue Datensatz tatsaechlich eingefuegt wurde
if (mysql_affected_rows() == 1)
{
$msg = "<h3>Die Daten wurde erfolgreich gespeichert!</h3>";
}
else
{
$msg = "<h3>Die Daten konnten leider <strong>nicht</strong> gespeichert werden!</h3>
<p>Bitte wenden Sie sich an Ihren Administrator!</p>";
}
}

//if(count($_POST)==0){
$sql = "SELECT * FROM tbl_benutzerdaten WHERE (benutzername = '".$_SESSION["user-benutzername"]."')";
//"SELECT * FROM tbl_xxx WHERE(Benutzername='Uwe')";

$result = mysql_query($sql) or die("ERROR: ".mysql_error());

if($data = mysql_fetch_object($result)) {
echo ('
<form name ="frmNeu" id="frmNeu" method="post" action="">
<fieldset>
<legend><img border="0" src="images/neu.gif" alt="Einstellungen" />&nbsp;Einstellungen:</legend>
<input type="hidden" name="welcheID" value="'.$data->id_Benutzer.'" />
<label for="Benutzername">Benutzername</label> <input name="benutzername" id="Benutzername" value="'.$data->benutzername.'" type="text" /><br />
<label for="Passwort">Passwort</label> <input name="passwort" id="passwort" value="'.$data->passwort.'" type="text" /><br />
<label for="Vorname">Vorname</label> <input name="vorname" id="vorname" value="'.$data->vorname.'"type="text" /><br />
<label for="Nachname">Nachname</label> <input name="nachname" id="nachname" value="'.$data->nachname.'"type="text" /><br />
<label for="eMail">Email</label> <input name="email" id="email" value="'.$data->email.'" type="text" /><br />
</fieldset>
<input type="submit" name="aktualisieren" id="aktualisieren" value="aktualisieren" />
</form>
');
}
?>
[/php] :'(

danke & lg Mathi
 

pac_nrw

Nicht mehr ganz neu hier

AW: PHP Update funktioniert nicht

Lass dir dein SQL mal ausgeben (echo $sql;)

Vielleciht kann ich dann weiterhelfen. Ansonsten schau mal nach der Schreibweise.
 

mathi77

Nicht mehr ganz neu hier

AW: PHP Update funktioniert nicht

hi,
folgendes kommt dabei heraus:

UPDATE tbl_benutzerdaten SET benutzername = 'mathi77', passwort = 'mathi77', vorname = 'Mathilde', nachname = 'Test', email = 'm.test@test.at', WHERE (id_Benutzer= '1') ERROR: 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 'WHERE (id_Benutzer= '1')' at line 7

Hilfe....
 

mathi77

Nicht mehr ganz neu hier

AW: PHP Update funktioniert nicht

hm, gute frage, ... funktioniert aber ihne auch nicht :-(

der letzte beistrich bei der aufzählung hab ich auch weggenommen...
jetzt hab ich einen weißen bildschirm...

PHP:
<?php 

$msg="";
 echo($msg);
// print_r($_POST);

 if (isset($_POST['aktualisieren'] ))
    {
        
    // Maskierende Slashes aus POST entfernen
        $_POST = get_magic_quotes_gpc() ? array_map( 'addslashes', $_POST ) : $_POST;
    
    // Anfrage zusammenstellen der an die DB geschickt werden soll     '" .mysql_real_escape_string( $vorname ). "',
        
        $sql = "UPDATE tbl_benutzerdaten SET 
                    benutzername = '".$_POST["benutzername"]."',
                    passwort = '".$_POST["passwort"]."',
                    vorname = '".$_POST["vorname"]."',
                    nachname = '".$_POST["nachname"]."',
                    email = '".$_POST["email"]."'
                WHERE id_Benutzer= '".$_POST["welcheID"]."'            
                ";
        echo ($sql);
    // Schickt die Anfrage an die DB und schreibt die Daten in die Tabelle
        $query = mysql_query( $sql ) or die("ERROR: ".mysql_error());

    // Pruefen ob der neue Datensatz tatsaechlich eingefuegt wurde
        if (mysql_affected_rows() == 1)
            {
            $msg = "<h3>Die Daten wurde erfolgreich gespeichert!</h3>";                    
            }
        else
            {
            $msg = "<h3>Die Daten konnten leider <strong>nicht</strong> gespeichert werden!</h3>
                    <p>Bitte wenden Sie sich an Ihren Administrator!</p>";
            }
        }

  if(count($_POST)==0){
    $sql = "SELECT * FROM tbl_benutzerdaten WHERE (benutzername = '".$_SESSION["user-benutzername"]."')";
    //"SELECT * FROM tbl_xxx WHERE(Benutzername='Uwe')";
    
    $result =  mysql_query($sql) or die("ERROR: ".mysql_error());
    
    if($data = mysql_fetch_object($result)) {
     echo ('
     <form name ="frmNeu" id="frmNeu" method="post" action="">
        <fieldset>
            <legend><img border="0" src="http://www.psd-tutorials.de/modules/Forum/images/neu.gif"  alt="Einstellungen" />&nbsp;Einstellungen:</legend>
                <input type="hidden" name="welcheID" value="'.$data->id_Benutzer.'" />
                <label for="Benutzername">Benutzername</label> <input name="benutzername" id="Benutzername" value="'.$data->benutzername.'" type="text" /><br />
                <label for="Passwort">Passwort</label> <input name="passwort" id="passwort" value="'.$data->passwort.'" type="text" /><br />
                <label for="Vorname">Vorname</label> <input name="vorname" id="vorname" value="'.$data->vorname.'"type="text" /><br />
                <label for="Nachname">Nachname</label> <input name="nachname" id="nachname" value="'.$data->nachname.'"type="text" /><br />
                <label for="eMail">Email</label> <input name="email" id="email" value="'.$data->email.'" type="text"  /><br />
               </fieldset> 
                <input type="submit" name="aktualisieren" id="aktualisieren" value="aktualisieren" />
       </form>
       ');
     } 
?>
 
Zuletzt bearbeitet:

F0RC3

Noch nicht viel geschrieben

AW: PHP Update funktioniert nicht

Hi,

dann hast du evtl. irgendwo anderes nen Fehler reingebaut?
bekommst du keine php Fehlermeldung?

Das Query sollte ohne das letzte "," eigentlich passen. Hab aber nur mal kurz drüber geschaut.

Gruß
 

pac_nrw

Nicht mehr ganz neu hier

AW: PHP Update funktioniert nicht

In solchen fällen ist es meist ein Schreibfehler. Gib doch mal in PHPMyAdmin
PHP:
UPDATE tbl_benutzerdaten SET benutzername = 'mathi77', passwort = 'mathi77', vorname = 'Mathilde', nachname = 'Test', email = 'm.test@test.at', WHERE (id_Benutzer= '1')
ein. Dort kommst meistens eine bessere Fehlermeldung.
 

saila

Moderatorle

AW: PHP Update funktioniert nicht

bzw. wo ist mysql_real_escape_string? Könnte ja sein, dass spezielle Zeichen enthalten sind, welche den Query abschiessen.
 

F0RC3

Noch nicht viel geschrieben

AW: PHP Update funktioniert nicht

bzw. wo ist mysql_real_escape_string? Könnte ja sein, dass spezielle Zeichen enthalten sind, welche den Query abschiessen.

die Daten stehen ja da, da ist nix drin was das Query kaputt macht

Das Query an sich sollte ohne das letzte "," funktionieren.
 

mathi77

Nicht mehr ganz neu hier

AW: PHP Update funktioniert nicht

so, habs jetzt Saila`s Tipp noch umgesetzt zwecks Sicherheit!

Danke an alle!
Jetzt werden endlich die Daten in die Datenbank geschrieben!

Jedoch wirft mir jetzt mein echo($msg) nichts aus? hab ich da einen Denkfehler in der Abfolge?

:danke:
 

F0RC3

Noch nicht viel geschrieben

AW: PHP Update funktioniert nicht

so, habs jetzt Saila`s Tipp noch umgesetzt zwecks Sicherheit!

Danke an alle!
Jetzt werden endlich die Daten in die Datenbank geschrieben!

Jedoch wirft mir jetzt mein echo($msg) nichts aus? hab ich da einen Denkfehler in der Abfolge?

:danke:


ja hast du :)

1. steht oben :
$msg="";
echo(
$msg);

=> damit wäre $msg immer leer

2. müsstest du echo $msg ausführen NACHDEM du der Variable den Text zugewiesen hast, z.B. so:
PHP:
// Pruefen ob der neue Datensatz tatsaechlich eingefuegt wurde
        if (mysql_affected_rows() == 1)
            {
            $msg = "<h3>Die Daten wurde erfolgreich gespeichert!</h3>";                    
            }
        else
            {
            $msg = "<h3>Die Daten konnten leider <strong>nicht</strong> gespeichert werden!</h3>
                    <p>Bitte wenden Sie sich an Ihren Administrator!</p>";
            }
        }
        echo $msg;
 

mathi77

Nicht mehr ganz neu hier

AW: PHP Update funktioniert nicht

super danke! Es funktioniert die echo Ausgabe!

nur eine Frage zwischendurch:
nach Ändern & Eintragung der Daten in die Datenbank, gebe ich den Text aus, soweit ok!

Aber wenn ich jetzt wieder den Link zu der Seite klicke, bleibt diese jetzt weiß?
Ich kann also die Benutzerdaten-Eingabe nur 1x auswählen...

hat das was mit if (isset($_POST["aktualisieren"])) zu tun, weil ich die ja schon 1x abgeschickt habe?

danke & lg Mathi
 

F0RC3

Noch nicht viel geschrieben

AW: PHP Update funktioniert nicht

an dem
PHP:
if (isset($_POST['aktualisieren'] ))
kann es nicht liegen, da dort ja nur die Einträge in die Datenbank gemacht werden wenn "aktualisieren" geklickt wurde.

PHP:
 if(count($_POST)==0){
ist da schon eher relevant wenn dir nichts angezeigt wird

wie gelangst du zurück auf die Seite? kann es sein, dass noch was im $_POST hängt? Kenne ja den Ablauf bei dir nicht, bzw. verstehe das Problem nicht ganz.

Wird nichts angezeigt wenn du die Seite neu öffnest? oder nachdem du die Daten aktualisiert hast?
Das 2te. ließe sich schnell erklären: Formular wird nur gezeigt wenn $_POST leer ist, ist es aber nach Absenden nicht. => unset($_POST); nachdem alle Aktionen durchgeführt wurden.

Hoffe das hilft :)
 

mathi77

Nicht mehr ganz neu hier

AW: PHP Update funktioniert nicht

Hi,

es wird nicht angezeigt wenn ich die Eingabe-Seite neu öffnen möchte!
sprich ich muss mich wieder ausloggen und einloggen, damit ich wieder zu dem Eingabeformular komme...

Falls ein User 2mal seine Daten ändern möchte, gehts eben nicht...

was müsste ich tun?

danke & glg Mathi
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben