Verzweiflung mit Update

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

  • Verzweiflung mit Update

    Hi,

    Ich habe eine Delete-Anweisung, in der ich einen Datensatz anhand der ID löschen kann. Soweit funktioniert es auch. Jetzt möchte ich aber, dass die id's die nach dem Elemt stehen um eins nach oben gezählt werden.
    Auto_increment funzt nicht, da es nicht die gesamtzahl+1 nimmt, sondern die jemals erstellten Datensätze!

    Hier ist der Code:
    $id wird übergeben.
    PHP-Code:
    <?php
    include ('header.php');
    $sql "SELECT * From filme";
    $sql_eintrag mysql_query($sql$verbindung);
    $anzahl mysql_num_rows($sql_eintrag);
    if (
    $id == $anzahl
     {
       
    $sql_loeschen "DELETE From filme WHERE id = '".$id."'";
       
    $eintrag_loeschen mysql_query($sql_loeschen$verbindung);
     }
    else
     {
       
    $sql_loeschen "DELETE From filme WHERE id = '".$id."'";
       
    $eintrag_loeschen mysql_query($sql_loeschen$verbindung);
       while(
    $id $anzahl)
       {
         
    $update_eintrag "update filme set id = '"$id-."' where id = '".$id."'";
         
    $update mysql_query($update_eintrag$verbindung) or die(mysql_error());
         
    $id=$id+1;
       }
     } 
    echo 
    "<center><b>Der Film wurde erfolgreich gelöscht!<br><br><br>
                <a href=\"index.php\">Hier geht's weiter!!!</a><br><br><br><br></b>"
    ;
    include (
    'footer.php');
    ?>
    sobald ich es ausführe wird entweder der letzte gelöscht (funktioniert), oder der mit der entsprechenden ID und alle IDs die höher sind um -1 geuppt(funktioniert nicht). Es wird weder eine Fehlermeldung ausgegeben noch einer der Datensätze geupdated.

    Vielen Dank im vorraus für eure Hilfe

    bAbbA Zwack

  • #2
    nur als info ......

    wenn eine spalte auto_inc ist, und du einen datensatz löschst, hast du eine lücke. na und?

    lass die lücke ne lücke sein. das ist normal und sogar gut so.

    dieses thema hatten wir in der vergangenheit schon sehr oft.

    was hast du denn vor, dass das auto_inc manipuliert werden soll?
    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 |


    Kommentar


    • #3
      Ich möchte alles so übersichtlich wie möglich halten, da die tabelle sehr viele spalten hat und insgesamt auch mehrere tausend datensätze enthalten können soll. Deshalb wäre es sehr gut, wenn die höchste Id auch immer die Anzahl aller Datensätze wiederspiegelt.

      Kommentar


      • #4
        die anzahl der datensätze bekommst du mit

        Code:
        SELECT COUNT(*) anzahl FROM tabelle
        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 |


        Kommentar


        • #5
          Ich weiß, wie ich die Anzahl der Datensätze bekomme, darum geht es nicht. Es soll einfach übersichtlich sein. Sagt mir jetzt jemand, was an dem Code falsch ist, oder nicht?

          Kommentar


          • #6
            jetzt werd mal nicht patzig hier.

            du hast den sinn eines feldes mit auto_inc nämlich nicht wirklich verstanden.

            also was willst du damit bezwecken, dort werte zu ändern?
            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 |


            Kommentar


            • #7
              jetzt werd mal nicht patzig hier
              Ich will eigentlich meine eigene Auto_inc variante haben. Das Feld ID ist in meiner Datenbank nicht selbst zählend. Ich finde einfach, das die höchste ID immer die Aktuelle Anzahl aller Datensätze wiederspiegeln soll. Wobei ich die ID nicht dazu benutzen will, die Anzahl aller Datensätze anzuzeigen. Könnte mir jetzt endlich bitte jemand Helfen???

              Danke

              Kommentar


              • #8
                Naja, leider haben wir die dumme angelegenheit die User nicht bei ihren Dummheiten zu unterstützen.

                Nenne mir ein pro für deine Version. Bitte mit sinnvoller Begründung, und du bekommst min 3 Cons, ebenfalls mit Begründung.

                Und wie Abraxax schon sagte:
                jetzt werd mal nicht patzig hier
                Denn schließlich bist du es, der Hilfe erwartet. Das Forum wird von uns Freiwillig betreut. Und das nicht gerade, weil wir nichts zu tun haben. Allso pass dich ein bisschen den gegebenheiten an. Bitten kannst du gerne, drängeln ist in einem Forum absolut tabu!!!

                Kommentar


                • #9
                  Danke für die Hilfe Leute!

                  Kommentar


                  • #10
                    Danke für die Hilfe Leute!
                    Das kommt in eine Forum doch viel besser. Gern geschehen!

                    Kommentar


                    • #11
                      setz mal:
                      PHP-Code:
                      $id=$id+1
                      an den Anfang der while-Schleife, sonst ist der erste Datensatz den du updaten willst der den du gelöscht hast.In dem Fall geht die while-schleife nur bis $anzahl -1.

                      Offe

                      Kommentar


                      • #12
                        Vielen Dank, hatte zwar noch einen Fehler drin, hat jetzt aber gefunzt!
                        Der Quellcode sieht jetzt so aus:
                        PHP-Code:
                        <?php
                        include ('header.php');
                        if (
                        $submit == "go")
                         {
                        $sql "SELECT * From filme";
                        $sql_eintrag mysql_query($sql$verbindung);
                        $anzahl mysql_num_rows($sql_eintrag);
                        if (
                        $id == $anzahl
                         {
                           
                        $sql_loeschen "DELETE From filme WHERE id = '".$id."'";
                           
                        $eintrag_loeschen mysql_query($sql_loeschen$verbindung);
                         }
                        else
                         {
                           
                        $sql_loeschen "DELETE From filme WHERE id = '".$id."'";
                           
                        $eintrag_loeschen mysql_query($sql_loeschen$verbindung);
                           while(
                        $id $anzahl)
                           {
                             
                        $id=$id+1;
                             
                        $var=$id-1;
                             
                        $update_eintrag "update filme set id = '".$var."' where id = '".$id."'";
                             
                        $update mysql_query($update_eintrag$verbindung) or die(mysql_error());
                           }
                         } 
                        echo 
                        "<center><b>Der Film wurde erfolgreich gelöscht!<br><br><br>
                                    <a href=\"index.php\">Hier geht's weiter!!!</a><br><br><br><br></b>"
                        ;
                         }
                        else
                         {
                        echo 
                        "<center><b>Soll der Film wirklich gelöscht werden?<br><br><br>
                                    <a href=\"delete_movie?id="
                        .$id."&submit=go\">Ja</a> | <a href=\"index.php\">Nein</a><br><br><br><br></b>";
                         }
                        include (
                        'footer.php');
                        ?>
                        Merci Offe1

                        Ach ja, und Danke an Tobiaz und Abraxax für die schnelle Hilfe, aber gottseidank gibt es auch noch Leute wie Offe1 die einfach die gestellte Frage aktzeptieren und helfen das Problem zu lösen!

                        Kommentar


                        • #13
                          Original geschrieben von bAbbAZwack
                          Ach ja, und Danke an Tobiaz und Abraxax für die schnelle Hilfe, aber gottseidank gibt es auch noch Leute wie Offe1 die einfach die gestellte Frage aktzeptieren und helfen das Problem zu lösen!
                          gern geschehen.

                          wir wollen aber richtig helfen und gar nicht erst die dinge behandeln, die eh böse sind.
                          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 |


                          Kommentar


                          • #14
                            Immer wieder! Ich steh dazu!

                            Offe ist noch neu, was nichts negatives ist. Und ich möchte ihn auch sehr für sein Engagement hier loben. Ich finde du machst dich hier richtig gut Offe! Dickes PLUS an dich!!! Sowas muss ja auch mal gesagt werden. Früher oder später werden aber auch dir einige Fragensteller (u. a. auch sog. oneway-Poster) mit ihrem Verhalten etwas gegen den Strich gehen.

                            Kommentar


                            • #15
                              Ich finde du machst dich hier richtig gut Offe! Dickes PLUS an dich!!!
                              Danke. Hört man gerne .

                              Offe

                              Kommentar

                              Lädt...
                              X