Id neu sortieren

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

  • Id neu sortieren

    Hi Leute ich bins mal wieder die kleine Leuchte!
    Hab ein kleines Problem.

    Bei meinem Gästebuch zeige ich natürlich ich auch der wievielte Eintrag das ist. Jetzt lösche ich aber einen Eintrag: Zb. ich habe 3 Einträge dann lösche ich Eintrag Nr. 2 danach steht:
    1 <-- Erster Eintrag mit dem richtigen Nr!
    3 <-- Jetzt ist es eigentlich der 2 Eintrag aber hatt immer noch die falsche Nr.

    Nunja der Fehler ist mir sonnenklar da kann man das in Phpmyadmin offensichtlich ansehen. Da die Id bei 3 Bleibt.
    Nur kann ich doch das nicht so stehen lassen. Dann lösche ich Beitrag Nr. 2 und dann steht bei Beitrag Nr. 3 das es Beitrag Nr.3 ist was aber eigentlich nicht mehr stimmt. Jeder kann dann halt sehen das ein Eintrag fehlt und das find ich nicht so toll.

    Wie kann ich das beheben?
    Id neu sortieren oder so was?

    Greeez starchild
    PHP Anfänger

  • #2
    nein. laß die ids unberührt.

    berechne aus der anzahl der seiten/einträge pro seite die nummer des eintrags.
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      Hmm das wird aber ein bisschen komplizierter für mich als anfänger.

      Gibt es sonst noch eine möglichkeit?
      PHP Anfänger

      Kommentar


      • #4
        Kannst Du mit diesem Schnipsel etwas anfangen?

        PHP-Code:
        <?php 

        $total 
        100 // Hier wert ermitteln ; 

        $proseite 10 // Anzahl der Eintraege pro Seite 
        $anzseiten 10 // Anzahl der Links die angezeigt werden. 
        $seite = (isset($seite)) ? abs((int)$seite) : 1

        echo 
        "Das 'MySql-limit' ist: ... LIMIT ".(($seite-1)*$proseite ).",".$proseite."<br>\n<br>\n" 


        //------ 
        $seitentotal ceil($total/$proseite) ; 
        $start floor($seite $anzseiten/2) ; 
        $start =   $start <= ?  $start 
        $end = ($start $anzseiten-1)   ; 
        $end =   $end >= $seitentotal ?  $seitentotal $end 

        // ausgabe der Links 
        if ($seite 1
            
        printf ('<a href="gb.php?seite=%s">&lt;&lt;</a> ',$seite-1); // seiten.php anpassen 
        if ($start 1
            
        printf ('<a href="seiten.php?seite=%s">%s</a>... ',1,1); // gb.php anpassen 
        for ($i $start$i <= $end ;$i++){ 
            if(
        $i==$seite){ 
               
        printf ("=%s= ",$i);  // Aktuelle Seite nicht als Link ausgeben
            
        }else{ 
               
        printf ('<a href="gb.php?seite=%s">%s</a> ',$i,$i); // gb.php anpassen 
            


        if (
        $end $seitentotal
            
        printf (' ...<a href="seiten.php?seite=%s">%s</a> ',$seitentotal,$seitentotal); // gb.php anpassen 

        if ($seite $seitentotal
            
        printf ('<a href="seiten.php?seite=%s">&gt;&gt;</a> ',$seite+1); // gb.php anpassen 
        // ende der ausgabe 

        ?>

        Gruß

        David
        Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.

        Kommentar


        • #5
          das leuchtet mir so halbs ein.
          Aber das ist doch "nur" nen seitenumbruch das hab ich ja auch nur ein bisschen anders (einfacher)!
          PHP Anfänger

          Kommentar


          • #6
            Original geschrieben von starchild
            das leuchtet mir so halbs ein.
            Aber das ist doch "nur" nen seitenumbruch das hab ich ja auch nur ein bisschen anders (einfacher)!
            wenn du das schon hast, wo ist dann das problem, einen zähler in der ausgabe mitlaufen zu lassen?
            Kissolino.com

            Kommentar


            • #7
              Und wie sollte der zähler aussehen? Ich weiss das sollte ich selber wissen.
              Mit einem Schnipsel sollte ich es schaffen denke ich!
              PHP Anfänger

              Kommentar


              • #8
                PHP-Code:
                $zaehler=1;
                while(
                blabla)
                {
                      echo 
                $zaehler;
                      echo 
                'was anderes';
                      
                $zaehler++;

                ^^ so in etwa. für jede seite, die kommt must du natürlich den startwert verändern.
                Kissolino.com

                Kommentar


                • #9
                  PHP-Code:
                  // Anzahl aller Datensätze 
                  $query mysql_query("SELECT * FROM $table_gaestebuch");
                  $result mysql_num_rows($query);

                  // Anzahl der Seiten
                  $pages ceil($result $entries_per_page);

                  // "LIMIT" definieren 
                  if (empty($_GET['seite']))
                  {
                      
                  $query_string $entries_per_page;
                  }
                  else
                  {
                      
                  $the_start $_GET['seite'] * 
                  $entries_per_page $entries_per_page;
                        
                  $query_string $the_start.','
                  .$entries_per_page;

                  Danach braucht es natürlich noch ne Navigation:
                  PHP-Code:
                  if (!isset($_GET['seite']))
                  {
                      if (
                  $pages != 1)
                         {
                              
                  $string['1'] = 
                  '<a href = "/index2.php?path=gb&seite=2">Seite vorwärts</a>';
                              echo 
                  $string['1'];
                         }
                  }
                  else
                  {
                         if (
                  $_GET['seite'] != 1)
                         {
                               
                  $string['2'] = '<a href = "/index2.php?path=gb&seite=
                  '
                  .round($_GET['seite'] - 1).'"><br>Neuere Einträge</a>';
                               echo 
                  $string['2'];
                         }
                         if (
                  $_GET['seite'] < $pages)
                         {
                               
                  $string['1'] = '<a href = "/index2.php?path=gb&seite=
                  '
                  .round($_GET['seite'] + 1).'"> Ältere Einträge</a>';
                               echo 
                  $string['1'];
                         }

                  Sorry aber ich hab keine ahnung wie genau das funzen soll mit dem zähler!Wo müsste ich den einbauen und was kommt da bei der while schleife rein?
                  PHP Anfänger

                  Kommentar


                  • #10
                    beantworte dir die fragen:

                    - wo gibst du deine gästebuch einträge aus?
                    - wo willst du die nummern VOR den einträgen haben?
                    - wo ist in dem umfeld eine while-schleife
                    - was passiert in dieser?
                    - warum?
                    - was könntest du wo ergänzen?

                    btw: dein code da oben ist für die beantwortung der fragen nur von geringerer bedeutung wichtig.
                    Kissolino.com

                    Kommentar


                    • #11
                      - wo gibst du deine gästebuch einträge aus?
                      Meine Einträge gebe ich ober der Ausgabe der Seitenberechnung aus.
                      Doch die Seitenanzahl berechne ich vor der Ausgabe.
                      $query1 = "SELECT * FROM $table ORDER BY id DESC limit {$query_string}";
                      $result1 = mysql_query($query1);
                      So fängt meine Ausgabe an geht danach weiter mit search + replace für smilies danach ne while schleife:
                      PHP-Code:
                      while($row mysql_fetch_assoc($result1))
                      {
                      $inhalt str_replace($search$replace$row['inhalt']); 
                      // text replacen für smilies
                      $writetime strftime('%d. %m %Y um %H : %M'$row['zeit']); 
                      - wo willst du die nummern VOR den einträgen haben?
                      Die Nummerierung der Einträge möcht ich in der Ausgabe haben.
                      Welche ich mit Tabellen gestaltet habe weil es mit css zu schwer ist zumindest mal für mich als Php Anfänger.
                      Obwohl ich ein Layout ohne tabellen coden kann.
                      PHP-Code:
                      echo "<td colspan=\"2\" style=\"border-bottom-width:1px;border-bottom-style:solid;
                      border-bottom-color:#000000;\">Eintrag Nr:"
                      $result
                      - wo ist in dem umfeld eine while-schleife
                      Das habe ich denke mit der ersten Antwort schon beschrieben wenn nicht pls. sagen!
                      - was passiert in dieser?
                      In dieser finde die richtige Ausgabe statt der Daten. Ich gebe dort die Daten mit echo und den Tabellen aus.
                      - warum?
                      Also von vorne her würde das so auf deutsch heissen:
                      $query1 = "SELECT * FROM $table_gaestebuch ORDER BY id
                      DESC limit {$query_string}";
                      $query1 ist gleich wie abfrage von tabelle xxx Ordne bei ID nach dem limit von $query_string.

                      $result1 = mysql_query($query1);
                      $result1 ist gleich wie mysql_query($query1);

                      while($row = mysql_fetch_assoc($result1))
                      {
                      Weil $row gleich ist wie mysql_fetch_assoc($result1))
                      geben wir mal das Resultat aus !

                      - was könntest du wo ergänzen?
                      richtiger zähler
                      evtl. Sicherheitslücken beheben!
                      Bessere einstellungen der Tabellen.

                      Ich hoff ich hab das richtig beantwortet!
                      Hab das GB schon selber gemacht!

                      greeez starchild

                      EDIT:
                      Kann mir wer helfen bitte?
                      Zuletzt geändert von starchild; 14.08.2005, 18:02.
                      PHP Anfänger

                      Kommentar

                      Lädt...
                      X