Löschen von einer Tabelle (Denkfehler?)

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

  • Löschen von einer Tabelle (Denkfehler?)

    Hallo,

    ich habe folgendes Problem welches mich schon seid Tagen beschäftigt.
    Eigentlich ist es simpel.

    Folgendes Script zeigt die Inhalte einer Tabelle an und mittels auswahl einer CheckBox kann dann ausgewählt werden welcher Inhalt davon gelöscht werden kann.

    PHP-Code:
    <?php $db = new db_local;  
    echo 
    "<h2 align=\"center\">Seiten löschen.</h2>" ;

     if(!isset(
    $_POST['submit'])) { ?>
    <form action="<?php $PHP_SELF ?>" method="post">
    <?php 
    //Seiten anzeigen 
    $db->query("SELECT id, seite FROM inhalt order by id"); 
            while(
    $db->next_record()){
            
    $var rawurldecode($db->record['id']);
            if(
    $db->record['seite'] != "help"){  
            echo 
    "<p align=left><input type='checkbox' name='id' value=".$var.">".$db->record['seite']."</p>"
            }}
    ?>
    <p align="left"><input type="submit" name="submit" value="Löschen"></p>
    <?php
    }else{
    // ausgewählte Seite löschen
    $db->query("DELETE FROM `inhalt` WHERE id ='$var'");
    $db->close();
    echo 
    "Und weg ist die Seite!";        
    }
    ?>
    Allerdings funktioniert das nicht so wirklich. Der Letzte Satz erscheint zwar, allerdings bleibt der ausgewählte inhalt noch in der DB.

    Da ich allerdings scheinbar blind auf den Augen bin und den fehler nicht sehe, hoffe ich mal das mir hier weiter geholfen werden kann.

    Vielen dank schon mal,

    Christian

  • #2
    Wo soll das $var im DELETE Query herkommen?

    Dein HTML-Code ist übrigens nicht Valide. Attribute gehören in Anführungszeichen. Also statt <p align=left> gehört <p align="left">.

    Außerdem solltest du nicht Programmlogik mit Ausgabe vermischen. Starte die HTML-Ausgabe erst, wenn du dir alle Daten geholt hast. Datenbankzugriffe haben inmitten von HTML-Code eigentlich nichts mehr verloren.

    Kommentar


    • #3
      es gibt keine Variable Namens $var nach dem Senden, die Checkbox heißt id und dann auch ruhig mal nach $_POST googlen. Achja und bei Mehrfach Auswahl deiner Checkbox wird das so auch nicht gehen da musste dann aus id schon ein array machen und diesen für den Löschvorgang durchlaufen, wenn ich mich nicht irre.
      mfg
      marc75

      <Platz für anderes>

      Kommentar


      • #4
        dein $var ist in if-Zweig definiert, daher in else nicht existent!

        Kommentar


        • #5
          Zitat von h3ll Beitrag anzeigen
          Wo soll das $var im DELETE Query herkommen?
          ich habs auch schon mit
          PHP-Code:
          $var $HTTP_GET_VARS["id"]; 
          versucht, bringt leider auch nichts.
          Dein HTML-Code ist übrigens nicht Valide. Attribute gehören in Anführungszeichen. Also statt <p align=left> gehört <p align="left">.
          Ist doch in Anführungszeichen. Edit: Ach sry. Du meintest die Ausgabe bei [COLOR=#000000][COLOR=#006600]echo [/COLOR][COLOR=#CC0000]"<p align=left>[/COLOR][/COLOR]. Ja gut. Ob valid oder nicht ist erst mal egal. das wird hinterher eh noch mal geändert. Mir gehts nur erst mal darum das es funktioniert.

          Außerdem solltest du nicht Programmlogik mit Ausgabe vermischen. Starte die HTML-Ausgabe erst, wenn du dir alle Daten geholt hast. Datenbankzugriffe haben inmitten von HTML-Code eigentlich nichts mehr verloren.
          Werde ich berücksichtigen
          Zuletzt geändert von heiermann; 11.06.2009, 11:07.

          Kommentar


          • #6
            Zitat von heiermann Beitrag anzeigen
            ich habs auch schon mit
            PHP-Code:
            $var $HTTP_GET_VARS["id"]; 
            versucht, bringt leider auch nichts.
            Schau dir $_POST an. $HTTP_GET_VARS ist veraltet. Anscheinend hast du keine aktuellen Unterlagen.

            Zitat von heiermann Beitrag anzeigen
            Ist doch in Anführungszeichen
            Nein, ist es nicht.

            Kommentar


            • #7
              Zitat von heiermann Beitrag anzeigen
              ich habs auch schon mit
              PHP-Code:
              $var $HTTP_GET_VARS["id"]; 
              versucht, bringt leider auch nichts.
              Du verwendest ja auch POST im Formular, und nicht GET.
              Und dass du darauf über $_POST zugreifen solltest, wurde dir ja auch schon gesagt.

              Ist doch in Anführungszeichen
              An der einen Stelle ja, an der anderen nicht.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                ok, manchmal sieht man den wald vor lauter Bäumen nicht.

                Post war das was fehlte nun gehts.

                Danke für die Hinweise

                Gruß

                Christian

                Kommentar

                Lädt...
                X