Ankündigung

Einklappen
Keine Ankündigung bisher.

UPDATE funktioniert nicht

Einklappen

Neue Werbung 2019

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

  • UPDATE funktioniert nicht

    Jetzt klappt es super mit der Ausgabe, aber das UPDATE funktioniert nicht..
    Dabei war ich mir soo sicher, dass ich es richtig gemacht habe..
    Die Values werden richtig ausgegeben, aber die Datenbank nimmt keine Änderung an..

    Wo liegt nur der Fehler ??

    PHP-Code:
    <?PHP

    $session 
    Mage::getSingleton('customer/session'); 
    $customer $session->getCustomer(); 
    $id $customer->getId(); 


     
    $mysql_query "UPDATE BW_Customer_Daten
                 SET 
                    geb_in = '
    $geb_in', 
                    staatsangehoerigkeit = '
    $staatsangehoerigkeit', 
                    muttersprache = '
    $muttersprache', 
                    schulabschluss = '
    $schulabschluss', 
                    studium = '
    $studium', 
                    jobsuche = '
    $jobsuche
                    fremdsprachen = '
    $fremdsprachen', 
                    berufe= '
    $berufe', 
                    faehigkeiten = '
    $faehigkeiten
                WHERE id = '
    $id'";
     


    $geb_in $_POST['geb_in'];
    $staatsangehoerigkeit $_POST['staatsangehoerigkeit'];
    $muttersprache $_POST['muttersprache'];
    $schulabschluss $_POST['schulabschluss'];
    $studium $_POST['studium'];
    $jobsuche $_POST['jobsuche'];
    $fremdsprachen $_POST['fremdsprachen'];
    $berufe $_POST['berufe'];
    $faehigkeiten $_POST['faehigkeiten'];

     
    $abfrage "SELECT * FROM BW_Customer_Daten WHERE id = $id";
     
    $ergebnis mysql_query ($abfrage);
     while(
    $row mysql_fetch_object($ergebnis))
      
     { 
    ?>
    Es kommt nicht darauf an, wie lange man wartet, sondern auf WAS !!

  • #2
    Du musst zuerst die Variablen definieren und danach das Update ausführen. Außerdem solltest du dich gegen SQL-Injections schützen (z.B. mit [MAN]mysql_real_escape_string[/MAN] bzw. [MAN]mysqli_real_escape_string[/MAN] oder Prepared Statements).

    So müsste es funktionieren:
    PHP-Code:
    <?PHP

    $session 
    Mage::getSingleton('customer/session'); 
    $customer $session->getCustomer(); 
    $id $customer->getId(); 

    $geb_in $_POST['geb_in'];
    $staatsangehoerigkeit $_POST['staatsangehoerigkeit'];
    $muttersprache $_POST['muttersprache'];
    $schulabschluss $_POST['schulabschluss'];
    $studium $_POST['studium'];
    $jobsuche $_POST['jobsuche'];
    $fremdsprachen $_POST['fremdsprachen'];
    $berufe $_POST['berufe'];
    $faehigkeiten $_POST['faehigkeiten'];

    $mysql_query "UPDATE BW_Customer_Daten
                 SET 
                    geb_in = '
    $geb_in', 
                    staatsangehoerigkeit = '
    $staatsangehoerigkeit', 
                    muttersprache = '
    $muttersprache', 
                    schulabschluss = '
    $schulabschluss', 
                    studium = '
    $studium', 
                    jobsuche = '
    $jobsuche
                    fremdsprachen = '
    $fremdsprachen', 
                    berufe= '
    $berufe', 
                    faehigkeiten = '
    $faehigkeiten
                WHERE id = '
    $id'";

    mysql_* ist veraltet. Nutze stattdessen lieber mysqli_* oder PDO.
    Die erste von mir erstellte Homepage: Wurzel der Liebe - Verein zu Förderung von Sozialprojekten weltweit

    Kommentar


    • #3
      $mysql_query wird nirgendwo verwendet (+ vorgenanntes)

      Kommentar


      • #4
        Update aus Formular

        Genauso hatte ich es zu Anfangs auch versucht. Leider blieb der Erfolg aus.

        Was die Sicherheit anbetrifft, muss ich mich als nächstes antasten..

        Mein Script sieht nun folgerndermaßen aus..

        PHP-Code:
        <?PHP

        $session 
        Mage::getSingleton('customer/session'); 
        $customer $session->getCustomer(); 
        $id $customer->getId(); 


        $geb_in $_POST['geb_in'];
        $staatsangehoerigkeit $_POST['staatsangehoerigkeit'];
        $muttersprache $_POST['muttersprache'];
        $schulabschluss $_POST['schulabschluss'];
        $studium $_POST['studium'];
        $jobsuche $_POST['jobsuche'];
        $fremdsprachen $_POST['fremdsprachen'];
        $berufe $_POST['berufe'];
        $faehigkeiten $_POST['faehigkeiten'];

         
        $mysql_query "UPDATE BW_Customer_Daten
                     SET 
                        geb_in = '
        $geb_in', 
                        staatsangehoerigkeit = '
        $staatsangehoerigkeit', 
                        muttersprache = '
        $muttersprache', 
                        schulabschluss = '
        $schulabschluss', 
                        studium = '
        $studium', 
                        jobsuche = '
        $jobsuche
                        fremdsprachen = '
        $fremdsprachen', 
                        berufe= '
        $berufe', 
                        faehigkeiten = '
        $faehigkeiten
                    WHERE id = '
        $id'";
         
        $ergebnis mysql_query ($update);



         
        $abfrage "SELECT * FROM BW_Customer_Daten WHERE id = $id";
         
        $ergebnis mysql_query ($abfrage);
         while(
        $row mysql_fetch_object($ergebnis))
          
         { 
        ?>
        Leider funktioniert es so auch nicht..
        Aber ich möchte es lernen und gebe nicht auf...
        Es kommt nicht darauf an, wie lange man wartet, sondern auf WAS !!

        Kommentar


        • #5
          PHP-Code:
          // hier heißt die Variable $mysql_query
          $mysql_query "UPDATE BW_Customer_Daten 
                       SET 
                          geb_in = '
          $geb_in', 
                          staatsangehoerigkeit = '
          $staatsangehoerigkeit', 
                          muttersprache = '
          $muttersprache', 
                          schulabschluss = '
          $schulabschluss', 
                          studium = '
          $studium', 
                          jobsuche = '
          $jobsuche
                          fremdsprachen = '
          $fremdsprachen', 
                          berufe= '
          $berufe', 
                          faehigkeiten = '
          $faehigkeiten
                      WHERE id = '
          $id'";
           
          $ergebnis mysql_query ($update); // hier heißt die Variable $update 
          Du musst dich für eine Bezeichnung entscheiden und diese konsequent verwenden.
          Die erste von mir erstellte Homepage: Wurzel der Liebe - Verein zu Förderung von Sozialprojekten weltweit

          Kommentar


          • #6
            also wäre es so richtig ??

            Funktioniert aber auch nicht.. Ich bin schon am Verzweifeln...

            PHP-Code:
            <?PHP

            $session 
            Mage::getSingleton('customer/session'); 
            $customer $session->getCustomer(); 
            $id $customer->getId(); 


            $geb_in $_POST['geb_in'];
            $staatsangehoerigkeit $_POST['staatsangehoerigkeit'];
            $muttersprache $_POST['muttersprache'];
            $schulabschluss $_POST['schulabschluss'];
            $studium $_POST['studium'];
            $jobsuche $_POST['jobsuche'];
            $fremdsprachen $_POST['fremdsprachen'];
            $berufe $_POST['berufe'];
            $faehigkeiten $_POST['faehigkeiten'];

             
            $aendern "UPDATE BW_Customer_Daten
                         SET 
                            geb_in = '
            $geb_in', 
                            staatsangehoerigkeit = '
            $staatsangehoerigkeit', 
                            muttersprache = '
            $muttersprache', 
                            schulabschluss = '
            $schulabschluss', 
                            studium = '
            $studium', 
                            jobsuche = '
            $jobsuche
                            fremdsprachen = '
            $fremdsprachen', 
                            berufe= '
            $berufe', 
                            faehigkeiten = '
            $faehigkeiten
                        WHERE id = '
            $id'";
             
            $geaendert mysql_query ($aendern);
             
             
            $abfrage "SELECT * FROM BW_Customer_Daten WHERE id = $id";
             
            $ergebnis mysql_query ($abfrage);
             while(
            $row mysql_fetch_object($ergebnis))
              
             { 
            ?>
            ich weisss.. Ich muss noch viel lernen.. Aber ohne Fragen zu stellen lernt man nicht.. Ich sitze mittlerweile schon 4 Wochen an meinem mehrseitigen Formular.. Aber jeden Tag komm ich einen kleinen Schritt weiter..
            Es kommt nicht darauf an, wie lange man wartet, sondern auf WAS !!

            Kommentar


            • #7
              Die einfachste Möglichkeit Fehler in SQL-abfragen zu finden ist immer sich diese ausgeben zu lassen und mysql nach Fehlern zu fragen! (mysqli_error)
              [URL="http://php.net/manual/en/migration55.deprecated.php"]mysql ist veraltet[/URL] [URL="http://php-de.github.io/jumpto/mail-class/"]Mails senden: Ohne Probleme und ohne mail()[/URL]
              [PHP]echo 'PS: <b>Meine Antwort ist keine Lösung, sondern nur eine Hilfe zur Lösung.</b>';[/PHP]

              Kommentar


              • #8
                Bei dieser Abfrage wird mir nur eine 1 angezeigt.. Was bedeutet dies ??

                PHP-Code:
                mysql_query($abfrage) OR die(mysql_error()); 
                Es kommt nicht darauf an, wie lange man wartet, sondern auf WAS !!

                Kommentar


                • #9
                  Zitat von Creativpur Beitrag anzeigen
                  Bei dieser Abfrage wird mir nur eine 1 angezeigt.. Was bedeutet dies ??

                  PHP-Code:
                  mysql_query($abfrage) OR die(mysql_error()); 
                  Ich habe eben nochmal in der Doku nachgelesen und kann dir nun mit ziemlicher Sicherheit sagen, dass die 1 nicht von dieser Zeile erzeugt wird. (oder steht da noch ein echo davor?)

                  Bau aber mal folgendes ein, dabei sieht man dann immer eindeutig, in welchen Zweig er springt:
                  PHP-Code:
                  if(mysql_query(...)){
                  echo 
                  'No error';
                  }else{
                  echo 
                  'Fehler:'.mysql_error();

                  [URL="http://php.net/manual/en/migration55.deprecated.php"]mysql ist veraltet[/URL] [URL="http://php-de.github.io/jumpto/mail-class/"]Mails senden: Ohne Probleme und ohne mail()[/URL]
                  [PHP]echo 'PS: <b>Meine Antwort ist keine Lösung, sondern nur eine Hilfe zur Lösung.</b>';[/PHP]

                  Kommentar

                  Lädt...
                  X