Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Problem mit bestehendem Datensatz löschen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Problem mit bestehendem Datensatz löschen

    Hallo !

    Ich habe eine kleine Artikelliste. Wird ein Artikel für eine bestimmte Abteilung bestellt setze ich per Checkbox einen Wert. Dieser wird per JQuery abgefragt und an update.php übertragen:

    PHP-Code:
       $(document).ready(function() {
                        $(
    'input[type=checkbox]').click(function() {
                            if ($(
    this).is(':checked')) {
                                var 
    $id = $(this).attr("name");

                                $.
    post('update.php', {wert$id}, function(data) { 
    Das Eintragen in die MySQL-Datenbank klappt problemlos. Leider will ich, wenn die Checkbox abgewählt wird auch aus der DB gelöscht wird. Das geht nicht:

    update.php:
    PHP-Code:

    $time 
    getdate();


    if (isset(
    $_POST['wert'])) {
        
    $eintrag = array(
            
    'id' => $_POST['wert'],
            
    'time' => $time[0]
        );
    } else {
        echo 
    "Wert nicht da";
    };

    //(Datenbankeinbindung)

    $pdo = new PDO($server$user$password$options);
    $stmt $pdo->prepare("select * from artikelliste where artikel = :id");
    $stmt->bindValue(':id'$eintrag["id"], PDO::PARAM_INT);
    $stmt->execute();
    $result $stmt->fetchAll();

    if (
    count($result) == 0) {
        
    $stmt $pdo->prepare('INSERT INTO artikelliste(artikel, time)  VALUES (:id, :time);');
        
    $stmt->execute($eintrag);
        echo 
    "gespeichert";
    } else {
        
    $stmt $pdo->prepare('DELETE FROM `siku0614_3d` WHERE `artikel` = "0801"');
        
    $stmt->bindValue(':id'$eintrag["id"], PDO::PARAM_INT);
        echo 
    "gelöscht";
        try {
            
    $stmt->execute();
        } catch (
    PDOException $e) {
            die(
    $e->getMessage());
        }
    }; 

    Der Wert wird einfach nicht aus der Tabelle ausgetragen. Für einen Tipp bin ich serh sehr dankbar.

    Grüße und herzlichsten Dank!


  • #2
    PHP-Code:
    if ($(this).is(':checked')) { 
    Hast du auch was für "nicht checked", also wenn die checkbox abgewählt wird?
    Relax, you're doing fine.
    RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

    Kommentar


    • #3
      Ich vermute ja, dass der JS-Part bereits Fehler enthält.
      Wie wäre es mit:
      Code:
      $('input[type=checkbox]').click(function() {
            $.post('update.php', {'id': $(this).attr('name'), 'checked': $(this).is(':checked') ? 'yes' : 'no'}, function(data) {  
      }
      ?

      Im Übrigen ist ein bindValue() sinnfrei, wenn in der Query kein NamedParam vorkommt.
      Was mir zu guter Letzt noch auffällt: warum löschst du aus einer anderen Tabelle als der, in die du einträgst?
      VokeIT GmbH & Co. KG - VokeIT-oss @ github

      Kommentar


      • #4
        Hallo zusammen!

        Folgende Änderungen:

        index.php:

        Fängt jetzt checked und nicht checkd ab:

        PHP-Code:
           $(document).ready(function() {
                            $(
        'input[type=checkbox]').click(function() {
                                if ($(
        this).is(':checked')) {
                                    var 
        $id = $(this).attr("name");
                                    
        alert("gesetzt");
                                    $.
        post('update.php', {wert$id}, function(data) {
                                    });

                                } else
                                {
                                    var 
        $id = $(this).attr("name");
                                    
        alert("nicht gesetzt");
                                    $.
        post('loeschen.php', {wert$id}, function(data) {
                                    });

                                }
                            });
                        }); 
        Eintragen der gesetzen Checkbox mit ID in MySQL klappt.

        Hier nun mein Versuch diesen wieder zu loeschen (loeschen.php):

        PHP-Code:

        <?php


        $time 
        getdate();


        if (isset(
        $_POST['wert'])) {
            
        $eintrag = array(
                
        'id' => $_POST['wert'],
                
        'time' => $time[0]
            );
        } else {
            echo 
        "Wert nicht da";
        };


        $server 'yy;
        $user = '
        xx';
        $password = '
        xx!';
        $options = array
            (
            PDO::MYSQL_ATTR_INIT_COMMAND => '
        SET NAMES utf8',
        );


        $pdo = new PDO($server, $user, $password, $options);
        $stmt = $pdo->prepare("select * from artikelliste where artikel = :id");
        $stmt->execute();
        $result = $stmt->fetchAll();

        if (count($result) == 1) {
            $stmt = $pdo->prepare('
        DELETE FROM `artikellisteWHERE `artikel` = :id');
            echo "gelöscht";
            try {
                $stmt->execute();
            } catch (PDOException $e) {
                die($e->getMessage());
            }
        };

        Er will es einfach nicht löschen...

        Hat noch jemand eine Idee für mich. Herzlichen Dank für Eure Hilfe!

        Kommentar


        • #5
          PHP-Code:
              $stmt $pdo->prepare('INSERT INTO artikelliste(artikel, time)  VALUES (:id, :time);');
              
          $stmt->execute($eintrag); 
          PHP-Code:
              $stmt $pdo->prepare('DELETE FROM `artikelliste` WHERE `artikel` = :id);
              ....
              $stmt->execute(); 
          Finde den Unterschied.
          Relax, you're doing fine.
          RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

          Kommentar


          • #6
            Danke für die Antwort!
            PHP-Code:
            $stmt $pdo->prepare("DELETE FROM `artikelliste` WHERE `artikel` = :id");
             
            $stmt->execute($eintrag); 
            führte leider nicht zur Lösung. Steh gerade mächtig auf den Schlauch.

            Herzlichen Dank!

            Kommentar


            • #7
              PHP-Code:
              $eintrag = array(
                      
              'id' => $_POST['wert'],
                      
              'time' => $time[0]
                  ); 
              Relax, you're doing fine.
              RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

              Kommentar


              • #8
                Danke VPH!

                Wenn ich nun

                PHP-Code:
                if (isset($_POST['wert'])) {
                    
                $id $_POST['wert'];
                } else {
                    echo 
                "Wert nicht da";
                }; 
                als einzige Variable setze und dann mit

                PHP-Code:
                 $stmt $pdo->prepare("DELETE FROM `artikelliste` WHERE `artikel` = $id");
                 
                $stmt->execute($eintrag); 
                ausführe komm ich auch nicht weiter....

                Danke!!!

                Kommentar


                • #9
                  OK. Dank Eurer Hilfe und dem Wink mit den Zaunpfählen gehts jetzt!!!!

                  Kommentar

                  Lädt...
                  X