Ankündigung

Einklappen
Keine Ankündigung bisher.

DELETE Befehl für mehrere Checkboxen

Einklappen

Neue Werbung 2019

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

  • Gast-Avatar
    Ein Gast erstellte das Thema DELETE Befehl für mehrere Checkboxen.

    DELETE Befehl für mehrere Checkboxen

    Ich habe eine Frage bezüglich Formular mit PHP und mehreren Checkboxen , die Texte aus einer Datenbank..

    Ich sollte Kategorien die aus einer Datenbank kommen mittels einer Checkbox anhacken können und dann sollten diese aus der Tabelle gelöscht werden...

    mein code:

    PHP-Code:
    <?php
    <center><form name="entfernen" method="post" action'<?php echo $PHP_SELF; ?>'>
                <?
    php
                        $abfrage 
    "select ctc.customers_id, ctc.categories_id, cd.categories_id, cd.categories_name FROM customer_to_categories ctc,  categories_description cd  where cd.categories_id = ctc.categories_id and customers_id = $customer_id";
                        
    $ergebnis mysql_query($abfrage);
                        echo 
    "<table border='0'><tr><td class='main'>[b]Ihre Drucker:[/b]</td></tr>";
                        while (
    $row mysql_fetch_array($ergebnis))
                            {
                            echo 
    "<tr><td class='main'><input type='checkbox' name='".$row[categories_id]."' value=' echo $checkbox; '>"  $row['categories_name'] . "</td></tr>";
                            
                        }
                        echo 
    "</table>
    "
    ;
                        
                
    ?>
                
                <input type=hidden name=flag value=1>
                <?php echo tep_draw_input_field('abschicken''Drucker entfernen'$parameters 'class="button"''submit'); ?>
                
                </form></center>
                <?php
                $ent1 
    $_REQUEST['".$row[categories_id]."'];
                
                if (
    $flag==1) {                            
                                
    $ent "DELETE FROM customer_to_categories WHERE categories_id = ".$ent1;
                                
    $entfern mysql_query ($ent$db);
                                echo 
    mysql_error();
                                while (
    $zeile mysql_fetch_array($ergebnis)) {
                                    echo 
    "Die Datensätze" .$zeile[categories_name]. " wurden herausgelöscht!";                            
                                }
                }
                
    ?>
    ?>
    Wie ermittle ich jetzt ganau diese categories_name die angehackt wurden und wie lösche ich diese wenn es mehrere sind aus der Tabelle von der Datenbank heraus??

    Kann mir da irgend jemand weiterhelfen?? wäre echt nett!!

    gruß

  • Gast-Avatar
    Ein Gast antwortete
    Nein das muss es nicht, wir in der Schule haben es so gelernt, aber es funktioniert ja schon alles, also uti hast du jetzt auch etwas dazu gelernt*gg* wenn nach dem " ein punkt ist und die Variable dran hängt dann funktioniert es!!!

    Danke trotzdem noch einmal

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Auch dieses Problem gelöst*gg*
    Bin erst jetzt drauf gekommen, durch meine Schlammpigkeiten beim Programmieren:

    PHP-Code:
    <?php
    foreach($ent1 as $entfernenvar)  { 
                          
    $ent "DELETE FROM customer_to_categories WHERE categories_id = ".$entfernenvar
                         
    $entfern mysql_query ([b]$ent[/b], $db); 
                         echo 
    mysql_error(); 
                       }
    ?>
    Das was fett ist habe ich ausgebessert!!

    Danke uti für deine tollen Tipps!!
    Hat mir sehr geholfen

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    [edit]:
    Uuuups ich bin auch schon müde !

    Sorry !

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Danke für deine Tipps, habe die Fehler gleich mal ausgebessert!!!

    So jetzt ist es ein Array, nur kommt diese Fehlermeldung wenn ich die Kategoire mit der id 33 auswähle:

    PHP-Code:
    <?php
    You have an error in your SQL syntax
    check the manual that corresponds to your MySQL server version for the right syntax to use near '33' at line 1
    ?>
    Und diese Fehlermeldung wenn ich die Kategorie mit der ID 34 auswähle:

    PHP-Code:
    <?php
    You have an error in your SQL syntax
    check the manual that corresponds to your MySQL server version for the right syntax to use near '34' at line 1 
    ?>
    Also ich seh schon, es dauert nicht mehr lange, dann muss es funktionieren*gg*

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    PHP-Code:
    <?php
    echo "<tr><td class='main'> 
          <input type='checkbox' name='" 
    $row[categories_id] . "' value=' echo $checkbox; ' value='1'>"  $row['categories_name'] . "</td></tr>";  
    ?>
    PHP-Code:
    <?php
    echo "<tr><td class='main'> 
          <input type='checkbox' name='chkbx_array[]' value='
    $row[categories_id]'>  $row['categories_name'] </td></tr>";  
    ?>
    und dann

    PHP-Code:
    <?php
    $ent1
    =$_REQUEST['chkbx_array'];
    print_r($ent1);
    ?>

    Dann sollte das auch ein Array sein.
    Ist dir klar das du 2x value in der checkbox verwendet hast ?

    Du musst echt auf sauberen Code achten.
    Bin selber schon schlampig. Aber du bist, mit verlaub,
    der Burner

    Hab's oben nicht getestet, aber so sollte es gehen

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Ich habe jetzt so überprüft ob $ent1 ein Array ist:
    PHP-Code:
    <?php
    $ent1 
    $_REQUEST[' . $row[categories_id]. ']; 
          
          if (
    is_array($ent1)) 
            { 
                echo 
    "/$ent1 ist ein Array"
            } else { 
             echo 
    "/$ent1 ist kein Array"
          }

    ?>
    Er liefert mir:

    PHP-Code:
    <?php
    ist kein Array 
    ?>
    Wie kann ich bezwecken dass es ein Array wird, so dass ich mehrere Datensätze herauslöschen kann, kommt halt drauf an wieviele dass der user anhackt!!

    mein jetziger aktueller code:
    PHP-Code:
    <?php
    if (!$flag) {
      
    ?>
      <center><form name="entfernen" method="post" action'<?php echo $PHP_SELF?>'> 
            <?php 
                  $abfrage 
    "select ctc.customers_id, ctc.categories_id, cd.categories_id, cd.categories_name FROM customer_to_categories ctc,  categories_description cd  where cd.categories_id = ctc.categories_id and customers_id =" .$customer_id
                  
    $ergebnis mysql_query($abfrage); 
                  echo 
    "<table border='0'><tr><td class='main'>[b]Ihre Drucker:[/b]</td></tr>"
                  while (
    $row mysql_fetch_array($ergebnis)) 
                     { 
          echo 
    "<tr><td class='main'>
          <input type='checkbox' name='" 
    $row[categories_id] . "' value=' echo $checkbox; ' value='1'>"  $row['categories_name'] . "</td></tr>"
                  } 
                  echo 
    "</table>
    "

            
    ?> 
            <input type=hidden name=flag value=1> 
            <?php echo tep_draw_input_field('abschicken''Drucker entfernen'$parameters 'class="button"''submit'); ?> 
             
            </form></center> 
            <?php
      

                
    $ent1 $_REQUEST[' . $row[categories_id]. ']; 
          
         
    /* if (is_array($ent1)) 
            { 
                echo "/$ent1 ist ein Array"; 
            } else { 
             echo "/$ent1 ist kein Array"; 
          } */
        
    if ($flag==1) {
          if (
    $ent1 == 1) {
           foreach(
    $ent1 as $entfernenvar)  { 
           
    $ent "DELETE FROM customer_to_categories WHERE categories_id = ".$entfernenvar
                           
    $entfern mysql_query ($entfernenvar$db); 
                           echo 
    mysql_error(); 
         } 
          }
              } 
    ?>

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    dann ist $ent1 kein array.
    Muss ich nochmal genauer lesen
    hab gerade keine Zeit veilleicht
    heut abend.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    line 106 is die Zeile mit dem foreach!!!

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    PHP-Code:
    <?php
    Warning
    Invalid argument supplied for foreach() in C:\Programme\xampp\htdocs\php\oscommerce\oscommerce-2.2ms2\catalog\printer_ent.php on line 106

    ?>
    Fehlermeldung zu diesem Code:

    PHP-Code:
    <?php
    <?php 
             $ent1 
    $_REQUEST['".$row[categories_id]."']; 
             if (
    $flag==1) {
                      foreach(
    $ent1 as $entfernenvar)  { 
                            
    $ent "DELETE FROM customer_to_categories WHERE categories_id = ".$entfernvar
                             
    $entfern mysql_query ($entfernenvar$db); 
                             echo 
    mysql_error(); 
                                
                             
                    } 
             } 
             
    ?> 
    ?>

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Die while schleife ist müll. löschen.
    und lese in meinem letzten post nochmal
    den 3. letzten Satz.


    ansonsten näherst du dich der Lösung. (vielleicht) :P

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Sorry, das war die alte (Probier)Datei, habe es selber erst jetzt mitbekommen, aber irgendwie funktioniert es ja so auch nicht...
    den einen fehler on line 109 habe ich schon gefunden und ausgebessert...

    mein jetziger code:

    PHP-Code:
    <?php
    <center><form name="entfernen" method="post" action'<?php echo $PHP_SELF; ?>'
             <?
    php 
                   $abfrage 
    "select ctc.customers_id, ctc.categories_id, cd.categories_id, cd.categories_name FROM customer_to_categories ctc,  categories_description cd  where cd.categories_id = ctc.categories_id and customers_id = $customer_id"
                   
    $ergebnis mysql_query($abfrage); 
                   echo 
    "<table border='0'><tr><td class='main'>[b]Ihre Drucker:[/b]</td></tr>"
                   while (
    $row mysql_fetch_array($ergebnis)) 
                      { 
                      echo 
    "<tr><td class='main'><input type='checkbox' name='".$row[categories_id]."' value=' echo $checkbox; '>"  $row['categories_name'] . "</td></tr>"
                       
                   } 
                   echo 
    "</table>
    "

             
    ?> 
             <input type=hidden name=flag value=1> 
             <?php echo tep_draw_input_field('abschicken''Drucker entfernen'$parameters 'class="button"''submit'); ?> 
              
             </form></center> 
             <?php 
             $ent1 
    $_REQUEST['".$row[categories_id]."']; 
             if (
    $flag==1) {
                      while (
    $a mysql_fetch_array($entfern)) {
                         foreach(
    $ent1 as $entfernenvar)  { 
                            
    $ent "DELETE FROM customer_to_categories WHERE categories_id = ".$entfernvar
                             
    $entfern mysql_query ($ent$db); 
                             echo 
    mysql_error(); 
                                
                             }
                         } 
             } 
             
    ?> 
    ?>
    Ja tut mir nochmals leid, bin heut noch nicht ganz bei der Sache...

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    jo fehler.
    Bist du sicher das du dir die Syntax durchgelesen hast ???

    foreach (array_expression as $value) Anweisung
    foreach (array_expression as $key => $value) Anweisung
    Unten auf der php.net Seite stehen sogar Beispiele.
    Lesen... ...LESEN... ... WIRKLICH LESEN...

    Ich weiß, aller anfang ist schwer, aber nur so LERNST du was

    Mal so am Rande wenn du einen Parse Error in Zeile 109 hast,
    dann währe es toll (besser zwingend erforderlich) diese Zeile
    mal zu makieren. Du hast nun schon ü 40 Beiträge, da sollte
    man so etwas wissen. Ist aber nicht bös gemeint.

    foreach($ent1 as $hilfsvar1)
    Danach benutzt du einfach $hilfsvar1 anstatt $ent1 in der Schleife.

    Und $hilfsvar1 sollte in der Query dann auch innerhalb der "" stehen
    wenn ich mich nicht irre.

    Und mach das print_r aus der Schleife raus, da steht eh immer das
    selbe drin.

    So starte nochmal nen Versuch... bin gespannt

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Ok, ich habs mir jetzt einmal durchgelesen, mich informiert und gleich ausprobiert!!

    Irgend wie geht noch gar nichts, als erstes zeigt er mir eine Fehlermeldung an:
    PHP-Code:
    <?php
    Parse error
    parse error in C:\Programme\xampp\htdocs\php\oscommerce\oscommerce-2.2ms2\catalog\printer_ent.php on line 109

    ?>
    Das ist mein Quelltext:
    PHP-Code:
    <?php
    <center><form name="entfernen" method="post" action'<?php echo $PHP_SELF; ?>'
             <?
    php 
                   $abfrage 
    "select ctc.customers_id, ctc.categories_id, cd.categories_id, cd.categories_name FROM customer_to_categories ctc,  categories_description cd  where cd.categories_id = ctc.categories_id and customers_id = $customer_id"
                   
    $ergebnis mysql_query($abfrage); 
                   echo 
    "<table border='0'><tr><td class='main'>[b]Ihre Drucker:[/b]</td></tr>"
                   while (
    $row mysql_fetch_array($ergebnis)) 
                      { 
                      echo 
    "<tr><td class='main'><input type='checkbox' name='".$row[categories_id]."' value=' echo $checkbox; '>"  $row['categories_name'] . "</td></tr>"
                       
                   } 
                   echo 
    "</table>
    "

                    
             
    ?> 
              
             <input type=hidden name=flag value=1> 
             <?php echo tep_draw_input_field('abschicken''Drucker entfernen'$parameters 'class="button"''submit'); ?> 
              
             </form></center> 
             <?php 
             $ent1 
    $_REQUEST['".$row[categories_id]."']; 
               
             if (
    $flag==1) { 
                         foreach(
    $ent1) { 
                            
    $ent "DELETE FROM customer_to_categories WHERE categories_id = ".$ent1
                             
    $entfern mysql_query ($ent$db); 
                             echo 
    mysql_error(); 
                         
    print_r($ent1);    
                         } 
             } 
             
             
    ?> 
    ?>
    Hab ich mit dem foreach etwas falsch gemacht, weil ich bin mir nicht ganz sicher, weil ich einiges durch probieren wieder herumgeändert habe!!

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    www.php.net/foreach

    ein bisschen MUSST du schon lesen !

    lass dir mit print_r($ent1); mal das Array
    anzeigen. Befinden sich die gewünschten id's
    aus den Checkboxen darin, dann bist du schon
    auf einem guten Weg !

    Wenn du gar nicht klar kommst schau ich nochmal

    Einen Kommentar schreiben:

Lädt...
X