löschen per checkbox

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

  • löschen per checkbox

    Hallo zusammen

    ich möchte gern mehrere Einträge glöeichzeitig löschen wenn die checkbox angeklickt wurde ! Kann mir wer sagen wo mein Fehler hier im script ist ?

    Er löscht keinen einzigen Eintag

    PHP-Code:

    <?
    require("connect.inc.php");
    $abfrage = "SELECT * FROM Suche";
    ?>

    <form method="post" action="">
    <table width="600" border="1" align="center">
    <tr>
    <td align="center">Strasse</td>
    <td align="center">Check</td>
    </tr>
    <?
            $result = mysql_query($abfrage);
            while($row = mysql_fetch_array($result))
            {
            echo "<tr>";
            echo "<td align=center>".$row["Strasse"]."</td>";
            echo "<td align=center><input type=checkbox name=check value=".$row['$id']."></td>";
            echo "</tr>";
            }
    ?>

    <tr>
    <td align=center colspan=5><input type="submit" name="Delete" Value="löschen"></td>
    </tr>
    </form>

    <?
    $Del = $_POST['check'];

    $updatedel = "DELETE FROM Suche WHERE id='$Del' "; 

    if (isset($_POST['Delete']))
    {
    $update = mysql_query($updatedel);
    }
    ?>
    </table>

    mfg launebaer

  • #2
    nein. aber kannst du sagen, warum du denkst, dass da ein fehler drin ist?

    Kommentar


    • #3
      Re: löschen per checkbox

      *seufz*

      zeig uns bitte wenigstens die grundzüge deines debuggings ...

      testausgaben, überprüfung übergebener werte, generierte query, mysql_error(), ...
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        habe soeben mal

        echo $updatedel;

        gemacht und festgestellt das er den " id " gar nicht nimmt

        also als ausgabe kommt :

        DELETE FROM Suche WHERE id=''


        also hat es was mit der Zeile :

        $Del = $_POST['check'];


        zu tun , aber ich weiss nicht was

        Kommentar


        • #5
          zu Debugging ggehört auch, dass du dir deinen HTML-Quelltext mal anschaust.

          Ich wette mit dir um alles was du jemals nicht besitzen wirst, dass bereits da im value-Attribut der Checkbox(en) nichts steht...
          Warum findest du aber bestimmt alleine raus

          Dass du so nicht mehrere Datensätze auf einmal löschen kannst, weißt du?
          Dass es irgendwie blöd ist, erst die Daten auszugeben und dann ein paar dieser Daten zu löschen (wenn es denn mal klappt), weißt du auch?

          Dass du mir vermutlich den Sinn der Variablen $Del nicht erklären kannst, weißt du auch?
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            Ja du hast in den meisten Punkten Recht !

            Da ich es aber alleine nicht hinbekomme hab ich eben mal hier gefragt !


            Nagut ich werd mal weiter suchen vielleicht find ich irgentwo was , wie ich es lösen kann !


            Danke aber für die Antworten , die mir zeigen das ich ne menge lernen muss !


            Mfg launebaer

            Kommentar


            • #7
              Original geschrieben von launebaer
              Ja du hast in den meisten Punkten Recht !
              In welchem nicht?

              Da ich es aber alleine nicht hinbekomme hab ich eben mal hier gefragt !
              Da sagt ja auchniemand was dagegen


              Nagut ich werd mal weiter suchen vielleicht find ich irgentwo was , wie ich es lösen kann !
              Überleg dir mal, warum die ID nicht im HTML-Quelltext steht und schau dir genau an, was du da ausgibst, wo du die ID ausgeben willst
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                hi,

                also mit radiobuttons würde es funzen...willst aber bestimmt lieber checkboxen oder?

                Kommentar


                • #9
                  HTML:

                  name="box[]"

                  PHP:
                  foreach() oder implode()

                  SQL:
                  WHERE IN()

                  PS: $row['$id'] sowas kannst knicken...

                  QUELLEN:
                  www.mysql.com
                  www.schattenbaum.net
                  www.php-resource.de/forum/search.php



                  Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                  sondern mit den Augen das Manual zu lesen.

                  Kommentar


                  • #10
                    Stimmt :

                    $row['$id'];

                    konnte ich knicken

                    aber so :

                    $row['id'];

                    kann ich schon mal ein Eintrag löschen !

                    Kann mir wer sagen ob mein Prinzip schon richtig ist oder muss ich komplett umdenken ?


                    Danke für die Hilfe

                    Kommentar


                    • #11
                      du solltest <input type="checkbox" name="box[]" .... > verwenden...

                      und solltest mal dir mal den IN befehl in mysql anschauen und dazu im php code implode benutzten, kriegst das hin? wenn nicht dann such mal im forum..

                      sähe dann so aus

                      PHP-Code:
                       $query "DELETE FROM x WHERE id IN (".implode('',$box).")"

                      Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                      sondern mit den Augen das Manual zu lesen.

                      Kommentar


                      • #12
                        Danke für den Tip

                        Habe beides mal geändert , bekomme aber nun einen Fehler :

                        Warning: implode(): Bad arguments. in /usr/virtualweb/********/html/Testordner/park/komplett_1.php on line 30

                        das wäre diese Zeile :

                        $updatedel = "DELETE FROM Suche WHERE id IN (".implode('',$box).")";


                        mein checkbox sieht nun so aus :

                        echo "<td align=center><input type=checkbox name='box[]' value='$ID'></td>";

                        Kommentar


                        • #13
                          Natürlich hast du nachgeschaut was in $box steht?

                          Versuche mal $_POST['box']
                          Und lass dir $query ausgeben


                          Dann merkst du auch, das du da irgendwo ein Komma vergessen hast. Liegt aber wahrscheinlich daran, dass du die Doku zu IN (in mysql) nicht gelesen hast...
                          Ich denke, also bin ich. - Einige sind trotzdem...

                          Kommentar


                          • #14
                            stimmt ein komma fehlte , aber die fehlermeldung :

                            Warning: implode(): Bad arguments. in /usr/virtualweb/********/html/Testordner/park/komplett_1.php on line 31


                            ist immer noch da !

                            Aber er löscht nun alle einträge die ich per checkbox anklicke ( schon mal was positives )

                            Kommentar


                            • #15
                              Original geschrieben von mrhappiness
                              Natürlich hast du nachgeschaut was in $box steht?

                              Versuche mal $_POST['box']
                              Was steht in $box?
                              Was steht in $_POST['box']?
                              Ich denke, also bin ich. - Einige sind trotzdem...

                              Kommentar

                              Lädt...
                              X