einträge durchnummerieren lassen

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

  • einträge durchnummerieren lassen

    Hallöchen Leute,

    ich bin noch anfänger und wie so oft, fehlt mir hier scheinbar der richtige denkanstoß...... geschweige denn die Lösung einige profiposter kennen mich ja schon


    die suche habe ich vorher auch fleißig genutzt, und auch gesehen, dass viele dieses ähnliche problem hatten/haben,...... aber entweder wurden den nen kompletter code gepostet, oder mich bringt der rundrum code total durcheinander



    aber mal zum thema :

    ich habe eine Datenbankabfrage und kann die Ausgabe auch über seiten verteilen..mit "blätter"-funktion..dank unserer Powerposter .... für die ausgabe habe ich eine tabelle in einer while schleife..... und lasse pro seite 10 ergebnisse ausgeben mit limit.... aber wie schaffe ich es, dass mir die Eintäge durchnummeriert werden ? ich habs natürlich schon probiert das "id" zu nutzen, dass ich ja standartmäßig mit einfüge.... aber wenn ich da nen eintrag lösche, dann geht diese nummer der nummerierung ja verloren.....und so stimmt die position natürlich nicht mehr mit den id´s überein....wie erreiche ich es, dass dieses tabelle sich richtig nummeriert..nach anzahl und nicht nach id ? aber wennich umblättere, soll diese nächsten einträge nicht wieder mit 1-10 nummeriert werden sondern von 11-20 usw die einträge sollen also der reihe nach und nach anzahl gezählt werden
    bei 40 einträgen müssen also über 4 seiten die nummerieungen von 1-40 zu sehen sein



    kann mir da jemand den entscheidnen hinweis geben ????
    wäre echt lieb !!!


    grüße aus Berlin,
    Olli

  • #2
    Lass doch einen Counter mitlaufen. Der Startpunkt ist dann einfach die Zahl, die bei dem Limit an erster Stelle steht. Und dann zählst du immer einen mit rauf...
    mfg
    Günni


    Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
    Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
    Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
    City-Tiger - Online durch die Straßen tigern...

    Kommentar


    • #3
      Ich habs raus bekommen.
      Ist eigentlich recht logisch *fg*

      Hier mal mein Code...

      PHP-Code:
      // Hier werden die Einträge angezeigt
        
      $start $_GET['start'] ? $_GET['start']:0;
        
      $count mysql_query("SELECT * FROM $table order by datum");
        
      $query "select * from $table order by datum desc LIMIT $start,$anzahl";
        
      $result mysql_query($query);
        
      $x mysql_num_rows($count)-$start;    // Das -$start ist es !!!
        
      if (mysql_num_rows($result)) {
          while(
      $row=mysql_fetch_array($result)) {

      .....  
      //Hier lasse ich die Einträge anzeigen      flush();

      --$x;   // Hier wird immer 1er abgezogen  (Bei mir wegen rückwärtsnummerierung. Ansonsten $x++
      }

      Ich hoffe das hilft Dir weiter.
      Gruß

      Majjo

      Kommentar


      • #4
        Original geschrieben von Günni
        Lass doch einen Counter mitlaufen. Der Startpunkt ist dann einfach die Zahl, die bei dem Limit an erster Stelle steht. Und dann zählst du immer einen mit rauf...
        ob das aber geht, weiß ich noch nicht

        cool.diesen denkansatz hatt eich auch......
        mein ergebnis wäöre dazu
        echo $start + 1 + $tr_color_counter;

        Kommentar


        • #5
          Original geschrieben von Majjo
          Ich habs raus bekommen.
          Ist eigentlich recht logisch *fg*

          Hier mal mein Code...

          PHP-Code:
          // Hier werden die Einträge angezeigt
            
          $start $_GET['start'] ? $_GET['start']:0;
            
          $count mysql_query("SELECT * FROM $table order by datum");
            
          $query "select * from $table order by datum desc LIMIT $start,$anzahl";
            
          $result mysql_query($query);
            
          $x mysql_num_rows($count)-$start;    // Das -$start ist es !!!
            
          if (mysql_num_rows($result)) {
              while(
          $row=mysql_fetch_array($result)) {

          .....  
          //Hier lasse ich die Einträge anzeigen      flush();

          --$x;   // Hier wird immer 1er abgezogen  (Bei mir wegen rückwärtsnummerierung. Ansonsten $x++
          }

          Ich hoffe das hilft Dir weiter.
          naja.......in $x wird die anzahl der einträge auf der seite errechnet und dann wird der Limit wert abgezogen ? oder wie ???



          ich hab so einen ansatz :echo $start + 1 + $tr_color_counter;
          das $tr_color_counter dient ja nur zum farbwechsel für jede tabzeile.


          vielleicht brauch ich noch nen paar minuten nach dem ich wach geworden bin
          im moment ist das alles chinesisch für mich muss mir wohl mal was aufn kopf falles lassen
          Zuletzt geändert von olli2jasmin; 16.03.2003, 13:02.

          Kommentar


          • #6
            ich hab auch die Lösung gefunden für mich .....

            ich hab das $start von limit genutzt, um für jede seite nen startwert des ersten eintrags zu erhalten..... bei 5 ergebnisse pro seite ist das 0,5,10 usw....

            aus diesem wert habe ich in meiner schleife eine rechenoperation erstellt
            .($start+$tr_color_counter).

            komplette schleife :



            PHP-Code:
            while ( $datensatz mysql_fetch_array$ergebnis ) )  # aus $ergebnis wird solange ein Array erzeugt, wie durch Limit festgelegt wurde.
                                                                     # die folgenden Printanweisungen geben nur bestimmte Felder der Tabelle wieder.
                
            {    if (($tr_color_counter++ % 2) != 0) {           # Farbwechsel der tabellenzeile
              
            $trbg="#EFEFEF";
            } else {
              
            $trbg="#C0C0C0";
            }
              print 
            " <tr bgcolor=\"$trbg\">\n";
              echo 
            "<td width=\"31\"><font color=\"#000000\" size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\">".($start+$tr_color_counter)." </font></td>";
              echo  
            "<td width=\"85\"><font color=\"#000000\" size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\"> ".$datensatz["name"]."</font></td> ";
              echo  
            "<td width=\"78\"><font color=\"#000000\" size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\"> ".$datensatz["telefon"]."</font></td> ";
              echo  
            "<td width=\"99\"><font color=\"#000000\" size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\" >".$datensatz["handy"]."</font></td> ";
              echo  
            "<td width=\"131\"><font color=\"#000000\" size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\">".$datensatz["mail"]."</font></td> ";
              print   
            "</tr>\n";}
              print 
            "</table>\n"

            Kommentar

            Lädt...
            X