Ankündigung

Einklappen
Keine Ankündigung bisher.

wie kann man datensätze ändern? - suchen funktioniert

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • wie kann man datensätze ändern? - suchen funktioniert

    Hallo,
    ich habe eine datenbank, in die ich daten reinschreibe und ich kann sie auch auslesen. Soll ne logingeschichte werden und in diesem fall geht es ums ändern des passworts.
    Hier mal der code, den ich habe.
    Damit frage ich zuerst ab, ob das alte passwort, dass in einem feld eingegeben wurde, mit dem in der db übereinstimmt. Wenn es übereinstimmt, soll das neue passwort in die db geschrieben werden. Und nun zum Problem: Als absoluter Anfänger hab ich null Ahnung, wie ich das jetzt reinschreiben kann, also das passwort ändern kann.
    Danke für die Mithilfe.

    PHP-Code:
                  $benutzer=$_SESSION["user_id"];
                  
    $pass=$pwdalt;
                  
    $db=mysql_connect($database_server,$database_user,$database_passwort);
                  
    mysql_select_db("$database_name");
                  
    $anfrage="SELECT * FROM $database_table WHERE benutzer LIKE'";
                  
    $anfrage.=$benutzer;
                  
    $anfrage.="'";
                  
    $ergebnis=mysql_query($anfrage);
                  
    $anz=mysql_num_rows($ergebnis);
                  if(
    $anz==1)
                    {
                    
    $zeile=mysql_fetch_row($ergebnis);
                    if(
    $pass==$zeile[1])
                       {
                                       
    //nun soll das passwort geändert werden
                                       
    }
                                } 

  • #2
    Bestehende Datensätze verändern kann man mittels eines UPDATE-Statements.
    [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

    Kommentar


    • #3
      Das ist Unsinn:

      PHP-Code:
      $anfrage="SELECT * FROM $database_table WHERE benutzer LIKE'";
                  
      $anfrage.=$benutzer;
                    
      $anfrage.="'"
      Richtig ist:
      PHP-Code:
      $anfrage="SELECT 
                      id
                  FROM " 
                      
      $database_table 
                  WHERE 
                      benutzer ='" 
      mysql_real_escape_string($benutzer) . "'
                  AND
                      pwd = '" 
      mysql_real_escape_string($pwdalt) . "'"
      wobei ich davon ausgegangen bin, dass die Spalte mit der eindeutigen ID auch id heißt.

      Was habe ich verändert:

      a) SELECT * schreibt man nicht
      b) Usereingaben dürfen nicht ohne Escapen in den Query-String
      c) LIKE ist nur richtig, wenn du mit Wildcards arbeitest.
      d) ich habe das alte Passwort mal mit in den String gepackt.

      Du brauchst die eindeutige ID, um das neue Passwort mit UPDATE ... WHERE id = wegzuschreiben.
      [PHP]if ($var != 0) {
      $var = 0;
      }[/PHP]

      Kommentar


      • #4
        nun, mit meinem code befinde ich mich doch bereits auf dem aktuellen datensatz. kann ich da nicht einfach irgendwie zuweisen und passt? So kenn ich es aus vb. Ich suche den aktuellen datensatz, weise die werte zu und sag dann update.

        Kommentar


        • #5
          Zitat von djsky01 Beitrag anzeigen
          nun, mit meinem code befinde ich mich doch bereits auf dem aktuellen datensatz.
          Nein, tust du nicht.

          kann ich da nicht einfach irgendwie zuweisen und passt?
          Nein, kannst du nicht.

          So kenn ich es aus vb. Ich suche den aktuellen datensatz, weise die werte zu und sag dann update.
          Das ist so bei PHP/MySQL aber nicht möglich.

          Arbeite bitte erst mal ein Grundlagentutorial zum Umgang mit MySQL aus PHP heraus durch.
          [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

          Kommentar

          Lädt...
          X