gästebuch - ab 10 einträgen neue seite - bitte um hilfe

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

  • gästebuch - ab 10 einträgen neue seite - bitte um hilfe

    hallo leute, ich weiß dieses thema ist bestimmt schon hundert mal erklärt worden und ich habe mir die threads auch durchgelsen. ich bin aber totaler neuling in php und kann das leider nicht auf mein gästebuch umschreiben.

    ich poste hier mal mein skript und hoffe mir kann hier jemand dabei helfen und den vorgschlagenen code auch ein bisschen dokumentieren, damit ich´s das nächste mal ohne hilfe schaffe.



    html>
    <head>
    <title>Gaestebuch</title>
    </head>
    <body>
    <h2>Gaestebuch</h2>
    <a href="#neuereintrag">Eintrag hinzuf&uuml;gen</a><br><br>
    <?php

    $dbh=mysql_connect("localhost","web26","multimedia");
    mysql_select_db("usr_web26_1",$dbh);
    $result=mysql_query("SELECT * FROM gaestebuch ORDER BY datum DESC", $dbh);
    for($i=0; $i<mysql_num_rows($result); $i++)
    {
    $gaestebuch[$i]=mysql_fetch_object($result);
    }

    echo "<table border=\"0\">";
    $a=mysql_num_rows($result)+1;
    for($i=0; $i<mysql_num_rows($result); $i++)
    {
    $email=$gaestebuch[$i]->email;



    $a--;
    echo "<tr>",
    "<td><b>#",
    $a,
    ": ",
    $gaestebuch[$i]->titel,
    "</b></td>",
    "</tr>",
    "<tr>",
    "<td>",
    nl2br($gaestebuch[$i]->eintrag),
    "</td>",
    "</tr>",
    "<tr>",
    "<td>Eintrag von <b>",
    $gaestebuch[$i]->name,
    "</b> am <b>",
    substr($gaestebuch[$i]->datum, 8, 2),
    ".",
    substr($gaestebuch[$i]->datum, 5, 2),
    ".",
    substr($gaestebuch[$i]->datum, 0, 4),
    " ",
    substr($gaestebuch[$i]->datum, 10),
    "</b></td>",
    "</tr>",
    "<tr><td>",
    "<a href=\"mailto:$email\">$email</a>",
    "<hr></td>
    </tr>";




    }
    echo "</table><br><br>";

    ?>
    <a name="neuereintrag"><h3>Neuer Eintrag:</h3></a>
    <form action="einfuegen.php3" method="post">
    <table border="1">
    <tr>
    <td><b>Name:</b></td>
    <td><input type="text" name="name" maxlength="50"></td>
    </tr>
    <tr>
    <td><b>Emailadresse:</b></td>
    <td><input type="text" name="email" maxlength="50"></td>
    </tr>
    <tr>
    <td><b>Titel des Eintrages:</b></td>
    <td><input type="text" name="titel" maxlength="40"></td>
    </tr>
    <tr>
    <td><b>Eintrag:</b></td>
    <td><textarea name="eintrag" cols="30" rows="5"></textarea></td>
    </tr>
    <tr>
    <td align="center" colspan="2">
    <input type="submit" value="Eintragen">
    <input type="reset" value="L&ouml;schen">
    </td>
    </tr>
    </table>
    </form>
    </body>
    </html>


    lg maximum

  • #2
    Hallo und herzlich willkommen!

    Bitte editiere deinen Post und formatiere deinen Code mit den [PHP ] -Tags
    (ohne das Leerzeichen).
    Dann können wir dir besser helfen.
    Was genau funktioniert denn nicht, bzw. was willst du machen?
    Dem Threadtitel entnehme ich, dass eine Blätterfunktion rein soll.
    http://php-resource.de/forum/search....der=descending

    Kommentar


    • #3
      wie wär's, wenn du selbst mal was versuchen würdest, und erst bei "richtigen" problemen hier im forum postest?

      http://www.php-resource.de/forum/sho...threadid=43138

      http://www.php-resource.de/forum/sea...der=descending

      http://www.php-resource.de/forum/sho...ght=bl%E4ttern

      so.. hier mal drei code-schnipsel, die dir sicher weiterhelfen können
      Der Programmierer ist der Vormund des Anwenders.

      Kommentar


      • #4
        des weiteren gibt es ein tutorial zu einem gästebuch von Joel - hier wird unter anderem die grundlagen für eine blätterfunktion sehr schön beschrieben - die blätterfunkiton wird hier zwar nur php-seitig realisiert, aber mit etwas nachdenken kann man es auf datenbankseite mit LIMIT anwenden.

        viel spass beim probieren

        Kommentar


        • #5
          Mir war gerade langweilig da habe ich mir gedacht ich proge dir mall etwas was du vieleicht gebrauchen könntest.

          Schau dir das einfach mall in ruhe an.

          PHP-Code:
          <?php

              
          ##### Seiten Maximal
              
          $max_seiten 9;
              
              
          ##### Einträge pro Seite
              
          $eps 10;

          $_con["host"] = "localhost";
          $_con["root"] = "";
          $_con["dbpass"] = "";
          $_con["db"] = "";

          $_con["table"] = "user";

          ##### MySQL Verbindung
          mysql_connect("$_con[host]""$_con[root]""$_con[dbpass]") OR die(mysql_error());
          mysql_select_db("$_con[db]");

          ##### Auslesen
          if (mysql_select_db("$_con[db]"))
          $abfrage "SELECT * FROM $_con[table] ";

          $resID mysql_query($abfrage);

              
          $treffer mysql_num_rows($resID);
              
          $seitenzahl ceil($treffer/$eps);

              if (!isset(
          $page) || $page == 0) {
                  
          $page 1;
              }

              if (
          $page $seitenzahl) {
                  
          $page $seitenzahl;
              }

              
          $vor_max $seitenzahl;

              
          $back $page-1;
              
          $vor $page+1;

              
          $ab_eintrag = (($page-1)*$eps);

              
          $for_ende $page+($max_seiten-1)/2;
              
          $for_beginn $page-($max_seiten-1)/2;
              if (
          $for_beginn $seitenzahl-$max_seiten+1) {
                  
          $for_beginn $seitenzahl-$max_seiten+1;
              }
              if (
          $for_beginn 1) {
                  
          $for_beginn 1;
              }
              if (
          $for_ende $max_seiten && $seitenzahl $max_seiten) {
                  
          $for_ende $seitenzahl;
              } elseif (
          $for_ende $max_seiten && $seitenzahl $max_seiten) {
                  
          $for_ende $max_seiten;
              } elseif (
          $for_ende >= $seitenzahl) {
                  
          $for_ende $seitenzahl;
              }

          ##### Auslesen
          ##### sortieren nach titel abwährts ASC aufwährts DESC

          $abfrage .= " LIMIT $ab_eintrag$eps";
          $resab mysql_query($abfrage);
          while (
          $rowab mysql_fetch_array($resab)) {

          echo 
          "$rowab[benutzername]<br>";
                                                  
          }
          echo 
          "<a href=\"$_SERVER[PHP_SELF]?page=1&eps=$eps\"><<</a>|<a href=\"$_SERVER[PHP_SELF]?page=".$back."&eps=$eps\"><</a></font>";

              if (
          $page > ($max_seiten-1)/2+&& $seitenzahl $max_seiten) {
                  if (
          $page $seitenzahl-(($max_seiten-1)/2)) {
                      
          $vor_max $seitenzahl-$max_seiten;
                  } else {
                      
          $vor_max $page-(($max_seiten-1)/2+1);
                  }
                  echo 
          "<font size='1' face='Verdana'>|<a href=\"$_SERVER[PHP_SELF]?page=".$vor_max."&eps=$eps\">...</a></font>";
              }

              for (
          $i=$for_beginn;$i<=$for_ende;$i++) {
                  if (
          $page == $i) {
                          echo 
          "<font size='1' face='Verdana'>|<b>".$i."</b></font>";
                  } else {
                          echo 
          "<font size='1' face='Verdana'>|<a href=\"$_SERVER[PHP_SELF]?page=".$i."&eps=$eps\">".$i."</a></font>";
                  }
              }

                  if (
          $page $seitenzahl-(($max_seiten-1)/2) && $seitenzahl $max_seiten) {
                  if (
          $page < ($max_seiten-1)/2+1) {
                      
          $weiter_max $max_seiten+1;
                  } else {
                      
          $weiter_max $page+(($max_seiten-1)/2+1);
                  }
                  echo 
          "<font size='1' face='Verdana'>|<a href=\"$_SERVER[PHP_SELF]?page=".$weiter_max."&eps=$eps\">...</a></font>";
              }

          echo 
          "<font size='1' face='Verdana'>|<a href=\"$_SERVER[PHP_SELF]?page=".$vor."&eps=$eps\">></a>|<a href=\"$_SERVER[PHP_SELF]?page=".$vor_max."&eps=$eps\">>></a></font>";
          ?>
          Hoffe ich konnte dir helfen.

          P.s. habe das Script nicht selber getestet daher "FEHLER VORBEHALTEN".
          Zuletzt geändert von wahsaga; 28.04.2005, 20:56.

          Kommentar


          • #6
            Original geschrieben von ppapsd
            Mir war gerade langweilig da habe ich mir gedacht ich proge dir mall etwas was du vieleicht gebrauchen könntest.
            Wenn du so schnell proggen kannst, dann kannst du doch bestimmt auch:

            1.) was für mich machen, ich denke da an CMS oder nen Shop...
            2.) den Code schnell umbrechen

            Kommentar


            • #7
              Wenn du mal eben codest könntest du alles mal in Klassen ablegen dann kannst du es immer wieder verwenden, vererben etc.
              [color=blue]MfG Payne_of_Death[/color]

              [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
              [color=red]Merke:[/color]
              [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

              Murphy`s Importanst LAWS
              Jede Lösung bringt nur neue Probleme
              Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
              In jedem kleinen Problem steckt ein großes, das gern raus moechte.

              Kommentar


              • #8
                MMMHHH ich ich hatte nur gestern Zeit...

                P.s. bin gerade dabei meine eigene Seite zu proggen...
                Zuletzt geändert von wahsaga; 28.04.2005, 20:57.

                Kommentar


                • #9
                  OffTopic:
                  wenn man "programmieren" in verbindung mit akkusativ nutzt, würde ich soetwas wie "videorekorder" o.ä. erwarten. oder irre ich mich?

                  Kommentar


                  • #10
                    @ ppapsd

                    danke für deine hilfe, hatte bis gestern leider keine zeit es zu probieren!
                    jetzt hab ichs aber eingebaut und es funktioniert super - DANKE!!

                    könntest du mir nur kurz erklären was diese teile vom skript genau machen, damit ich´s ganz check.

                    PHP-Code:

                    $for_ende 
                    $page+($max_seiten-1)/2;
                        
                    $for_beginn $page-($max_seiten-1)/2;
                        if (
                    $for_beginn $seitenzahl-$max_seiten+1) {
                            
                    $for_beginn $seitenzahl-$max_seiten+1;
                        }
                        if (
                    $for_beginn 1) {
                            
                    $for_beginn 1;
                        }
                        if (
                    $for_ende $max_seiten && $seitenzahl $max_seiten) {
                            
                    $for_ende $seitenzahl;
                        } elseif (
                    $for_ende $max_seiten && $seitenzahl $max_seiten) {
                            
                    $for_ende $max_seiten;
                        } elseif (
                    $for_ende >= $seitenzahl) {
                            
                    $for_ende $seitenzahl;
                        } 
                    und der teil auch noch:

                    PHP-Code:

                    echo "<a href=\"$_SERVER[PHP_SELF]?page=1&eps=$eps\"><<</a>|<a href=\"$_SERVER[PHP_SELF]?page=".$back."&eps=$eps\"><</a></font>";

                        if (
                    $page > ($max_seiten-1)/2+&& $seitenzahl $max_seiten) {
                            if (
                    $page $seitenzahl-(($max_seiten-1)/2)) {
                                
                    $vor_max $seitenzahl-$max_seiten;
                            } else {
                                
                    $vor_max $page-(($max_seiten-1)/2+1);
                            }
                            echo 
                    "<font size='1' face='Verdana'>|<a href=\"$_SERVER[PHP_SELF]?page=".$vor_max."&eps=$eps\">...</a></font>";
                        }

                        for (
                    $i=$for_beginn;$i<=$for_ende;$i++) {
                            if (
                    $page == $i) {
                                    echo 
                    "<font size='1' face='Verdana'>|<b>".$i."</b></font>";
                            } else {
                                    echo 
                    "<font size='1' face='Verdana'>|<a href=\"$_SERVER[PHP_SELF]?page=".$i."&eps=$eps\">".$i."</a></font>";
                            }
                        }

                            if (
                    $page $seitenzahl-(($max_seiten-1)/2) && $seitenzahl $max_seiten) {
                            if (
                    $page < ($max_seiten-1)/2+1) {
                                
                    $weiter_max $max_seiten+1;
                            } else {
                                
                    $weiter_max $page+(($max_seiten-1)/2+1);
                            }
                            echo 
                    "<font size='1' face='Verdana'>|<a href=\"$_SERVER[PHP_SELF]?page=".$weiter_max."&eps=$eps\">...</a></font>";
                        }

                    echo 
                    "<font size='1' face='Verdana'>|<a href=\"$_SERVER[PHP_SELF]?page=".$vor."&eps=$eps\">></a>|<a href=\"$_SERVER[PHP_SELF]?page=".$vor_max."&eps=$eps\">>></a></font>"


                    nochmals danke für deine hilfe!!!

                    lg maximum

                    Kommentar


                    • #11
                      Hi

                      Du wilst also mein code erklährt bekommen bitte:

                      PHP-Code:
                      ##### Auslesen
                      if (mysql_select_db("$_con[db]"))
                      $abfrage "SELECT * FROM $_con[table_user] ";

                      $resID mysql_query($abfrage);

                          
                      $treffer mysql_num_rows($resID);
                          
                      $seitenzahl ceil($treffer/$eps);

                          if (!isset(
                      $page) || $page == 0) {
                              
                      $page 1;
                          }

                          if (
                      $page $seitenzahl) {
                              
                      $page $seitenzahl;
                          }

                          
                      $vor_max $seitenzahl;

                          
                      $back $page-1;
                          
                      $vor $page+1;

                          
                      $ab_eintrag = (($page-1)*$eps);

                          
                      $for_ende $page+($max_seiten-1)/2;
                          
                      $for_beginn $page-($max_seiten-1)/2;
                          if (
                      $for_beginn $seitenzahl-$max_seiten+1) {
                              
                      $for_beginn $seitenzahl-$max_seiten+1;
                          }
                          if (
                      $for_beginn 1) {
                              
                      $for_beginn 1;
                          }
                          if (
                      $for_ende $max_seiten && $seitenzahl $max_seiten) {
                              
                      $for_ende $seitenzahl;
                          } elseif (
                      $for_ende $max_seiten && $seitenzahl $max_seiten) {
                              
                      $for_ende $max_seiten;
                          } elseif (
                      $for_ende >= $seitenzahl) {
                              
                      $for_ende $seitenzahl;
                          } 
                      In diesem teil das codes wird errechnet:

                      - Die anzahl der Seiten die entstehen würden ($seitenzahlen)
                      - Wie viele zahlen in der Navigationsleiste angezeigt werden ($max_seiten)
                      - Ab welchem eintrag bei Seitenwechsel weitergemacht werden soll ($ab_eintrag)
                      - Was passiert wen in der navigationsleist geklickt wird. ($page bzw. $back,$vor,$vor_max)


                      PHP-Code:
                      echo "<a href=\"$_SERVER[PHP_SELF]?page=1&eps=$eps\"><<</a>|<a href=\"$_SERVER[PHP_SELF]?page=".$back."&eps=$eps\"><</a></font>"
                      dieser code erzeugt die (<<) und (<) und gibt über die url die daten an den oberen code weiter.

                      $eps = Einträge pro Seite
                      $back = $page-1;


                      PHP-Code:
                          if ($page > ($max_seiten-1)/2+&& $seitenzahl $max_seiten) {
                              if (
                      $page $seitenzahl-(($max_seiten-1)/2)) {
                                  
                      $vor_max $seitenzahl-$max_seiten;
                              } else {
                                  
                      $vor_max $page-(($max_seiten-1)/2+1);
                              }
                              echo 
                      "<font size='1' face='Verdana'>|<a href=\"$_SERVER[PHP_SELF]?page=".$vor_max."&eps=$eps\">...</a></font>";
                          } 
                      dieser code erzeugt die punkte (...) wenn du dich über sie seitenzahl $max_seiten hinaus bewegst. (linke Seite)

                      PHP-Code:
                          for ($i=$for_beginn;$i<=$for_ende;$i++) {
                              if (
                      $page == $i) {
                                      echo 
                      "<font size='1' face='Verdana'>|<b>".$i."</b></font>";
                              } else {
                                      echo 
                      "<font size='1' face='Verdana'>|<a href=\"$_SERVER[PHP_SELF]?page=".$i."&eps=$eps\">".$i."</a></font>";
                              }
                          } 
                      Mit diesem code werden die Seitenzahlen erzeugt (1 | 2 | 3 | 4) dazu dienen die werte:

                      - $for_beginn damit die for schleife weiss an welcher stelle sie beginnen soll
                      - $for_ende damit die for schleife weiss an welcher stelle sie den durchlauf beenden soll.
                      - jeder durchlauf erhöht $i um 1
                      - mit der if Anweisung wird überprüft auf welcher Seite du dich befindest und nur diese Seitenzahl wird dick hinterlegt.

                      PHP-Code:
                              if ($page $seitenzahl-(($max_seiten-1)/2) && $seitenzahl $max_seiten) {
                              if (
                      $page < ($max_seiten-1)/2+1) {
                                  
                      $weiter_max $max_seiten+1;
                              } else {
                                  
                      $weiter_max $page+(($max_seiten-1)/2+1);
                              }
                              echo 
                      "<font size='1' face='Verdana'>|<a href=\"$_SERVER[PHP_SELF]?page=".$weiter_max."&eps=$eps\">...</a></font>";
                          } 
                      dieser code erzeugt die punkte (...) wenn die anzahl der Seiten die $max_seiten überschritet.

                      PHP-Code:
                      echo "<font size='1' face='Verdana'>|<a href=\"$_SERVER[PHP_SELF]?page=".$vor."&eps=$eps\">></a>|<a href=\"$_SERVER[PHP_SELF]?page=".$vor_max."&eps=$eps\">>></a></font>"
                      dieser code erzeugt die (>>) und (>) und gibt über die url die daten an den oberen code weiter.

                      $eps = Einträge pro Seite
                      $vor_max = $seitenzahl;
                      $vor = $page+1;

                      Ich hoffe ich habe nichts übersehen bzw vergessen.
                      Zuletzt geändert von wahsaga; 28.04.2005, 20:57.

                      Kommentar


                      • #12
                        danke für die erklärungen, ich werde sie mir gleich in ruhe ansehen!

                        also nochmals DANKE

                        lg maximum

                        Kommentar


                        • #13
                          Das habe ich doch gerne gamacht.
                          Hoffe ich konnte dir mit meiner etwas komplizierten erklährung weiterhelfen.

                          Kommentar


                          • #14
                            Probleme mit dem Code?!

                            Da ich gerade auf der Suche bin nach einem Code, mit dem ich das
                            "blättern" in meine Seite einbauen kann bin ich auf ppapsd's code gestoßen
                            und habe gleich mal Strg+c gemacht ,da ich ja wirklich ein bissle faul bin ;-)
                            HAbe festgestellt, dass
                            PHP-Code:
                            ...
                            $abfrage .= " LIMIT $ab_eintrag$eps";
                            $resab mysql_query($abfrage);
                            while (
                            $rowab mysql_fetch_object($resab)) 
                            {            
                            echo 
                            "$rowab[benutzername]<br>";
                            }
                            ... 
                            ebenfalls in eine Schleife gepackt werden muss ,da sonst nur die Benutzer
                            von 0 bis $eps angezeigt werden.
                            Oder irre ich mich?!
                            Wenn jemand ne Lösung hat,dann kann er die gerne veröffentlichen :-)

                            Kommentar


                            • #15
                              Ich habe diesen Script mal getestet und habe den "fehler" gefunden. Am anfang musst du noch das hinzufügen:

                              PHP-Code:
                              $page $_GET['page']; 

                              Kommentar

                              Lädt...
                              X