Datenbankeinträge löschen

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

  • Datenbankeinträge löschen

    Hi Leute,

    ich habe ein Problem mit folgendem Script:

    PHP-Code:
    <?php
    include("mysql_connect.php");
    echo(
    "
    <form action=\"
    $DOKUMENT_ROOT\" method=\"post\">
    <table border=\"0\">
    <tr>
     <td>Klamm-ID:</td><td align=\"center\"><input name=\"kid\" maxlength=\"20\"></td>
    </tr>
    <tr>
     <td>Lose-Passwort:</td><td align=\"center\"><input name=\"lpw\" type=\"password\" maxlength=\"20\"></td>
    </tr>
    <tr>
     <td align=\"center\" colspan=\"2\">&nbsp</td>
    </tr>
    <tr>
     <td align=\"center\" colspan=\"2\"><input type=\"hidden\" name=\"step2\"</td>
    </tr>
    <tr>
     <td align=\"center\" colspan=\"2\"><input type=\"submit\" value=\"Abschicken\"></td>
    </tr>
    </table>
    </form>
    "
    );


    if(isset(
    $_POST['step2']))
    {

       if(!
    $_POST['kid']){
         die(
    "Bitte Klamm-ID eingeben!"); }
         
         
       if(!
    $_POST['lpw']){
         die(
    "Bitte Lose-Passwort eingeben!");}
         else{
         
              
    $res=mysql_query("SELECT MAX(position) FROM loseballon"); 
              while(
    $row=mysql_fetch_array($res)){
              
    $position $row[0]+1;} 


              
    $check=mysql_query("INSERT INTO loseballon (kid, position) VALUES ('$kid', '$position')"); 
              
              unset(
    $position);
              
              if(!
    $check){
              echo(
    "Du hast in dieser Runde schon mitgespielt!");}
              else{
              echo (
    "Alles klar! Danke f&uuml;r deine Teilnahme!");}
       
              
    $res=mysql_query("SELECT COUNT(position) FROM loseballon"); 
              while(
    $row=mysql_fetch_array($res)){ 
              
    $position $row[0];
              
    $GLOBALS["position"];
              }
              
              if(
    $position 5){
              
    $check=mysql_query("DELETE FROM loseballon WHERE position = 'MIN(*)'");
              }
              if(
    $check){echo"alles klar";}
              
              

               
             }
    }
    ?>

    am ende Prüft es, ob in der Spalte "positionen" mehr als 5 Einträge sind.
    Wenn es mehr sind, soll es den Eintrag mit der kleinsten Zahl bei den positionen Löschen. genau das tut es aber nicht. ich kann es mir nicht erklären...

    Hoffentlich könnt ihr mir helfen...DANKE!

  • #2
    hast du $position mal ausgeben lassen?

    ich weiß ja auch nicht alles:

    was macht das hier:

    WHERE position = 'MIN(*)'

    Kommentar


    • #3
      das soll den kleinsten eintrag in "position" rausfinden.

      Bin was DB´s angeht aber noch absoluter NOOB

      Kommentar


      • #4
        hmm, müsste dann nicht position = min(position) da stehen?

        was ist mit meiner ersten frage? wird der lösch-query überhaupt abgesetzt?

        Kommentar


        • #5
          Ich hätte einen Lösungansatz:

          Erst einmal per Select:
          PHP-Code:
          $sql "SELECT MIN(position) smallest FROM loseballon";
          $quer mysql_query($sql);
          $val mysql_fetch_Array($quer);
          // und den Wert den du dann bekommst:

          $sql "DELETE FROM loseballon WHERE position = '".$val['smallest']."'";
          mysql_query($sql); 
          Ist zwar bestimmt nicht die beste, müsste aber funtzen!
          Für Rechtschreibfehler übernehme ich keine Haftung!

          Kommentar


          • #6
            nee, also bevor ich ne select vorher absetzen muss, dann lieber per ORDER BY, das geht auch 100%.

            Kommentar


            • #7
              dann mit order by, weil min() gibt den Fehler hier raus:

              Code:
              #1111 - Falsche Verwendung der GROUP-Funktion.
              so genug für heut
              Für Rechtschreibfehler übernehme ich keine Haftung!

              Kommentar


              • #8
                so genug für heut
                Dito

                Kommentar


                • #9
                  also der Befehl wird abgesetzt.

                  Das Script sieht jetzt so aus.
                  hab aus der Spalte "position" jetzt auto_increment gemacht.
                  Bringt aber auch nix.

                  PHP-Code:
                  <?php
                  include("mysql_connect.php");
                  echo(
                  "
                  <form action=\"
                  $DOKUMENT_ROOT\" method=\"post\">
                  <table border=\"0\">
                  <tr>
                   <td>Klamm-ID:</td><td align=\"center\"><input name=\"kid\" maxlength=\"20\"></td>
                  </tr>
                  <tr>
                   <td>Lose-Passwort:</td><td align=\"center\"><input name=\"lpw\" type=\"password\" maxlength=\"20\"></td>
                  </tr>
                  <tr>
                   <td align=\"center\" colspan=\"2\">&nbsp</td>
                  </tr>
                  <tr>
                   <td align=\"center\" colspan=\"2\"><input type=\"hidden\" name=\"step2\"</td>
                  </tr>
                  <tr>
                   <td align=\"center\" colspan=\"2\"><input type=\"submit\" value=\"Abschicken\"></td>
                  </tr>
                  </table>
                  </form>
                  "
                  );


                  if(isset(
                  $_POST['step2']))
                  {

                     if(!
                  $_POST['kid']){
                       die(
                  "Bitte Klamm-ID eingeben!"); }
                       
                       
                     if(!
                  $_POST['lpw']){
                       die(
                  "Bitte Lose-Passwort eingeben!");}
                       else{


                            
                  $check=mysql_query("INSERT INTO loseballon (kid) VALUES ('$kid')"); 
                            
                            if(!
                  $check){
                            echo(
                  "Du hast in dieser Runde schon mitgespielt!");}
                            else{
                            echo (
                  "Alles klar! Danke f&uuml;r deine Teilnahme!");}
                     
                            
                  $res=mysql_query("SELECT COUNT(position) FROM loseballon"); 
                            while(
                  $row=mysql_fetch_array($res)){ 
                            
                  $position $row[0];
                            
                  $GLOBALS["position"];
                            }
                            
                            if(
                  $position 5){
                            
                  mysql_query("DELETE FROM loseballon WHERE position = 'MIN(*)'") or die ("Fehler!");
                            }
                            
                            
                            

                             
                           }
                  }
                  ?>

                  Kommentar


                  • #10
                    Sorry, aber es wäre ganz nett, wenn du den Thread etwas mitverfolgen würdest.

                    (oder hast du den code von hand da reingeschrieben und deine antwort kommt jetzt erst )

                    jedenfalls waren damian und ich schon etwas weiter gekommen.

                    Kommentar

                    Lädt...
                    X