[PHP] Seiten zähler Dyn. Menü

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Aeonsam, 11. Dezember 2008 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 11. Dezember 2008
    Seiten zähler Dyn. Menü

    hallo leute,

    ich brauche ein wenig Hilfe.

    Folgende Situation. Ich betreibe ein GB, daten lese ich in php aus mysql aus und zwar so:
    $res_gb_anz = mysql_db_query("$db_name", "select * from guestbook where userid ='$userid';");
    $num_gb_anz = mysql_num_rows($res_gb_anz);


    klappt auch alles wunderbar.

    $num_gb_anz ist dann die anzahl der beiträge die mit dem user übereinstimmen.

    NUN ZU DER ANZEIGE DER SEITEN
    ich lasse dur limit in my sql(andere abfrage als oben) nur 5 Beiträge je seite anzeigen und unten wie es oft gemacht wird ein SEITENMENU.

    und zwar so:
    while ($num_gb_anz > $zahl)
    {
    $seite = $seite + 1;
    $zahl = $zahl + 5;
    echo"
    <span>
    <form action='guest_book.php' method='post' style='display: inline'>
    <input type='hidden' name='seite_neu' value='$seite'>
    <input class='seiten' type='submit' name='nechste' value='$seite'>
    </form>
    </span>
    ";


    klappt auch wunderbar. Nun zeigt er mir aber wenn ich mehr als 50 Beiträge habe die seite 11, 12, 13, 14 usw. an...

    Dieses will ich vermeiden. Und zwar soll er seite 1 - 10 anzeigen und danach ein pfeil >> wenn man diesen drückt solen seiten 11 - 20 angezeigt werden ^^.


    Hoffe jemand hat eine idee ^^.


    MFG Aeonsam
     
  2. 11. Dezember 2008
    AW: Seiten zähler Dyn. Menü

    kannste das nicht mit ner if abfrage via java scrit machen

    if anz größer zehn zeige 1 2 3 4 5 6 7 8 9 10 >>
     
  3. 11. Dezember 2008
    AW: Seiten zähler Dyn. Menü

    ich dachte eher an php if abfrage,

    wenn $seite >= 10 dann ">>" diesen aber wie setze ich den wert so das er dynamish bleibt.

    In konflikt komme ich immer

    wenn 11, 12, - 20 >> ----------------------- >>muss dann den wert 21 haben..

    In js kann ich nicht
     
  4. 11. Dezember 2008
    AW: Seiten zähler Dyn. Menü

    1. Das vB hat nicht umsonst den [PHP ] (ohne Leerzeichen am Ende) BB-Code

    2. Anstelle von $var = $var + 5; ist es schöner $var += 5; zu benutzen.

    3. Entweder ist mein PHP-Verständnis sehr komisch/unnatürlich (was durchaus möglich sein kann), oder dein Code ist (mir) unverständlich. Sorry...
     
  5. 11. Dezember 2008
    AW: Seiten zähler Dyn. Menü

    Sagt mal. seid ihr ein wenig neben der spur????

    Ich will hier keine verschönerungen wisssen die kenne ich selbst. ++, --, += usw...............
    Das ist alles noch in testphase und ich suche eine Lösung zu dem was ich gefragt habe.


    MFG Aeonsam
     
  6. 11. Dezember 2008
    AW: Seiten zähler Dyn. Menü

    sehr simpel:

    PHP:
    //anzerg  ist die Anzahl der Ergebnisse - 100 die Zahl der Einträge die ich pro Seite ausgebe
    if( $anzerg > 0 )
            
    $anzseiten  $anzerg  100 ;
        else
            
    $anzseiten  1 ;
            
        if(
    strpos ( $anzseiten , "." )!== FALSE )
            
    $anzseiten  = ( substr ( $anzseiten , 0 , strpos ( $anzseiten , "." ))+ 1 );
        
        
    $output2  '' ;
        for(
    $t  = (!empty( $_SESSION [ $sessionname ][ 'page' ])? $_SESSION [ $sessionname ][ 'page' ]: '1' );  $t  <= ( $anzseiten > 10 ? ( $_SESSION [ $sessionname ][ 'page' ]+( $_SESSION [ $sessionname ][ 'page' ]== $anzseiten ? 0 :( $t > $anzseiten ?-( $t - $anzseiten ): 10 ))): $anzseiten );  $t ++) {
            
    $output2  .=  " " ;
            
    $output2  .=  $t ;
            
    $output2  .=  "," ;
        }

    // $pre_output2 und $post_output2 enthalten grafiken zum blättern, deswegen abfrage nach anzahl der Seiten.
    if( $anzseiten > 1 )
            
    $output2  $pre_output2 .( $_SESSION [ $sessionname ][ 'page' ]<= $anzseiten  &&  $_SESSION [ $sessionname ][ 'page' ]> 1 ? "... , " : "" ). $output2 .( $_SESSION [ $sessionname ][ 'page' ]< $anzseiten  && ( $_SESSION [ $sessionname ][ 'page' ]+ 10 )< $anzseiten  && ( $_SESSION [ $sessionname ][ 'page' ]+ 9 )< $anzseiten  && ( $_SESSION [ $sessionname ][ 'page' ]+ 8 )< $anzseiten  && ( $_SESSION [ $sessionname ][ 'page' ]+ 7 )< $anzseiten  && ( $_SESSION [ $sessionname ][ 'page' ]+ 6 )< $anzseiten  && ( $_SESSION [ $sessionname ][ 'page' ]+ 5 )< $anzseiten  && ( $_SESSION [ $sessionname ][ 'page' ]+ 4 )< $anzseiten  && ( $_SESSION [ $sessionname ][ 'page' ]+ 3 )< $anzseiten  && ( $_SESSION [ $sessionname ][ 'page' ]+ 2 )< $anzseiten  && ( $_SESSION [ $sessionname ][ 'page' ]+ 1 )< $anzseiten  ? ", ..." : "" ). $post_output2 ;
    im großen und ganzen wars das, kommt noch bissl krimskrams weil ich den seitenaufbau usw. komplett in ajax gemacht habe, aber das spielt für dich keine rolle an der stelle, da der code für die Seiten egal ob mit oder ohne ajax gleich ist.
     
  7. 14. Dezember 2008
    AW: Seiten zähler Dyn. Menü

    Also wenn ich das richtig verstanden habe willst du sowas wie das:
    PHP:
    $aktpagepart =(isset( $_GET [ 'page' ]))? $_GET [ 'page' ]: 1 ; //aktuelle Seiten-Zahl
    $maxperpage = 10 ; //wie viele Seiten angezeigt werden sollen
    $min =( round ( $aktpagepart / $maxperpage )* $maxperpage )+ 1 ;
    $max =( round ( $aktpagepart / $maxperpage )+ 1 )* $maxperpage ;
    $i = $min ;
    while(
    $i <= $max && $i >= $min ){
      echo 
    "<a href=\"test.php?page=" . $i . "\">" . $i . "</a><br>" ;
      
    $i ++;
    }
    echo 
    "<a href=\"test.php?page=" . $max . "\">>></a>" ;
    MFG Ralphwiggum
     
  8. 14. Dezember 2008
    AW: Seiten zähler Dyn. Menü

    du hast aber schon bedacht, dass wenn es z.B. 9 seiten gibt, dass diese 9 immer dargestellt werden oder? ^^
    nach deinem quellcode fängt die schleife beim klick auf die 9. seite bei 9 an und man käme nicht direkt auf seite 7, da diese verschwunden wäre aus der auflistung.
     
  9. 15. Dezember 2008
    AW: Seiten zähler Dyn. Menü

    Ich versuch nochmal.

    Ich suche keine anderen scripts, sondern eins für mein Beispiel.

    Code:
    while ($num_gb_anz > $zahl)
    {
    $seite = $seite + 1;
    $zahl = $zahl + 5;
    echo"
    <span>
    <form action='guest_book.php' method='post' style='display: inline'>
    <input type='hidden' name='seite_neu' value='$seite'>
    <input class='seiten' type='submit' name='nechste' value='$seite'>
    </form>
    </span>
    ";
    

    $num_gb_anz krieg ich aus meiner db abfrage (select * from) usw

    $ seite wird bei jedem durchlauf der schleife hoch gezählt.


    wie man siht benutze ich auch keine get methode sonder post.

    ---------------------------------------------------------------------------------------
    <input type='hidden' name='seite_neu' value='$seite'>

    $seite_start = $seite_neu * $beitrag_je_seite - $beitrag_je_seite;

    Diese 2 Abschnitte sind wichtig für die sql abfrage da ich den Limit setze welche 5 beiträge er auslesen soll. (limit $seite_start, $beitrag_je_seite

    ---------------------------------------------------------------------------------------


    Deswegen bitte ich um keine anderen scropts. die finde ich auch selber



    ____________________________________________________________________________________
    hier nochmal der quelltext falls es euch was bringt

    PHP:

    <?
              $for_userid 
    $acc_id ;
              
    $from_user_now  $acc_id ;
              
    $zahl  0 ;
              
    $seite  0 ;
              
    $beitrag_je_seite  5 ;
              
              
              
    $seite_neu  $_POST [ seite_neu ];
              if(
    $seite_neu  ==  "" )
              {
              
    $seite_neu  1 ;
              }
              
    $seite_start  $seite_neu  $beitrag_je_seite  $beitrag_je_seite ;
              
              
              include 
    "cnf/config.php" ;
                    
    $db_gb  mysql_connect ( $db_url , $db_user , $db_pass );
                    
                    
    $res_gb_anz  mysql_db_query ( " $db_name " "select * from guestbook where userid =' $for_userid ';" );
                       
    $num_gb_anz  mysql_num_rows ( $res_gb_anz );
                    
                       
    $res_gb  mysql_db_query ( " $db_name " "select * from guestbook where userid =' $for_userid ' ORDER BY postdate DESC limit  $seite_start $beitrag_je_seite ;" );
                       
    $num_gb  mysql_num_rows ( $res_gb );
                                        
                    for (
    $i = 0 $i < $num_gb $i ++)
                       {
                    
    $postid  =          mysql_result ( $res_gb $i "postid" );
                    
    $userid  =          mysql_result ( $res_gb $i "userid" );
                    
    $post_text  =          mysql_result ( $res_gb $i "post_text" );
                    
    $postdate  =          mysql_result ( $res_gb $i "postdate" );
                    
    $fromuser  =          mysql_result ( $res_gb $i "from_user" );
                    
                    
                    
    $res_user_name  mysql_db_query ( $db_name "SELECT username, userid FROM users where userid=' $fromuser ';" );
                                   
    $num_user_name  mysql_num_rows ( $res_user_name );
                            
                              for (
    $j = 0 $j < $num_user_name $j ++)
                                   {
                                
    $from_user_name  =   mysql_result ( $res_user_name $j "username" );
                              }
                    
                    
                    
    $from_date  date ( "d.m.Y - H:i" $postdate );
                    
    $post_text_nl2br  nl2br ( " $post_text " );
                    
                    
    $wert  $wert  1 ;
                    
    $sprung  4 ;
                    echo
    "
                    <tr>
                    <td class='gb_td_top' style='width:450px; text-align:left;'><a href='../../user/
    $from_user_name /view.php'> $from_user_name </a></td>
                    <td class='gb_td_top' style='width:150px; text-align:right;'>
    $from_date </td>
                    </tr>
                    <tr>
                    <td colspan='2'> <div class='content'>
    $post_text_nl2br </div></td>
                    </tr>
                    <tr>
                    <td colspan='2'><br /></td>
                    </tr>
                    "
    ;
                    
                    
                    
                    
                    }
                    
    mysql_close ( $db_gb );
                    
                    echo
    "<tr><td colspan='2' style='text-align:right;'><table style='width:100%; text-align:right' border='0'><tr><td>" ;      
                    while (
    $num_gb_anz  $zahl )
                    {
                    
    $seite  $seite  1 ;
                    
    $zahl  $zahl  5 ;
                   
                      echo
    "
                      <span>
                      <form action='profil.php' method='post' style='display: inline'>
                      <input type='hidden' name='seite_neu' value='
    $seite '>
                      <input class='seiten' type='submit' name='nechste' value='
    $seite '>
                      </form>
                      </span>
                      "
    ;
                    
                      
                    }
                    echo
    "</td></tr></table></td></tr>" ;
              
              
              
              
              
              
              
    ?>


    MFG Aeonsam
     
  10. 15. Dezember 2008
    AW: Seiten zähler Dyn. Menü

    Das ist kein ANDERES Script... du hättest ledglich die variablen ersetzen müssen.
    PHP:
    echo "<tr><td colspan='2' style='text-align:right;'><table style='width:100%; text-align:right' border='0'><tr><td>" ;
                    
    $aktpagepart =(isset( $_POST [ 'seite_neu' ]))? $_POST [ 'seite_neu' ]: 1 ;
                    
    $maxperpage = 10 ;
                    
    $min =( round ( $aktpagepart / $maxperpage )* $maxperpage )+ 1 ;
                    
    $max =( round ( $aktpagepart / $maxperpage )+ 1 )* $maxperpage ;
                    
    $seite = $min ;
                    while((
    $seite <= $max && $seite <= $num_gb_anz )&& $seite >= $min ){
                      echo
    "
                      <span>
                      <form action='profil.php' method='post' style='display: inline'>
                      <input type='hidden' name='seite_neu' value='
    $seite '>
                      <input class='seiten' type='submit' name='nechste' value='
    $seite '>
                      </form>
                      </span>
                      "
    ;
                      
    $seite ++;
                    }
                    if((
    $max + 1 ) <  $num_gb_anz ){
                       echo
    "
                        <span>
                        <form action='profil.php' method='post' style='display: inline'>
                        <input type='hidden' name='seite_neu' value='
    $max '>
                        <input class='seiten' type='submit' name='nechste' value='>>'>
                        </form>
                        </span>
                      "
    ;
                    }
                    echo
    "</td></tr></table></td></tr>" ;  
     
  11. 15. Dezember 2008
    AW: Seiten zähler Dyn. Menü

    Jawoll Dank dir man. Bewertung ist an alle raus!!!

    Wiedermal sauber gelöst bei RR
     
  12. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.