Ankündigung

Einklappen
Keine Ankündigung bisher.

nummerierung bei gb einträgen

Einklappen

Neue Werbung 2019

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

  • nummerierung bei gb einträgen

    hallo und fröhliche weihnachten!

    hab folgendes problem:

    ich hab ein gästebuch das mir der reihe nach die einträge ausgibt!

    jetzt möchte ich die einträge nummeriert haben... quasi das man anhand des letzten eintrags sehen kann, wieviel einträge bisher gemacht wurden.

    das hab ich versucht zu lösen, etwa so:

    Code:
    <?php
    $handle = fopen ("data.dat", "r");
    while (!feof($handle)) {
       $buffer = trim( fgets($handle, 4096) );
       if ( 0 != strlen($buffer) )
       {
          list ($name, $mail, $hp, $icq, $nachricht, $datum, $time, $ip) = split('[|]', $buffer);
    
    $row++;
    ?>
    wenn ich jetzt die variable $row ausgebe... nummeriert er mir zwar die einträge... allerdings in falscher reihenfolge!
    ich müsste jetzt den letzten (bzw. den ältesten) eintrag ansehen um zu wissen wieviel einträge gemacht wurden.

    bisher sieht das so aus: neuer eintrag (an erster stelle -> nr. 1), alter eintrag (an zweiter stelle -> nr. 2)

    es soll aber so aussehen: neuer eintrag (an erster stelle -> nr. 2), alter eintrag (an zweiter stelle -> nr. 1)

    ich denke ihr wisst was ich meine

    vl. kann mir jmd. helfen!

    vielen dank!


  • #2
    Mal davon abgesehen, dass man sowas eigentlich mit einer Datenbank macht, lese die Datei mit file in en Array, dann kannst du auch ermitteln, wieviele Einträge es gibt.

    Gruß
    phpfan

    Kommentar


    • #3
      hmm... ich weiss wie ich die anzahl der einträge wiedergeben kann.

      es geht mir aber um die nummerierung der einträge!

      die gesamtanzahl interessiert mich weniger!

      ok, lösung wäre natürlich "gesamtanzahl - $row + 1"... aber das muss doch auch anders funktionieren!

      Kommentar


      • #4
        Wenn du die Anzahl vor der Ausgabe nicht kennst, kannst du auch nicht rückwärts nummerieren. Das sollte doch soweit eigentlich klar sein, oder?

        Gruß
        phpfan

        Kommentar


        • #5
          hmm... weiss ich nicht =) sonst würde ich ja hier nicht reinposten!

          also... dann doch mit der kleinen matheformel die ich gepostet hab?
          das wäre ja denk ich zumindest ne möglichkeit.

          Kommentar


          • #6
            Sag' mal, spreche ich irgendwie chinesisch oder was ist los?
            lese die Datei mit file in ein Array, dann kannst du auch ermitteln, wieviele Einträge es gibt.
            PHP-Code:
            $data file("datei.txt");
            $count count($data);
            foreach(
            $data as $entry)
            {
               echo 
            "$count.  $entry
            \n"
            ;
               
            $count--;

            Ist das jetzt wirklich so schwer?

            Gruß
            phpfan

            Kommentar


            • #7
              ist ja gut! =))

              ok, jetzt zählt er mir die zeilen runter... schonmal gut.

              nur wenn ich die variable $count in meine schleife einbaue ist der wert immer 0!

              Kommentar


              • #8
                Zitat von Benni
                nur wenn ich die variable $count in meine schleife einbaue ist der wert immer 0!
                Dann machst du wohl was falsch. Da hier niemand Hellseher ist und auch niemand deinen Quellcode kennt, ist hier Ende der Fahnenstange.

                Gruß
                phpfan

                Kommentar


                • #9
                  halt nein! jetzt bringt er mir immer den wert "-5" bei jedem eintrag!

                  code ist hier:

                  Code:
                  <?php
                  $handle = fopen ("data.dat", "r");
                  while (!feof($handle)) {
                     $buffer = trim( fgets($handle, 4096) );
                     if ( 0 != strlen($buffer) )
                     {
                        list ($name, $mail, $hp, $icq, $nachricht, $datum, $time, $ip) = split('[|]', $buffer);
                  
                  $data = file("data.dat"); 
                  $count = count($datei); 
                  foreach($data as $entry) 
                  {
                     echo "$count\n"; 
                     $count--; 
                  } 
                  ?>
                  <table border="0" width="480" cellspacing="0" cellpadding="0"><td background="../images/news_top.gif" height="25"><p style='margin-left:10px; margin-right:10px'><?php echo"#$count Name: $name - $datum - $time"; ?></p></td></tr>
                  <tr><td bgcolor="d2c0ad"><p style='margin:10px; word-break: none; word-wrap: break' align='justify'><?php echo"$nachricht"; ?></p></td></tr>
                  <tr><td background="../images/news_bottom.gif" height="25" align="right"><p style='margin-left:10px; margin-right:10px'>
                  <?php
                  if ($mail=="")
                  {
                  }
                  else {
                  echo"[img]images/mail.gif[/img] ";
                  }
                  if ($hp=="")
                  {
                  }
                  else {
                  echo"[img]images/homepage.gif[/img] ";
                  }
                  if ($icq=="")
                  {
                  }
                  else {
                  echo"<a href=\"http://www.icq.com/".$icq."\"><img src=\"http://web.icq.com/whitepages/online?icq=".$icq."&img=5\" border=\"0\" alt=\"".$icq."\">";
                  }
                  ?>
                  </p></td></tr></table>
                  
                  
                  
                  <?php
                     }
                  }
                  fclose ($handle);
                  ?>

                  Kommentar


                  • #10
                    Ich breche hier gleich zusammen!
                    Willst du dich nicht lieber an den Tannenbaum setzen und das Programmieren für heute lassen? Du hast null, aber wirklich absolut null von dem verstanden, was ich bisher geschrieben habe und das kleine Beispielscript hast du ebenfalls nicht kapiert, sondern einfach mal per Copy/Paste übernommen, ohne auch nur mal etwas nachzudenken? Oder kannst du mir erklären, warum du in deiner Schleife die Datei jedesmal wieder neu in ein Array liest?

                    Dein fopen und fgets kann komplett raus!
                    PHP-Code:
                    <?
                    $data = file("datei.txt"); 
                    $count = count($data); 
                    foreach($data as $entry) 

                       // In $entry steht jetzt das, was du mit fgets einliest
                       // Du kannst statt $entry von mir aus auch $buffer schreiben, wenn du es besser verstehst.
                       // Hier kommt jetzt dein list und die Tabelle hin!
                       $count--; 

                    ?>
                    Gruß
                    phpfan

                    Kommentar


                    • #11
                      ok, also ich erinner dich an deinen überaus geistigen "weihnachtsbaum" spruch wenn du mal dabei bist was zu lernen

                      wenn ich dir jetzt einen text in spanisch vorlege und du zuvor noch nie wirklich spanisch konntest, dann will ich dass du ihn mir fehlerfrei auf anhieb übersetzt alles klar?

                      was ich damit meine... jeder hat seine stärken! also entweder helf mir oder lass es, denn auf sowas kann ich verzichen!

                      peace!

                      code sieht jetzt momentan so aus:

                      Code:
                      <?php
                      $data = file("data.dat"); 
                      $count = count($datei); 
                      foreach($data as $entry) 
                      {
                      list ($name, $mail, $hp, $icq, $nachricht, $datum, $time, $ip) = split('[|]', $entry);
                      ?>
                      <table border="0" width="480" cellspacing="0" cellpadding="0"><td background="../images/news_top.gif" height="25"><p style='margin-left:10px; margin-right:10px'><?php echo"# Name: $name - $datum - $time"; ?></p></td></tr>
                      <tr><td bgcolor="d2c0ad"><p style='margin:10px; word-break: none; word-wrap: break' align='justify'><?php echo"$nachricht"; ?></p></td></tr>
                      <tr><td background="../images/news_bottom.gif" height="25" align="right"><p style='margin-left:10px; margin-right:10px'>
                      <?php
                      if ($mail=="")
                      {
                      }
                      else {
                      echo"[img]images/mail.gif[/img] ";
                      }
                      if ($hp=="")
                      {
                      }
                      else {
                      echo"[img]images/homepage.gif[/img] ";
                      }
                      if ($icq=="")
                      {
                      }
                      else {
                      echo"<a href=\"http://www.icq.com/".$icq."\"><img src=\"http://web.icq.com/whitepages/online?icq=".$icq."&img=5\" border=\"0\" alt=\"".$icq."\">";
                      }
                      ?>
                      </p></td></tr></table>
                      
                      
                      
                      <?php
                         $count--; 
                      } 
                      ?>

                      Kommentar


                      • #12
                        Zitat von Benni
                        also entweder helf mir oder lass es, denn auf sowas kann ich verzichen!
                        Wenn du das Mitdenken komplett abgeschaltet hast, kann man dir nicht helfen, es sei denn, man kaut dir jeden Kleinsch... vor. Aber bitte, damit du Ruhe gibst und vielleicht auch etwas lernst:
                        PHP-Code:
                        <?php 
                        $data 
                        file("data.dat"); 
                        $count count($data); 
                        foreach(
                        $data as $entry

                           list (
                        $name$mail$hp$icq$nachricht$datum$time$ip) = split('[|]'$entry); 

                           if (
                        strlen($mail
                            
                        $mail "[email=' $mail'][img]images/mail.gif[/img][/email] "

                           if (
                        strlen($hp)) 
                            
                        $hp "[url='$hp'][img]images/homepage.gif[/img][/url]"

                           if (
                        strlen($icq)) 
                            
                        $icq "<a href='http://www.icq.com/$icq'>[img]http://web.icq.com/whitepages/online?icq=$icq&img=5[/img]"
                            
                           echo 
                        "<table border='0' width='480' cellspacing='0' cellpadding='0'>
                                  <tr>
                                   <td background='../images/news_top.gif' height='25'>
                                    <p style='margin-left:10px; margin-right:10px'>[b]#[/b]
                        $count[b] Name:[/b] $name - $datum - $time</p>
                                   </td>
                                  </tr> 
                                  <tr>
                                   <td bgcolor='d2c0ad'>
                                    <p style='margin:10px; word-break: none; word-wrap: break' align='justify'>
                        $nachricht</p>
                                   </td>
                                  </tr> 
                                  <tr>
                                   <td background='../images/news_bottom.gif' height='25' align='right'>
                                    <p style='margin-left:10px; margin-right:10px'>
                        $mail $hp $icq</p>
                                   </td>
                                  </tr>
                                 </table>\n"
                        ;
                                 
                           
                        $count--;

                        ?>
                        Das ist ungetestet und lässt sich bestimmt auch noch optimieren, aber wir wollen es jetzt aber hier nicht übertreiben.

                        Gruß
                        phpfan

                        Kommentar


                        • #13
                          hmmmmm... resultat

                          http://www.nachtgefluester.com/gaest...gaestebuch.php

                          funzt noch immer nicht!

                          Kommentar


                          • #14
                            Da war noch ein Fehler drin!

                            $count = count($data);

                            und nicht

                            $count = count($datei);

                            Du musst mir aber jetzt mal erklären, warum du das nicht selber gesehen hast, denn das hat doch nichts damit zu tun, das du Anfänger bist. Man muss solche Kleinigkeiten auch als Anfänger erkennen können und nicht umsonst habe ich ungetestet geschrieben!

                            Gruß
                            phpfan

                            Kommentar


                            • #15
                              ok, da muss ich mir wohl eingestehen dass ich das hätte sehen müssen.

                              unter dem oben genannten link kann man das resultat sehen.

                              funktioniert!

                              recht herzlichen dank!

                              Kommentar

                              Lädt...
                              X