Datensatz löschen

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

  • Datensatz löschen

    Ich habe folgendes Problem, habe ein Formular, wo ich mir alle Datensätze der Datenbank anzeigen lasse, wähle dann mit dem radiobutton ein datensatz aus und möchte diesen löschen, aber beim 2.formular erscheint immer "Der Datensatz wurde nicht gelöscht". Finde leider meinen Fehler nicht, kann mir event. jmd helfen.

    Formular 1(zur Auswahl aller Datensätze)
    PHP-Code:
    <html>
    <link rel="stylesheet" type="text/css" href="style.css">
    <title>Datensatz löschen</title>
    <body background="hell.jpg">
    <div align="center"><b><font size="+1">Wählen Sie aus, welcher Datensatz gelöscht 
      werden soll!</font></b> </div>
    <p>
    <form action = "uf17b.php" method = "post">
    <?php

       $db 
    mysql_connect("Grafik","root","");
       
    $res mysql_db_query("veranstaltungen","select * from daten");
       
    $num mysql_num_rows($res);

       
    // Tabellenbeginn
        
    echo "<table border=\"1\">";

       
    // Überschrift
       
    echo "<tr bgcolor=\"#e7e7e7\" align=center style=\"FONT-WEIGHT: bold\"><td>Auswahl</td><td>Veranstalter</td>";
       echo 
    "<td>Telefonnummer</td><td>Datum_Beginn</td>";
       echo 
    "<td>Datum_Ende</td><td>Uhrzeit_Beginn</td>";
       echo 
    "<td>Uhrzeit_Ende</td><td>eMail</td>";
       echo 
    "<td>Informationen</td><td>Konzert</td>";
       echo 
    "<td>Fest</td><td>Ausstellung</td>";
       echo 
    "<td>sonstiges</td><td>Meiningen</td>";
       echo 
    "<td>Coburg</td><td>Bamberg</td>";
       echo 
    "<td>Heldburg</td><td>Kloster_Veßra</td>";
       echo 
    "<td>SiteHeldburg</td><td>sitebad_colberg_heldburg</td></tr>";

       for (
    $i=0$i<$num$i++)
       {
          
    $id mysql_result($res$i"id");
          
    $vr mysql_result($res$i"Veranstalter");
          
    $tn mysql_result($res$i"Telefonnummer");
          
    $db mysql_result($res$i"Datum_Beginn");
          
    $de mysql_result($res$i"Datum_Ende");
          
    $ub mysql_result($res$i"Uhrzeit_Beginn");
          
    $ue mysql_result($res$i"Uhrzeit_Ende");
          
    $em mysql_result($res$i"eMail");
          
    $in mysql_result($res$i"Informationen");
          
    $ko mysql_result($res$i"Konzert");
          
    $fe mysql_result($res$i"Fest");
          
    $au mysql_result($res$i"Ausstellung");
          
    $so mysql_result($res$i"sonstiges");
          
    $me mysql_result($res$i"Meiningen");
          
    $co mysql_result($res$i"Coburg");
          
    $ba mysql_result($res$i"Bamberg");
          
    $he mysql_result($res$i"Heldburg");
          
    $kv mysql_result($res$i"Kloster_Veßra");
          
    $sh mysql_result($res$i"SiteHeldburg");
          
    $sb mysql_result($res$i"sitebad_colberg_heldburg");

          
    // Tabellenzeile mit -zellen
          
    echo "<tr align=center> <td><input type='radio' name='auswahl'";
          echo 
    " value='$id'></td><td bgcolor=\"#ffffff\">$vr</td><td bgcolor=\"#ffffff\">$tn</td> <td bgcolor=\"#ffffff\">$db</td>";
          echo 
    "<td bgcolor=\"#ffffff\">$de</td> <td bgcolor=\"#ffffff\">$ub</td> <td bgcolor=\"#ffffff\">$ue</td>";
          echo 
    "<td bgcolor=\"#ffffff\">$em</td> <td bgcolor=\"#ffffff\">$in</td> <td bgcolor=\"#ffffff\">$ko</td>";
          echo 
    "<td bgcolor=\"#ffffff\">$fe</td> <td bgcolor=\"#ffffff\">$au</td> <td bgcolor=\"#ffffff\">$so</td>";
          echo 
    "<td bgcolor=\"#ffffff\">$me</td> <td bgcolor=\"#ffffff\">$co</td> <td bgcolor=\"#ffffff\">$ba</td>";
          echo 
    "<td bgcolor=\"#ffffff\">$he</td> <td bgcolor=\"#ffffff\">$kv</td> <td bgcolor=\"#ffffff\">$sh</td>";
          echo 
    "<td bgcolor=\"#ffffff\">$sb</td> </tr>";
       }

       
    // Tabellenende
       
    echo "</table>";

       
    mysql_close();
    ?>
       <p>
       <input type="submit" value="Datensatz löschen">
    </form>
    </body>
    </html>
    Formular, zeigt an ob Datensatz gelöscht wurde, wenn nciht fehlermeldung
    PHP-Code:
    <html>
    <body>
    <?php

    if ($HTTP_POST_VARS['auswahl'])
    {
       
    $db mysql_connect("Grafik","root","")or die(mysql_error());
       
    mysql_select_db("veranstaltungen") or die(mysql_error());
       
    $sqlab "delete from daten where";
       
    $sqlab .= " id = '$auswahl'";

       
    mysql_db_query("id"$sqlab);
       
       
    $num mysql_affected_rows();
       if (
    $num>0)
          echo 
    "Der Datensatz wurde gelöscht<p>";
       else
          echo 
    "Der Datensatz wurde nicht gelöscht<p>";

       
    mysql_close($db);
    }
    else
       echo 
    "Es wurde kein Datensatz ausgewählt<p>";

    ?>
    Zurück zur <a href="uf17a.php">Auswahl</a>

    </body>
    </html>

  • #2
    PHP-Code:
    mysql_db_query("id"$sqlab); 
    sicher dass da die syntax stimmt?
    heißt deine datenbank "id" ?
    http://www.php.net/manual/de/functio...l-db-query.php

    nimm doch einfach mal mysql_query($sqlab);
    dann gibst du vorher noch das statement aus mit echo $sqlab;
    und hintendran hängst du noch ne fehlermeldung (falls vorhanden, so dass aus
    PHP-Code:
    mysql_db_query("id"$sqlab); 
    das hier wird
    PHP-Code:
    echo $sqlab;
    mysql_query($sqlab) or die(mysql_error()); 
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      also

      ich habe mal ne Frage, Er löscht den Datensatz aus der Datenbank, schreibt mir nur was falsches hin--> der Löschvorgang funktioniert.

      Könnte es daran liegen, das ich meine Datensätz über mysql gelöscht habe und wenn ich jetzt einen neuen eingeben, dann wird die id immer noch weiter gezählt, der nächste wäre jetzt 28 obwohl ich nur einen eintrag in der datenbank habe.

      bei der ausgabe bekomme ich jetzt folgendes

      delete from daten where id = '27'Der Datensatz wurde nicht gelöscht
      Zurück zur Auswahl

      der datensatz wurde aber gelöscht, wenn ich nachschaue, wurde er aus der datenbank entfernt.

      habe für formular 2 jetzt folgenden quelltext:
      PHP-Code:
      <html>
      <body>
      <?php

      if ($HTTP_POST_VARS['auswahl'])
      {
         
      $db mysql_connect("Grafik","root","")or die(mysql_error());
         
      mysql_select_db("veranstaltungen") or die(mysql_error());
         
      $sqlab "delete from daten where";
         
      $sqlab .= " id = '$auswahl'";
             echo 
      $sqlab;
             
      mysql_query($sqlab) or die(mysql_error());
             
      mysql_db_query("veranstaltungen"$sqlab);
         
         
      $num mysql_affected_rows();
         if (
      $num>0)
            echo 
      "Der Datensatz wurde gelöscht<p>";
         else
            echo 
      "Der Datensatz wurde nicht gelöscht<p>";

         
      mysql_close($db);
      }
      else
         echo 
      "Es wurde kein Datensatz ausgewählt<p>";

      ?>
      Zurück zur <a href="uf17a.php">Auswahl</a>

      </body>
      </html>

      Kommentar


      • #4
        PHP-Code:

        <html>
        <body>
        <?php

        if ($HTTP_POST_VARS['auswahl'])
        {
           
        $db mysql_connect("Grafik","root","")or die(mysql_error());
           
        mysql_select_db("veranstaltungen") or die(mysql_error());
           
        $sqlab "delete from daten where";
           
        $sqlab .= " id = '$auswahl'";
               echo 
        $sqlab;
               
        mysql_query($sqlab) or die(mysql_error());
               
        // mysql_db_query("veranstaltungen", $sqlab);
           
           
        $num mysql_affected_rows();
           if (
        $num>0)
              echo 
        "Der Datensatz wurde gelöscht<p>";
           else
              echo 
        "Der Datensatz wurde nicht gelöscht<p>";

           
        mysql_close($db);
        }
        else
           echo 
        "Es wurde kein Datensatz ausgewählt<p>";

        ?>
        Zurück zur <a href="uf17a.php">Auswahl</a>

        </body>
        </html>
        und jetzt?

        Kommentar


        • #5
          diese ausgabe

          delete from daten where id = '35'Der Datensatz wurde gelöscht

          weiteren Datensatz Löschen


          Ich glaube ich werde einfach diese zeilen vertauschen
          PHP-Code:
          $num mysql_affected_rows();
             if (
          $num>0)
                echo 
          "Der Datensatz wurde gelöscht<p>";
             else
                echo 
          "Der Datensatz wurde nicht gelöscht<p>"
          zu
          PHP-Code:
          $num mysql_affected_rows();
             if (
          $num>0)
                echo 
          "Der Datensatz wurde nicht gelöscht<p>";
             else
                echo 
          "Der Datensatz wurde gelöscht<p>"
          (OK, Scherz) - aber ich verstehe es irgendwie nicht, woran es liegen könnte.

          Kommentar


          • #6
            War das die Reaktion auf meinen Beitrag?

            Vielleicht hast Du es nicht bemerkt, ich habe in Deinem Skript eine Zeile eliminiert
            // mysql_db_query("veranstaltungen", $sqlab);


            Du schreibst jetzt:
            delete from daten where id = '35'Der Datensatz wurde gelöscht

            Ist das nicht das was Du wolltest?

            Ich bin nun etwas

            Kommentar


            • #7
              affected rows bezieht sich auf die letzte db abfrage,
              aber du hast nach dem löschen nochmal eine abfrage, wenn du die zeilen nur vertauscht würde dann wenn was schiefgeht da stehen dass er gelöscht wurde.
              hand seine lösung ist schon richtig. aber wenn du diese auskommentierte zeile unbedingt brauchst machs so:

              PHP-Code:
                 $sqlab "delete from daten where";
                 
              $sqlab .= " id = '$auswahl'";
                     echo 
              $sqlab;
                     
              mysql_query($sqlab) or die(mysql_error());
                     
              $num mysql_affected_rows();
                     
              mysql_db_query("veranstaltungen"$sqlab);
                 
                 if (
              $num>0)
                    echo 
              "Der Datensatz wurde gelöscht<p>";
                 else
                    echo 
              "Der Datensatz wurde nicht gelöscht<p>"
              die brauchst du allerdings nicht, da sie nochmal das selbe wie mysql_query macht => und da dann ja kein eintrag mehr mit dieser id vorhanden ist ist $num _natürlich_ 0

              Kommentar


              • #8
                Bingo

                Kommentar

                Lädt...
                X