DELETE Schleife mit $_REQUEST und Checkboxen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • DELETE Schleife mit $_REQUEST und Checkboxen

    Ich hoffe Ihr könnt mir helfen:

    Ich habe eine Liste von Headlines aus der Datenbank generiert und dazugehörige Checkboxen. Wenn man diese Checkboxen anwählt und das Formular abschickt, sollen die markierten aus der Datenbank gelöscht werden. Jede Checkbox ist mit der dazugehörigen Headline Id gekennzeichnet. Funktionierte ganz toll, bis der WebAuftritt auf den neuen Server geschaufelt wurde. Klare Sache: register_globals=off... Doch wie krieg ich mein Array wieder hin:


    Checkbox:

    PHP Code:
    if ($_REQUEST["action"]=='delete') { 
    mein Delete Script:

    PHP Code:
    if ($_REQUEST["action"]=='delete') {
        
    $countDelete=count($_REQUEST["deleteBox"]);
        
    $whereClause="WHERE news_id='".$_REQUEST["deleteBox"][0]."'";
        
        for(
    $i=1;$i<$countDelete;$i++){
            
    $whereClause.=" OR news_id=".$_REQUEST["deleteBox"][$i].";";
        }

        
    $query="DELETE FROM News ".$whereClause;
        
        
    $query=mysql_query($query)
        or die (
    mysql_error());

    Wie krieg ich das zum Laufen?

    HILFE!!!
    Last edited by surf_tiki; 09-07-2003, 13:20.

  • #2
    so sollte es optimal laufen.
    bin auch von headline_id als id-feld ausgegangen.
    ( müsstest du evtl. anpassen. )


    Checkbox im html in einer ausgabeschleife. ist ja klar...:
    PHP Code:
    ... name="deleteBox[]" value="<? echo $news_id?>" ....
    das formular wird via post übergeben.

    $_REQUEST nehmen wir mal nicht...

    Dein Delete Script:

    PHP Code:
    <?php

        
    if (isset($_POST['action']) && $_POST['action']=='delete' && isset($_POST['deleteBox']))
        {
            if (
    count($_POST['deleteBox']) > 0)
            {
                
    $sql 'DELETE FROM News WHERE headline_id IN ('.implode(','$_POST['deleteBox']).')';
                
    $res mysql_query($sql) or die (mysql_error());
            }
        }

    ?>
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Comment


    • #3
      Re: DELETE Schleife mit $_REQUEST und Checkboxen

      $_REQUEST[] ist veraltet, bei einer neueren php-version benutzt du stattdessen $_GET[] oder $_POST[] (je nachdem, welche übertragungsmethode dein formular nutzt).
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Comment


      • #4
        SQL ERROR

        Ihr seid ja wahnsinnig schnell! Danke erstmal!

        Das Script scheint mir einwandfrei zu sein, doch bekomme ich einen

        You have an error in your SQL syntax near ')' at line 1

        ???

        Comment


        • #5
          $_REQUEST ist NICHT veraltet, im gegenteil, gehört zu den neueren superglobals

          es vereint einfach get, post, session, cookie (noch was ? *g*)

          ich zb verwende $_REQUEST dann, wenn ich getrost davon ausgehen kann dass nix passiert ..

          domain.tld/?logout=1

          PHP Code:
          <?php
          if (isset($_REQUEST['logout']) { /* etc */ }
          ?>
          mfg,
          [color=#0080c0]Coragon[/color]

          Comment


          • #6
            Re: SQL ERROR

            Original geschrieben von surf_tiki
            You have an error in your SQL syntax near ')' at line 1
            ich habs nicht getestet....

            PHP Code:
            // gib mal nach
            $sql "DELETE FROM..... ";

            // das hier aus
            echo '<pre>'.$sql.'</pre>'
            ausgabe?
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Comment


            • #7
              PHP Code:
              DELETE FROM News WHERE news_id IN () 

              Comment


              • #8
                hast du mein script 1:1 übernommen , oder änderungen gemacht?

                eigentlich prüft das script alles ab, um diesen fehler nicht zu produzieren.
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Comment


                • #9
                  ich hab das script 1:1 übernommen.
                  Hab nur die headline_id in news_id umbenannt. ...

                  Comment


                  • #10
                    wie sieht das html-formular aus?
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Comment


                    • #11
                      danke dass du dir die zeit nimmst


                      PHP Code:
                      <form action="left.php" method="post" name="newsform"  enctype="multipart/form-data">
                      <input type="hidden" name="action" value="delete">

                      <table cellpadding="0" cellspacing="0" border="0">
                          <tr>
                              <td valign="top">
                                  <table width="330" cellpadding="0" cellspacing="0" border="0">
                      <?
                      /*/////////////////////////////////
                      // News Liste                    //
                      *//////////////////////////////////

                      $query_news=mysql_query("SELECT * FROM News ORDER BY erstell_datum DESC")
                      or die (mysql_error());
                      $num_rows=mysql_num_rows($query_news);
                      if ($num_rows!=0) {
                          while ($news=mysql_fetch_array($query_news)) {
                              $erstell_datum=ts2datum($news["erstell_datum"]);
                              $news_id_liste=$news["news_id"];
                              $headline_liste=$news["headline"];
                      ?>
                                      <tr>
                                          <td><input type="checkbox" class="check" value="<? echo $news_id?>" name="deleteBox[]"></td>
                                          <td><img src="../../grafik/pixel.gif" width="5" height="1" border="0"></td>
                                          <td><strong><? echo $headline_liste?></strong> / <? echo $erstell_datum ?> / <a href="middle.php?action=edit&news_id=<?echo $news_id_liste?>" target="middle">editieren</a></td>
                                      </tr>
                      <?
                          }
                      }
                      ?>
                      <tr>
                                          <td>&nbsp;</td>
                                          <td><img src="../../grafik/quader2.gif" border="0"></td>
                                          <td><a href="javascript:deleteNews()">Auswahl l&ouml;schen</a></td>
                                      </tr>
                      </table>
                      </form>

                      Comment


                      • #12
                        mhm.... mache mal das am anfang der datei left.php rein.
                        PHP Code:
                        echo '<pre>';
                        print_r($_POST['deleteBox']);
                        echo 
                        '</pre>'
                        ausgabe?
                        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                        Comment


                        • #13
                          PHP Code:
                          Array
                          (
                              [
                          0] => 
                              [
                          1] => 

                          Comment


                          • #14
                            aaarg.

                            ich habe noch einen fehler in deinem form-generier-script bei der checkbox gesehen.

                            dort gibt du ja kein value aus....


                            <? echo $news_id?>
                            $news_id gibt es nicht.

                            entweder $news_id_liste oder lieber direkt $news["news_id"] verwenden.

                            bitte tauschen und neue infos posten...
                            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                            Comment


                            • #15
                              Ich bin ein idiot

                              Danke dir..jetzt geht´s. Hatte gestern beim rumprobieren schonmal die id geändert aber dann wohl zu oft <strg>+z und nicht mehr dran gedacht---ich danke dir.

                              Comment

                              Working...
                              X