[PHP] gästebuch Seite 2,3,4

Dieses Thema im Forum "Webentwicklung" wurde erstellt von JuTzI666, 28. November 2006 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 28. November 2006
    gästebuch Seite 2,3,4

    hallo @ll

    wie kann ich machen, damit nach 10 beiträge beim gästebuch auf http://www.thefools.6x.to einen Link mit Seite [2] [3] [4]...[Letze] anzeigt?

    hab mal was gesehen mit mysql

    select count* aber komm ned so weiter damit

    mfg JuTzI666
     
  2. 28. November 2006
    AW: gästebuch Seite 2,3,4

    also erstmal brauchst du ne GET-Variable mit der seite oder wenn dus etwas einfacher machen willst mit dem "Starteintrag"
    dann kannst du ganz hinten an den select befehl einfach folgendes dranhängen: LIMIT starteintrag, anzahl der einträge
    den rest musst du dann mit php oder mysql berechnen lassen
    also wieviele seiten es gibt etc.
     
  3. 28. November 2006
    AW: gästebuch Seite 2,3,4

    dieses script hab ich von Cydoc erhalten...doch komm ned weiter

    <?php



    $articlepages = mysql_query("SELECT Count(*) AS total FROM `fore_cm_articles`");
    $articlepages = mysql_fetch_array($articlepages);
    $articlepages = $articlepages[total];
    $articlepages = $articlepages+14;
    $articlepages = $articlepages / 20;
    $articlepages = round($articlepages,0);

    $lastpage = $articlepages;

    # Next Page Header #

    ob_start();
    include('templates/articles_nextpage_header.html');

    $next=addslashes(ob_get_contents());
    ob_end_clean();
    // parse the template to replace variables with their values
    eval("\$next=\"$next\";");

    echo $next;

    if($articlepages > 10) { $articlepages = "10"; }

    $articlepageplus = $articlepages+$page;

    $seite[vorne] = $page-3;
    if($seite[vorne] < "1") { $seite[vorne] = 1; }

    $seite[hinten] = $page+4;
    if($seite[hinten] > $articlepages) { $seite[hinten] = $articlepages; }

    for($i = $seite[vorne]; $i <= $seite[hinten]; $i++) {

    if($i==$page) {
    # Next Page Output 1 #

    ob_start();
    include('templates/articles_nextpage_current.html');

    $next=addslashes(ob_get_contents());
    ob_end_clean();
    // parse the template to replace variables with their values
    eval("\$next=\"$next\";");

    echo $next;

    }
    else {

    # Next Page Output 2 #

    ob_start();
    include('templates/articles_nextpage.html');

    $next=addslashes(ob_get_contents());
    ob_end_clean();
    // parse the template to replace variables with their values
    eval("\$next=\"$next\";");

    echo $next;

    }


    }

    if($vorwaerts > $articlepages) { $vorwaerts = $articlepages; }

    # Next Page Footer #

    ob_start();
    include('templates/articles_nextpage_footer.html');

    $next=addslashes(ob_get_contents());
    ob_end_clean();
    // parse the template to replace variables with their values
    eval("\$next=\"$next\";");

    echo $next;

    ?>
     
  4. 28. November 2006
    AW: gästebuch Seite 2,3,4

    PHP:
    function  pagelink ( $ppage , $all , $linkslar , $page , $name ) { 
            
    $content  ""
            
    $ceil  ceil ( $all / $ppage ); 
            switch(
    $ceil ) { 
                case 
    0 $content .=  "<strong>1</strong>" ; break; 
                case 
    1 $content .=  "<strong>1</strong>" ; break; 
                default: 
                 if(
    $page > $linkslar + 1 $content .=  "&laquo; <a style=\"font-size: 10px;\" href=\"" . $name . "page=1\">erste</a>...\n"
                 for(
    $x = abs ( $linkslar - $page );  $x $page ; $x ++) { 
                     if(
    $x  $page  AND  $x  0 $content .=  " <a href=\"" . $name . "page=" . $x . "\">" . $x . "</a> \n"
                 } 
                 
    $content .=  "<strong>" . $page . "</strong>\n"
                 for(
    $x = $page + 1 $x <=( $page + $linkslar );  $x ++) { 
                      if(
    $x  <=  $ceil ) $content .=  "<a href=\"" . $name . "page=" . $x . "\">" . $x . "</a> \n"
                 } 
                 if(
    $ceil  $page + $linkslar $content .=  "... <a style=\"font-size: 10px;\" href=\"" . $name . "page=" . $ceil . "\">letzte</a> &raquo;\n"
                 break; 
            } 
            return 
    $content
        }
    Hierbei steht:
    $ppage = Wie viele pro Seite angezeigt werden sollen
    $all = Alle
    $linkslar = Die Anzahl von Links links und rechts von der Seite
    $page = Aktuelle Seite
    $name = Name der Datei (mit ? bzw. &amp; )

    Sprich du musst einmal alle Einträge zählen und dann halt die aktuelle Seite per $page mitgeben.
    Das mit LIMIT hast du verstanden, oder?

    @JuTzI666: Ich glaube nicht, dass man da durch blickt.
     
  5. 28. November 2006
    AW: gästebuch Seite 2,3,4

    hmm und wie kann ich das machen also wo muss ich die zahl hinschreiben wieviel beiträge es sind?

    17 beiträge sind nun drin

    mfg JuTzI666
     
  6. 28. November 2006
    AW: gästebuch Seite 2,3,4

    Hast du eine function.php Wo deinen ganzen Funktionen drin sind? Wenn ja, schreib die Funktion einfach dazu und in deinem Programm füge einfach ein:
    PHP:
    echo  pagelink ( 10 , $countall , 4 , intval ( $_REQUEST [ 'page' ]), 'index.php' );
    $countall ist halt der Befehl Count(*) aus deinem ersten Post.
     
  7. 28. November 2006
    AW: gästebuch Seite 2,3,4

    also ich habe jetzt das script für das gästebuch

    dann hab ich folgendes noch drin

    <?
    function pagelink($ppage,$all,$linkslar,$page,$name) {
    $content = "";
    $ceil = ceil($all/$ppage);
    switch($ceil) {
    case 0: $content.= "<strong>1</strong>"; break;
    case 1: $content.= "<strong>1</strong>"; break;
    default:
    if($page>$linkslar+1) $content.= "&laquo; <a style=\"font-size: 10px;\" href=\"".$name."page=1\">erste</a>...\n";
    for($x=abs($linkslar-$page); $x< $page;$x++) {
    if($x < $page AND $x > 0) $content.= " <a href=\"".$name."page=".$x."\">".$x."</a> \n";
    }
    $content.= "<strong>".$page."</strong>\n";
    for($x=$page+1; $x<=($page+$linkslar); $x++) {
    if($x <= $ceil)$content.= "<a href=\"".$name."page=".$x."\">".$x."</a> \n";
    }
    if($ceil > $page+$linkslar) $content.= "... <a style=\"font-size: 10px;\" href=\"".$name."page=".$ceil."\">letzte</a> &raquo;\n";
    break;
    }
    return $content;
    }
    ?>

    aber da passiert nix...

    warum?

    mfg JuTzI666
     
  8. 28. November 2006
    AW: gästebuch Seite 2,3,4

    Das ist doch nur die Funktion. Das geht schon mal nicht, weil du sie noch aufrufen musst. (Siehe: http://tut.php-q.net/functions.html [am besten die ganze Seite von oben bis unten durch gehen, da lernst du php])
    Und außerdem fehlt alles andere, das ist nur die Funktion, die dir
    <erste... 5 6 7 8 9
    ausgibt.
     
  9. 29. November 2006
    AW: gästebuch Seite 2,3,4

    hier, es sollte gehen. schau dir das genau an:
    PHP:
    <? php
    $page_pro 
    3 ;
    $page  = isset( $_GET [ 'seite' ]) ?  $page  = (int) $_GET [ 'seite' ] :  $page  1 ;
    $page_start  $page  $page_pro  $page_pro ;

    $query  mysql_query ( "SELECT * FROM zb_news ORDER BY id DESC LIMIT " . $page_start . "," . $page_pro . "" );
    while(
    $test  mysql_fetch_array ( $query )) {
        echo 
    '
            <div style="width: 500px">
                <b>'
    . $test [ 'title' ]. '</b><hr />
                '
    . $test [ 'text' ]. '<br /><br />
            </div>
        '
    ;
    }
    $pages  = ( mysql_num_rows ( mysql_query ( "SELECT * FROM zb_news" )) /  $page_pro )+ 1 ;
    if(
    $page  !=  1 ) {
        echo 
    ' <a href="test.php?seite=' .( $page - 1 ). '">&laquo; back</a> ' ;
    }
    for(
    $i $i  $pages $i ++) {
        if(
    $i  ==  $page ) {
            echo 
    ' <a href="test.php?seite=' . $i . '"><b>' . $i . '</b></a> ' ;
        } else {
            echo 
    ' <a href="test.php?seite=' . $i . '">' . $i . '</a> ' ;
        }
    }
    if(
    $page  !=  $pages ) {
        echo 
    ' <a href="test.php?seite=' .( $page + 1 ). '">next &raquo;</a> ' ;
    }
    ?>
     
  10. 29. November 2006
    AW: gästebuch Seite 2,3,4

    ja danke mal aber wenn ich diesen code nun dazuschreibe kommt folgendes auf der site:

    http://thefools.th.funpic.de/The%20Fools/index.php?fools=guestbook

    hmm und die gb.php?seite=2 findet er auch ned

    mfg JuTzI666
     
  11. 30. November 2006
    AW: gästebuch Seite 2,3,4

    Wenn ich mir deine Seite so anschau, zweifel ich an deinen Webtechnik-Fähigkeiten, dass du das allein hinbekommst. (Zwei HTML-Seiten in einer???)
    Darum empfehle ich dir, auf fertige Software zuzugreifen, die dir das proggen erparrt.
    Bestes Gästebuch zum installieren: Woltlab Burning Book (Auf der Seite findet man das nicht mehr, aber für dich gesucht und gefunden, der Weg zum Burning Book
    WoltLab® - Erstellen Sie Ihr eigenes Forum mit Burning Board® )
     
  12. 30. November 2006
    AW: gästebuch Seite 2,3,4

    ja ich bin auch nicht so der beste in php und mysql...doch kann man das nicht in diesen code einbinden denn wbb möchte ich ned...

    mfg JuTzI666
     
  13. 30. November 2006
    AW: gästebuch Seite 2,3,4

    Mit Sicherheit kann man das, du aber anscheinend nicht.

    Der Fehler ist wohl mehr als offensichtlich..
     
  14. 30. November 2006
    AW: gästebuch Seite 2,3,4

    ja aber kann mir niemand den code geben?

    mfg JuTzI666
     
  15. 30. November 2006
    AW: gästebuch Seite 2,3,4

    Du hast den Code schon bekommen. Du musst nur eine kleine Sache aendern...
     
  16. 30. November 2006
    AW: gästebuch Seite 2,3,4

    der Code ist ganz nett, so warum er bei dir nicht die Seiten anzeigt ist der Link:

    Du hast keine gb.php schau dir z.B. den Link an:

    http://thefools.th.funpic.de/The%20Fools/index.php?fools=guestbook&seite=2

    Den Link also abändern so nämlich:

    Code:
    
    <?php
    $page_pro = 3;
    $page = isset($_GET['seite']) ? $page = (int)$_GET['seite'] : $page = 1;
    $page_start = $page * $page_pro - $page_pro;
    
    $query = mysql_query("SELECT * FROM zb_news ORDER BY id DESC LIMIT ".$page_start.",".$page_pro."");
    while($test = mysql_fetch_array($query)) {
     echo '
     <div style="width: 500px">
     <b>'.$test['title'].'</b><hr />
     '.$test['text'].'<br /><br />
     </div>
     ';
    }
    $pages = (mysql_num_rows(mysql_query("SELECT * FROM zb_news")) / $page_pro)+1;
    if($page != 1) {
     echo "<a href=".$_SERVER ["PHP_SELF"]."?fools=guestbook&seite=".($page-1).">&laquo; back</a>";
    }
    for($i; $i < $pages; $i++) {
     if($i == $page) {
     echo "<a href=".$_SERVER ["PHP_SELF"]."?fools=guestbook&seite=".$i."><b>".$i."</b></a>";
     } else {
     echo "<a href=".$_SERVER ["PHP_SELF"]."?fools=guestbook&seite=".$i.">".$i."</a>";
     }
    }
    if($page != $pages) {
     echo "<a href=".$_SERVER ["PHP_SELF"]."?fools=guestbook&seite=".($page+1).">next &raquo;</a>";
    }
    ?> 
    
    

    Oh hoffe hab mich nirgendwo vertippt
     
  17. 30. November 2006
    AW: gästebuch Seite 2,3,4

    ich poste dir hier mal den code den ich immer benutze um ein gästebuch zu machen

    PHP:
    <?
    if(
    $action  ==  "delete" ) {
    $id  $_GET [ "id" ];
    $aendern  "UPDATE Gaestebuch Set aktiv = '0' WHERE id = ' $id '" ;
    $update  mysql_query ( $aendern );
    echo 
    "Eintrag gel&ouml;scht" ;
    }
    if(
    $action  ==  "save" ) {
    $name  $_POST [ "name" ];
    $email  $_POST [ "email" ];
    $inhalt  $_POST [ "inhalt" ];

    $datum  time ();
    $aktiv  1 ;

    if(
    $name  ==  ""  OR  $inhalt  ==  "" )
        {
       echo 
    "Bitte die Felder \"Name\" und \"Inhalt\" ausfüllen<br><br><br>" ;
    $ff  1 ;
       }

    if(
    $ff  !=  "1" ) {
    $eintrag  "INSERT INTO Gaestebuch (datum, name, email, inhalt, aktiv) VALUES (' $datum ', ' $name ', ' $email ', ' $inhalt ', ' $aktiv ')" ;
    $eintragen  mysql_query ( $eintrag );

    if(
    $eintragen  ==  true )
       {
       echo 
    "Beitrag erfolgreich gespeichert. " ;
       }
    else
       {
       echo 
    "Fehler beim Speichern" ;
       }
    }
    }
    echo 
    "Wollen Sie einen Beitrag hinzuf&uuml;gen?<br>
    <form action=\"index.php?modul=guestbook&amp;action=save\" method=\"post\">
    Ihr Name:<br>
    <input name=\"name\" size=\"40\"><br><br>

    E-Mail:<br>
    <input name=\"email\" size=\"40\"><br><br>


    Inhalt:<br>
    <textarea name=\"inhalt\" cols=\"40\"
     rows=\"12\" wrap=\"physical\"></textarea><br>
    <input type=\"submit\" value=\"Absenden\" class=\"button\">
    </form><br><br><br>"
    ;

    $seite  $_GET [ "seite" ];

    if(!isset(
    $seite ))
       {
       
    $seite  1 ;
       }

    $eintraege_pro_seite  15 ;

    $start  $seite  $eintraege_pro_seite  $eintraege_pro_seite ;

    $abfrage  "SELECT * FROM Gaestebuch WHERE aktiv = '1' ORDER BY id DESC LIMIT  $start $eintraege_pro_seite " ;
    $ergebnis  mysql_query ( $abfrage );
    while(
    $row  mysql_fetch_object ( $ergebnis ))
        {
    include(
    'bbcode.php' );
        
    $inhalt  $row -> inhalt ;
        
    $inhalt  nl2br ( $inhalt );
        
    $datum  date ( "d.m.Y H:i" $row -> datum );

        if(
    $row -> email  ==  "" )
           {
           
    $name  "<b> $row -> name </b>" ;
           }
        else
           {
           
    $name  "<a href=\"mailto: $row -> email \"> $row -> name </a>" ;
           }

        echo 
    "
       <table align=\"center\" border=\"0\" cellspacing=\"0\" cellpadding=\"5\" width=\"75%\" bgcolor=\"#808080\">
       <tr>
       <td>
       Von <b>
    $name </b> am  $datum
       </td>
       </tr>
       <tr>
       <td>
       
    $inhalt
       </td>
       </tr>
    </table><br>  "
    ;
        
       }


    //Jetzt kommt das "Inhaltsverzeichnis",
    //sprich dort steht jetzt: Seite: 1 2 3 4 5


    //Wieviele Einträge gibt es überhaupt

    //Wichtig! Hier muss die gleiche Abfrage sein, wie bei der Ausgabe der Daten
    //also der gleiche Text wie in der Variable $abfrage, blo&szlig; das hier das LIMIT fehlt
    //Sonst funktioniert die Blätterfunktion nicht richtig,
    //und hier kann nur 1 Feld abgefragt werden, also id

    $result  mysql_query ( "SELECT id FROM Gaestebuch WHERE aktiv = '1'" );
    $menge  mysql_num_rows ( $result );

    //Errechnen wieviele Seiten es geben wird
    $wieviel_seiten  $menge  $eintraege_pro_seite ;

    //Ausgabe der Seitenlinks:
    echo  "<div align=\"center\">" ;
    echo 
    "<b>Seite:</b> " ;


    //Ausgabe der Links zu den Seiten
    for( $a = 0 $a  $wieviel_seiten $a ++)
       {
       
    $b  $a  1 ;

       
    //Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben
       
    if( $seite  ==  $b )
          {
          echo 
    "  <b> $b </b> " ;
          }

       
    //Auf dieser Seite ist der User nicht, also einen Link ausgeben
       
    else
          {
          echo 
    "  <a href=\"?seite= $b \"> $b </a> " ;
          }


       }
    echo 
    "</div>" ;
    ?> 

    für die 'Blätterfunktion' ist der letzte teil des codes zuständig, also:

    PHP:

    //Jetzt kommt das "Inhaltsverzeichnis",
    //sprich dort steht jetzt: Seite: 1 2 3 4 5


    //Wieviele Einträge gibt es überhaupt

    //Wichtig! Hier muss die gleiche Abfrage sein, wie bei der Ausgabe der Daten
    //also der gleiche Text wie in der Variable $abfrage, blo&szlig; das hier das LIMIT fehlt
    //Sonst funktioniert die Blätterfunktion nicht richtig,
    //und hier kann nur 1 Feld abgefragt werden, also id

    $result  mysql_query ( "SELECT id FROM Gaestebuch WHERE aktiv = '1'" );
    $menge  mysql_num_rows ( $result );

    //Errechnen wieviele Seiten es geben wird
    $wieviel_seiten  $menge  $eintraege_pro_seite ;

    //Ausgabe der Seitenlinks:
    echo  "<div align=\"center\">" ;
    echo 
    "<b>Seite:</b> " ;


    //Ausgabe der Links zu den Seiten
    for( $a = 0 $a  $wieviel_seiten $a ++)
       {
       
    $b  $a  1 ;

       
    //Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben
       
    if( $seite  ==  $b )
          {
          echo 
    "  <b> $b </b> " ;
          }

       
    //Auf dieser Seite ist der User nicht, also einen Link ausgeben
       
    else
          {
          echo 
    "  <a href=\"?seite= $b \"> $b </a> " ;
          }
    in der hoffnung dass du damit etwas anfangen kannst, wünsch ich dir viel glück mit dem code
     
  18. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.