Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Datensatz löschen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Datensatz löschen

    Hallo Leute,

    ich bin jetzt eigentlich fertig mi tmeinem Script, jedoch fehlt mir ann doch ein ekleine sache.... Unswar würde ich gerne einen datensatz löschen. Doch dazu brauch ich die ID des datensatzen, die gelöscht werden soll, nur weiß ich nicht, wie ich das am geschicktesten löse :S

    Mein Code, von der seite, wo die datensätze gezeigt werden:

    PHP-Code:
    ...
    //Lies alles aus der Tabelle aus
    if (!$result->num_rows){
    echo 
    '<img src = img/ico/err.PNG>Es sind zur Zeit keine Accountdaten vorhanden, bitte f&uuml;ge welche hinzu.';
    } else {
      while(
    $row $result->fetch_assoc()) {
      echo 
    '<fieldset><legend>'.$row['Typ'].'</legend>';
          echo 
    "<img src = img/ico/id.PNG><b><u>AccountID</u></b> : ".$row['ID']."   \n";
          echo 
    "<img src = img/ico/date.PNG><b><u>Datum: </u></b> ".$row['Datum']."   \n";
          echo 
    "<img src = img/ico/eye.PNG><b><u>Typ :</u></b> ".$row['Typ']." \n <br>";
          echo 
    "<hr = 100%><br>";
        
          echo 
    "<img src = img/ico/usr.PNG><b><u>Username:</u></b> ".$row['Username']."<br>";
          echo 
    "<img src = img/ico/key.PNG><b><u>Passwort:</u></b> ".$row['Passwort']."<br>";
        
          echo 
    "<img src = img/ico/bemerk.PNG><b><u>Bemerkungen:</u></b> "$row['Bemerkungen']."<br><br>";
        
       echo 
    '<a href="Inc/delete.php?id='.$row['ID'].'">Delete Account</a>';
        
      echo 
    '</fieldset><br>';
      }
    }
     
    ?>
    .... 
    die delete.php sieht dann so aus:

    PHP-Code:
    <?php 
    include ('config.php');

    $db mysql_connect($host,$username,$password,$dbname);
    //Datenbank auswaehlen
    mysql_select_db($dbname,$db);

    $id $_GET['ID'];

    $sql 'DELETE FROM
                    acclister;
                   WHERE
                    ID='
    .$id.';';
                    
    $result mysql_query($sql);

    if (!
    $result) {
    die (
    'Es ist ein Fehler aufgetreten: '.mysql_error().'!');
    }

    echo 
    'Der Account mit der ID = '.$id.' wurde erfolgreich gel&ouml;scht!';

     
    ?>
    Jetzt erhalte ich immer diesen 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 'WHERE ID=' at line 3!
    Ich weiß nicht mehr weiter hab einiges getestet, doch komm enicht weiter! Die ID wird wunederbar ausgegeben, doch wie lösche ich ejtzt diesen Datensatz?

    danke schonmal

    MfG
    Amar

  • #2
    Der SQL-Fehler liegt am Semikolon.
    [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

    Kommentar


    • #3
      wenn ich es entferne kommt der selbe error :S

      Kommentar


      • #4
        Dann hast du das falsche entfernt.
        [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

        Kommentar


        • #5
          Zitat von Amargedd0n Beitrag anzeigen
          Hallo Leute,

          ich bin jetzt eigentlich fertig mi tmeinem Script, jedoch fehlt mir ann doch ein ekleine sache.... Unswar würde ich gerne einen datensatz löschen. Doch dazu brauch ich die ID des datensatzen, die gelöscht werden soll, nur weiß ich nicht, wie ich das am geschicktesten löse :S

          PHP-Code:
          ...
          $sql 'DELETE FROM
                          acclister;
                         WHERE
                          ID='
          .$id.';'
          Zwei Dinge wären notwendig

          a) eine Tüte Deutsch
          b) zwei ";" aus dem SQL rausnehmen, also in etwa so

          PHP-Code:
          ...
          $sql 'DELETE FROM acclister
                    WHERE ID='
          .$id
          Grüße
          Thomas

          Kommentar


          • #6
            Es ist immer besser alles korrekt zu schreiben, ich würde sagen, so sieht das etwas besser aus:

            PHP-Code:
            $sql 'DELETE FROM
                              `acclister`
                           WHERE
                              `ID` = '
            .$id
            Vorrausgesetzt, dass ID vom Typ ein Integer ist
            MfG
            ~Capfly

            Kommentar


            • #7
              Zitat von Capfly Beitrag anzeigen
              Es ist immer besser alles korrekt zu schreiben, ich würde sagen, so sieht das etwas besser aus:

              PHP-Code:
              $sql 'DELETE FROM
                                `acclister`
                             WHERE
                                `ID` = '
              .$id
              Mal abgesehen vom unsicheren SQL (SQL-Injection),
              warum ist es besser, wenn die Ticks drin sind?


              Grüße
              Thomas

              Kommentar


              • #8
                Altes Beispiel von mir, versuch mal den Befehl:

                PHP-Code:
                SELECT FROM order WHERE xyz abc 
                MfG
                ~Capfly

                Kommentar


                • #9
                  Geht logischerweise nicht, da "order" ein reserviertes Wort ist. Eine Tabelle "order" zu nennen ist nicht sehr sinnvoll. Bei der Zuweisung wäre von "...xyz = 'abc' .." nötig, dass sind aber keine Ticks.

                  Grüße
                  Thomas

                  Kommentar


                  • #10
                    jetzt kriege ich diesen 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 '' at line 2!
                    PHP-Code:
                    <?php 
                    include ('config.php');

                    $db mysql_connect($host,$username,$password,$dbname);
                    //Datenbank auswaehlen
                    mysql_select_db($dbname,$db);

                    $id $_GET['ID'];

                    $sql 'DELETE FROM acclister
                              WHERE ID='
                    .$id;
                                    
                    $result mysql_query($sql);

                    if (!
                    $result) {
                    die (
                    'Es ist ein Fehler aufgetreten: '.mysql_error().'!');
                    }

                    echo 
                    'Der Account mit der ID = '.$id.' wurde erfolgreich gel&ouml;scht!';

                     
                    ?>
                    Edit: Hab die ticks wieder entfernt! Das erzeugt nur noch mehr errors-.-

                    Kommentar


                    • #11
                      Und dein "dass" muss "das" heißen!

                      Es ist besser, sowas zu machen, wenn man nicht alle SQL-Befehle kennt, wie zum Beispiel Leute, die nicht wissen was SQL Injection ist!

                      Wer nicht escaped, der wird auch nicht viel an Befehlen kennen und deshalb war meine Empfehlung, dass das zureichend geschrieben ist!

                      Vielleicht ist das nicht das beste Beispiel, aber stell dir vor, jemand bestellt was, da wäre "order", als engl. "Bestellung" evtl. oft benutzt!
                      MfG
                      ~Capfly

                      Kommentar


                      • #12
                        Zitat von Amargedd0n Beitrag anzeigen
                        jetzt kriege ich diesen Error:
                        Schreibs mal alles in 1 Zeile:

                        PHP-Code:
                         $sql "DELETE FROM `acclister` WHERE `ID` = ".$id
                        MfG
                        ~Capfly

                        Kommentar


                        • #13
                          ..bin raus..

                          Grüße
                          Thomas

                          Kommentar


                          • #14
                            Zitat von Capfly Beitrag anzeigen
                            Schreibs mal alles in 1 Zeile:

                            PHP-Code:
                             $sql "DELETE FROM `acclister` WHERE `ID` = ".$id
                            funzt nicht wieder das selbe-.-

                            Kommentar


                            • #15
                              Heißt die Tabelle auch acclister?
                              Ist $id vielleicht leer?
                              MfG
                              ~Capfly

                              Kommentar

                              Lädt...
                              X