Martin: max. Einträge pro Seite für ein Gästebuch

Hallo liebe Leute

mich interessiert wie ich bei einem Gästebuch mir nicht mehr wie 10 Einträge pro Seite anzeigen lassen kann und dann automatisch wenn es mehr sind ein link zur nächsten seite angezeigt wird.
Ich habe mir zum testen mal andere php gästebücher angeschaut doch ich finde da leider keinen Ansatz.
Es wäre nett wenn mir einer mal das Grundprinzip erklärt.

Vielen herzlichen Dank an alle die sich bemühen einem Anfänger zu helfen.
Ciao Martin

  1. Hi,

    mich interessiert wie ich bei einem Gästebuch mir nicht mehr wie

    als

    10 Einträge pro Seite anzeigen lassen kann und dann automatisch wenn es mehr sind ein link zur nächsten seite angezeigt wird.

    Schritt 1: Nur die (maximal) 10 gewünschten Einträge auslesen und darstellen.

    Schritt 2: Über einen URL-Parameter ermöglichen, den Begriff "gewünscht" zu spezifizieren. Hat Einfluss auf Schritt 1.

    Schritt 3: Auf jeder Seite Link mit diesem URL-Parameter generieren.

    Es wäre nett wenn mir einer mal das Grundprinzip erklärt.

    Ich hoffe, es ist Dir nun ein wenig klarer. Wenn nicht, sage bitte, an welcher Stelle Du noch Verständnisschwierigkeiten hast.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  2. Hi,

    mich interessiert wie ich bei einem Gästebuch mir nicht mehr wie 10 Einträge pro Seite anzeigen lassen kann und dann automatisch wenn es mehr sind ein link zur nächsten seite angezeigt wird.
    Ich habe mir zum testen mal andere php gästebücher angeschaut doch ich finde da leider keinen Ansatz.
    Es wäre nett wenn mir einer mal das Grundprinzip erklärt.

    ich wuerde es so machen:

    • Datenhaltung fuers Gaestebuch analysieren
    • Datenbankabfrage, die die Eintraege "1-10" bzw. "11-20" usw. liefert, entwickeln (Eventuell noch eine Kennung mitgeben, die kennzeichnet, ob es eine Folgeseite gibt; bei 20 Eintraegen macht es keinen Sinn eine "Weiter-Schaltflaeche" anzubieten.)
    • Ausgabemodul schreiben, welches beispielsweise wie folgt aufgerufen wird: "<URL>\cgi-bin\gaestebuch.php?eintraege-anfang=11" bzw. "<URL>\cgi-bin\gaestebuch.php?eintraege-anfang=1&anzahl=10" (wenn Du flexibel bleiben moechtest ;-) Also jeweils eine Teilliste ausgibt.
    • Ausgabemodul anpassen, so dass auch eine Verlinkung da ist, also z.B. die Schaltflaeche mit der Beschriftung 'Weiter' mit "<URL>\cgi-bin\gaestebuch.php?eintraege-anfang=21" und die Schaltflaeche 'Zurueck' mit "<URL>\cgi-bin\gaestebuch.php?eintraege-anfang=1" "unterlegen", wenn Du auf "<URL>\cgi-bin\gaestebuch.php?eintraege-anfang=11" bist.
    • Testen und Debuggen

    Gruss,
    Lude

    1. Hi,

      ich wuerde es so machen:

      der Algorithmus ist unvollständig ;-)

      • Datenhaltung fuers Gaestebuch analysieren
      • Datenbankabfrage,

      Wie weißt Du noch vor dem Ergebnis des ersten Punktes, dass der Datenhaltung eine Datenbank zugrunde liegt?

      • Testen und Debuggen

      Das ist Teil jedes einzelnen genannten Schrittes :-)

      Cheatah

      --
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
      1. Hi,

        Wie weißt Du noch vor dem Ergebnis des ersten Punktes, dass der Datenhaltung eine Datenbank zugrunde liegt?

        nach ueblicher Definition waere auch beispielsweise eine Textdatei oder eine in einem HTML-Template sich befindliche "JavaScript-Tabelle" als Datenbank aufzufassen. (Oder haette ich vielleicht doch besser von 'Datenbasis' schwaetzen sollen?)

        • Testen und Debuggen

        Das ist Teil jedes einzelnen genannten Schrittes :-)

        Klar, aber zuletzt ist es am wichtigsten.

        Gruss,
        Lude

        1. Hi,

          nach ueblicher Definition waere auch beispielsweise eine Textdatei oder eine in einem HTML-Template sich befindliche "JavaScript-Tabelle" als Datenbank aufzufassen.

          nach üblicher Definition existiert eine strikte Trennung zwischen Datenbanken und Dateien bzw. anderen Formen der Datenhaltung.

          (Oder haette ich vielleicht doch besser von 'Datenbasis' schwaetzen sollen?)

          Damit wäre es eindeutiger :-)

          • Testen und Debuggen
            Das ist Teil jedes einzelnen genannten Schrittes :-)
            Klar, aber zuletzt ist es am wichtigsten.

          Naja. Sagen wir so: Nur am Schluss kann man das Zusammenspiel aller Komponenten testen.

          Cheatah

          --
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
          1. Hi,

            nach ueblicher Definition waere auch beispielsweise eine Textdatei oder eine in einem HTML-Template sich befindliche "JavaScript-Tabelle" als Datenbank aufzufassen.

            nach üblicher Definition existiert eine strikte Trennung zwischen Datenbanken und Dateien bzw. anderen Formen der Datenhaltung.

            (Oder haette ich vielleicht doch besser von 'Datenbasis' schwaetzen sollen?)

            Damit wäre es eindeutiger :-)

            Datenbank = Database = Datenbasis - komme ich damit durch?   ;-)

            Gruss,
            Lude

            1. Hi,

              Datenbank = Database = Datenbasis - komme ich damit durch?   ;-)

              sagen wir so: Ich akzeptiere Deinen Irrtum als assoziativer Natur ;-)

              Cheatah

              --
              X-Will-Answer-Email: No
              X-Please-Search-Archive-First: Absolutely Yes
    2. Lässt sich das auch irgendwie ohne eine Datenbank realisieren ??
      Ich mach das wie folgt mit meinem Gästebuch:

      Ich habe ein Formular mit name email www titel und kommentar.
      Eine Variable ist das Design meines Gästebuch und die wird mir in eine dat datei eingetragen.
      Das sind Variablen.
      Anschliessend prüfe ich ob die Formularfelder ausgefüllt worden.

      Hier ist mal der Code dazu

      <?
      //Fehlervariable
      $fehler = "Bitte kontrolliere deine Angaben nochmals. Du musst die Felder welche mit einem kleinen * versehen sind korrekt ausfüllen.";
      //Fehlervariable Ende
      if ($action == "senden")
      {
      //Formular prüfen
      if($name == "" or $email == "" or $titel == "" or $kommentar == "")
      {
      echo $fehler;
      $formularok = 0;
      }
      else
      {
      $formularok = 1;
      $kommentar = wordwrap($kommentar, 60, "<br>", 4 );
      }
      //Formular prüfen Ende
      //Einträge zählen
      if ($formularok == 1)
      {
      $anzahleintraege = fopen("count.dat","r+");
      $nummer = fgets ($anzahleintraege);
      rewind($anzahleintraege);
      $nummer = $nummer + 1;
      fwrite ($anzahleintraege,$nummer);
      fclose($anzahleintraege);
      //Einträge zählen Ende
      //Datum formatieren
      $datum = date("d.m.Y H:i");
      //Datum formatieren Ende
      //Gästebuchdesign
      $eintrag = "<table cellpadding="2" cellspacing="2">
        <tr>
          <td widht="248">Eintrag Nr.: ".$nummer."<br>
            Titel: ".$titel."
         <a href="".$www.""><br>".$www."</a></td>
          <td background="bilder/nav/nav_bg_wolf.gif" widht="140" height="120">
       Autor: <a href="info.php">".$name."</a><br>
         <a href="mailto:".$email."">E-Mail schreiben</a><br>
            ".$datum."</td>
        </tr>
        <tr>
          <td widht="248">".$name." schrieb:<br> <br> ".$kommentar." </td>
        </tr>
      </table>
      <br>";
      //Gästebuchdatei öffnen/schreiben/schliessen
      $datei = fopen("guestbook.dat","a+");
      fwrite($datei,$eintrag);
      fclose($datei);
      //Gästebuchdatei öffnen/schreiben/schliessen Ende
      }
      //Gästebuchdesign Ende
      }
      else
      {
      //Formular ausgeben
      echo
      "<html><head>
      <style type="text/css">
      <!--
      table {
       font-family: Verdana, Arial, Helvetica, sans-serif;
       font-size: 9px;
       color: #FFFFFF;
      }
      input {
       font-family: Verdana, Arial, Helvetica, sans-serif;
       font-size: 9px;
       color: #FFFFFF;
       background-color: #000000;
       border: 1px dashed #999999;
      }
      textarea {
       font-family: Verdana, Arial, Helvetica, sans-serif;
       font-size: 9px;
       color: #FFFFFF;
       background-color: #000000;
       border: 1px dashed #999999;
       overflow: auto;
      }
      a:visited {
       font-family: Verdana, Arial, Helvetica, sans-serif;
       font-size: 9px;
       font-style: normal;
       color: #666666;
       text-decoration: none;
      }
      a:link {
       font-family: Verdana, Arial, Helvetica, sans-serif;
       font-size: 9px;
       font-style: normal;
       color: #666666;
       text-decoration: none;
      }
      a:hover {
       font-family: Verdana, Arial, Helvetica, sans-serif;
       font-size: 9px;
       font-style: normal;
       color: #CCCCCC;
       text-decoration: underline;
      }
      a:active {
       font-family: Verdana, Arial, Helvetica, sans-serif;
       font-size: 9px;
       font-style: normal;
       color: #666666;
       text-decoration: none;
      }
      -->
      </style></head><body bgcolor="#000000">
      <form action="gaestebuch.php" method="get">
      <table width="520" cellspacing="2" cellpadding="2">
        <tr>
          <td valign="top"> </td>
          <td>Alle Felder die mit einem kleinen * gekennzeichnet sind<br>
            bitte auszufüllen.<br>
          </td>
        </tr>
        <tr>
          <td width="120" valign="top">Name: *</td>
          <td width="395"><input name="name" type="text" id="name" size="35" maxlength="15"></td>
        </tr>
        <tr>
          <td valign="top">E-Mail: *</td>
          <td><input name="email" type="text" id="email" size="35" maxlength="40"></td>
        </tr>
        <tr>
          <td height="24" valign="top">Titel: *</td>
          <td><input name="titel" type="text" id="titel" size="35" maxlength="35"></td>
        </tr>
        <tr>
          <td valign="top">Homepage:</td>
          <td><input name="www" type="text" id="www" size="35"></td>
        </tr>
        <tr>
          <td valign="top">Dein Eintrag: *<br>
            ".$html." </td>
          <td><textarea name="kommentar" cols="60" rows="10" id="kommentar"></textarea></td>
        </tr>
        <tr>
          <td> </td>
          <td><br> <input type="hidden" name="action" value="senden">
          <input type="submit" name="Submit" value="eintragen"> </td>
        </tr>
      </table>
      </form>body></html>";

      //Formular ausgeben Ende

      }
      ?>

      Vielleicht kannst du mir jetzt besser helfen. Irgendwie muss ich doch raus bekommen wieviele Zeilen in der dat Datei stehen. Ich denke ich schreibe das noch falsch rein den ich habe ja auch html tags dabei. Besser wäre doch pro eintrag eine Zeile.
      Ok mal sehen. Wie gesagt ich fange gerade damit an das ist auch mein erstes php script.

      Also Danke Martin

      1. hi,

        Lässt sich das auch irgendwie ohne eine Datenbank realisieren ??

        ja, aber es wird aufwendiger.
        datenbanken sind dafür konzipiert, solche aufgaben mit leichtigkeit zu bewältigen, sie bringen dafür schon hilfreiche funktionalitäten mit. wenn du das auf datenhaltung in textdateien übertragen willst, musst du dir diese funktionalitäten selber erstellen.

        Ich mach das wie folgt mit meinem Gästebuch:
        Ich habe ein Formular mit name email www titel und kommentar.
        Eine Variable ist das Design meines Gästebuch und die wird mir in eine dat datei eingetragen.
        Das sind Variablen.

        kannst du das nochmal auf deutsch sagen?

        Irgendwie muss ich doch raus bekommen wieviele Zeilen in der dat Datei stehen.

        lese die datei ein, und zähle die zeilen durch.
        z.b. file() könnte dir dabei helfen.

        Ich denke ich schreibe das noch falsch rein den ich habe ja auch html tags dabei. Besser wäre doch pro eintrag eine Zeile.

        ja, allerdings. dazu ein eindeutig definiertes trennzeichen, dass so in den vom user eingegebenen texten nicht vorkommen darf, dann kannst du die zeile leichter in name, titel, beitrag etc. unterteilen.

        gruss,
        wahsaga