DELETE wird nicht ausgeführt

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

  • DELETE wird nicht ausgeführt

    Hallo

    Also ich habe eine dynamische dropdown box. Das funtzt auch alles. Nur der delet befehl wird nicht ausgeführt der danach folgt. Ich habe mal ein wenig das ganze komentiert. Ich hoffe iher könnt mir helfen.

    PHP-Code:
    <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post"> 
    <?php
    $sql 
    "SELECT id FROM $name";
        
    $ergebnis mysql_query($sql) or die(mysql_error());    
           if(
    $ergebnis)
         {
           echo 
    "<select name='id' size='1' onchange='document.forms.form1.an_id.value=this.form.id.options[this.form.id.selectedIndex].value'>";  
            
            echo 
    "<option value='' selected></option>";
               while(
    $row=mysql_fetch_array($ergebnis))
                   {
                   
                   echo 
    "<option value="."'".$row['id']."'".">".$row['id']."</option><br>";
                    }
          echo 
    "</select>";
          echo 
    '<input type="submit" name="submit" value="Löschen">';

    // bis hier hin geht alles

    // danach wird mir noch nicht mal die sql ausgegeben.
                         
    }
     if(isset(
    $row['id'])) {
       {
            } 
    $sql "DELETE FROM `$name` WHERE '$id'";
    echo 
    $sql;
    $query mysql_query($sql) or die(mysql_error()); 
    }

  • #2
    Re: DELETE wird nicht ausgeführt

    Und was ergaben deine Kontrollausgaben?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      $sql = "DELETE FROM `$name` WHERE '$id'";


      Where $id? ja, du musst schon noch die Spalte dazu schreiben...

      und du meinst auch sicher $id und nicht $row['id']?

      btw:
      PHP-Code:
      if(isset($row['id'])) {
         {
              } 
      da ist eine { zu viel
      Sunshine CMS
      BannerAdManagement
      Borlabs - because we make IT easier
      Formulargenerator [color=red]Neu![/color]
      Herkunftsstatistik [color=red]Neu![/color]

      Kommentar


      • #4
        Also bei WHERE wollte ich bewirken das die spalte in der die ausgewählte id, die oben im formular feld ausgewählt ist komplett gelöscht ist. Wie mach ich das?

        Kommentar


        • #5
          sofern die Spalte wirklich id heißt

          WHERE id='$id'
          Sunshine CMS
          BannerAdManagement
          Borlabs - because we make IT easier
          Formulargenerator [color=red]Neu![/color]
          Herkunftsstatistik [color=red]Neu![/color]

          Kommentar


          • #6
            Habe das jetzt so gemacht. Aber ich erhalte kein SQL echo.

            PHP-Code:
             if(isset($row['id'])) 
               {
                     
            $sql "DELETE FROM `$name` WHERE id='".$row['id']."'";
            echo 
            $sql;
            $query mysql_query($sql) or die(mysql_error()); 

            Kommentar


            • #7
              wenn du kein echo erhälst, dann ist dein $row['id'] nicht gesetzt. Also stimmt was mit der SQL Abfrage ganz am Anfang nicht. Das mit dem $name ist vermutlich falsch bei deinem FROM.
              Sunshine CMS
              BannerAdManagement
              Borlabs - because we make IT easier
              Formulargenerator [color=red]Neu![/color]
              Herkunftsstatistik [color=red]Neu![/color]

              Kommentar


              • #8
                Warum sollte $name falsch sein? Wird am anfang in der anfrage auch gesetzt. Und das sehe ich ja im Formular da stehen ja die ids.

                Ich verstehe nicht ganz warum es nicht geht. ID muss doch gesetzt werden oder?

                PHP-Code:
                <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post"> 
                <?php
                $sql 
                "SELECT id FROM $name";
                    
                $ergebnis mysql_query($sql) or die(mysql_error());    
                       if(
                $ergebnis)
                     {
                       echo 
                "<select name='id' size='1' onchange='document.forms.form1.an_id.value=this.form.id.options[this.form.id.selectedIndex].value'>";  
                        
                        echo 
                "<option value='' selected></option>";
                           while(
                $row=mysql_fetch_array($ergebnis))
                               {
                               
                               echo 
                "<option value="."'".$row['id']."'".">".$row['id']."</option><br>";
                                }
                      echo 
                "</select>";
                      echo 
                '<input type="submit" name="submit" value="Löschen">';
                                           }
                 if(isset(
                $row['id'])) 
                   {
                         
                $sql "DELETE FROM `$name` WHERE id='".$row['id']."'";
                echo 
                $sql;
                $query mysql_query($sql) or die(mysql_error()); 
                }

                Kommentar


                • #9
                  PHP-Code:
                  <?php
                  // Kommt mir komisch vor. Hat jeder $name eine eigene Tabelle?
                  $sql "SELECT id FROM $name";
                  $ergebnis mysql_query($sql) or die(mysql_error());    
                  if(
                  $ergebnis)
                  {
                      
                  // Wird das hier angezeigt?
                      
                  echo "<select name='id' size='1' onchange='document.forms.form1.an_id.value=this.form.id.options[this.form.id.selectedIndex].value'>";  
                      
                      echo 
                  "<option value='' selected></option>";
                      while(
                  $row=mysql_fetch_array($ergebnis))
                      {
                          echo 
                  "<option value="."'".$row['id']."'".">".$row['id']."</option><br>";
                      }
                      echo 
                  "</select>";
                      echo 
                  '<input type="submit" name="submit" value="Löschen">';
                  }

                  // Soll dieser Teil nicht vermutlich in die Schleife rein?
                  if(isset($row['id'])) 
                  {
                      
                  $sql "DELETE FROM `$name` WHERE id='".$row['id']."'";
                      echo 
                  $sql;
                      
                  $query mysql_query($sql) or die(mysql_error()); 
                  }

                  ?>
                  Sunshine CMS
                  BannerAdManagement
                  Borlabs - because we make IT easier
                  Formulargenerator [color=red]Neu![/color]
                  Herkunftsstatistik [color=red]Neu![/color]

                  Kommentar


                  • #10
                    PHP-Code:
                    <?php
                    // Nein das mache ich nur für mich. Ist aber auch egal.

                    $sql "SELECT id FROM $name";
                    $ergebnis mysql_query($sql) or die(mysql_error());    
                    if(
                    $ergebnis)
                    {
                        
                    // Wird angezeigt
                        
                    echo "<select name='id' size='1' onchange='document.forms.form1.an_id.value=this.form.id.options[this.form.id.selectedIndex].value'>";  
                        
                        echo 
                    "<option value='' selected></option>";
                        while(
                    $row=mysql_fetch_array($ergebnis))
                        {
                            echo 
                    "<option value="."'".$row['id']."'".">".$row['id']."</option><br>";
                        }
                        echo 
                    "</select>";
                        echo 
                    '<input type="submit" name="submit" value="Löschen">';
                    }

                    // Warum denn? Er soll doch nur ausgeführt werden wenn man auf 
                    // Löschen klickt.
                    if(isset($row['id'])) 
                    {
                        
                    $sql "DELETE FROM `$name` WHERE id='".$row['id']."'";
                        echo 
                    $sql;
                        
                    $query mysql_query($sql) or die(mysql_error()); 
                    }

                    ?>

                    Kommentar


                    • #11
                      PHP-Code:
                      <?php
                      // Nein das mache ich nur für mich. Ist aber auch egal.

                      $sql "SELECT id FROM $name";
                      $ergebnis mysql_query($sql) or die(mysql_error());    
                      if(
                      $ergebnis)
                      {
                          
                      // Wird angezeigt
                          
                      echo "<select name='id' size='1' onchange='document.forms.form1.an_id.value=this.form.id.options[this.form.id.selectedIndex].value'>";  
                          
                          echo 
                      "<option value='' selected></option>";
                          while(
                      $row=mysql_fetch_array($ergebnis))
                          {
                              echo 
                      "<option value="."'".$row['id']."'".">".$row['id']."</option><br>";
                          }
                          echo 
                      "</select>";
                          echo 
                      '<input type="submit" name="submit" value="Löschen">';
                      }

                      // Dann bitte aber
                      if(isset($_POST['id'])) 
                      {
                          
                      $sql "DELETE FROM `$name` WHERE id='".$_POST['id']."'";
                          echo 
                      $sql;
                          
                      $query mysql_query($sql) or die(mysql_error()); 
                      }

                      ?>
                      Sunshine CMS
                      BannerAdManagement
                      Borlabs - because we make IT easier
                      Formulargenerator [color=red]Neu![/color]
                      Herkunftsstatistik [color=red]Neu![/color]

                      Kommentar


                      • #12
                        Jetzt erhalte ich schon eine Ausgabe.

                        DELETE FROM `Test` WHERE id=''

                        Aber warum zum Teufel wird id nicht definiert?

                        Kommentar


                        • #13
                          füge das mal an Anfang deiner Datei
                          PHP-Code:
                          echo "<pre>";
                          print_r($_POST);
                          echo 
                          "</pre>"
                          und prüfe, ob ID vorhanden ist oder nicht.
                          Sunshine CMS
                          BannerAdManagement
                          Borlabs - because we make IT easier
                          Formulargenerator [color=red]Neu![/color]
                          Herkunftsstatistik [color=red]Neu![/color]

                          Kommentar


                          • #14
                            Original geschrieben von theaims
                            Ich verstehe nicht ganz warum es nicht geht. ID muss doch gesetzt werden oder?
                            Denk mal nach, wann diese while-Schleife
                            PHP-Code:
                            while($row=mysql_fetch_array($ergebnis)) 
                            beendet wird, und was $row danach für einen Inhalt hat.
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              @wahsaga: das ist schon geklärt. Die ID solll von der Dropdownliste gesetzt werden und den jeweiligen Eintrag löschen.
                              Deswegen heißts auch mittlerweile $_POST['id'];
                              Sunshine CMS
                              BannerAdManagement
                              Borlabs - because we make IT easier
                              Formulargenerator [color=red]Neu![/color]
                              Herkunftsstatistik [color=red]Neu![/color]

                              Kommentar

                              Lädt...
                              X