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

  • peter8500
    hat ein Thema erstellt [Erledigt] Problem mit bestehendem Datensatz löschen.

    [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!

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

    Einen Kommentar schreiben:


  • peter8500
    antwortet
    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!!!

    Einen Kommentar schreiben:


  • VPh
    antwortet
    PHP-Code:
    $eintrag = array(
            
    'id' => $_POST['wert'],
            
    'time' => $time[0]
        ); 

    Einen Kommentar schreiben:


  • peter8500
    antwortet
    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!

    Einen Kommentar schreiben:


  • VPh
    antwortet
    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.

    Einen Kommentar schreiben:


  • peter8500
    antwortet
    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!

    Einen Kommentar schreiben:


  • G.Schuster
    antwortet
    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?

    Einen Kommentar schreiben:


  • VPh
    antwortet
    PHP-Code:
    if ($(this).is(':checked')) { 
    Hast du auch was für "nicht checked", also wenn die checkbox abgewählt wird?

    Einen Kommentar schreiben:

Lädt...
X