Blättern in Einträgen geht nicht

soweit, so gut!

im ganzen funktioniert es nun.

das einizgste neue problem ist, das er mir nicht alle einträge anzeigt!
ich habe 12 datensätze in der db und bekomme nur 8 angezeigt.

um so höher ich $offset stelle umso weniger datensätze werden ausgelesen!
bei $offset = 1; werden auch nur 11 der 12 datensätze ausglesen und so rationalisiert es sich um so höher $offest = ; geht.

hier ist das script aktiv!
angewendet mit $offset= 4 ; das macht bei 12 datenbank einträgen normaler weise 3 seiten, 2 werden angezigt die dritte ist über http://mitglied.lycos.de/kokuyos/2/mysql.php?pagenr=3
aurfubar.

PHP:
// Festlegen des Offsets, also der Anzahl der anzuzeigenden Einträge, speichern in $offset
    $offset = 4;
bzw. die seite 3 wird im menue nicht ausgegeben, existiert aber über den link mysql.php?pagenr=3 .. warum wird also immer die letzte seite weggelassen?


wie kann ich das ändern, also das alle 3 seiten angezigt werden im menü?
hier nochmal der gesamte code

PHP:
<?php
$host = "localhost";
$user = "kokuyos";
$pw = "";
$db = mysql_connect($host,$user,$pw)
	or exit ("Keine Verbindung hergestellt!") ;

/**
    * Voraussetzung ist eine bestehende und offene Verbindung zu einer Datenbank
    * mit der Tabelle "tabelle", die die Zeilen "id", "title" und "text" beinhaltet.
    **/ 
    // Zählen aller Einträge der DB-Tabelle, speicherin in $count_items
    $query_count = "SELECT
              id  
            FROM
             blog
          
     
	 ";
    $result_count = mysql_query( $query_count );
    $count_items = mysql_num_rows( $result_count );

    // Festlegen des Offsets, also der Anzahl der anzuzeigenden Einträge, speichern in $offset
    $offset = 4;

    // Festlegen / herausfinden der Seitenzahl, speichern in $pagenr
    // Diese wird per GET übergeben: dateiname.php?pagenr=1
    // Falls die Seitenzahl nicht übergeben wurde, wird diese auf 1 gesetzt (für die erste Seite)
    $pagenr = isset( $_GET[ 'pagenr' ] ) && !empty( $_GET[ 'pagenr' ] )
                ? intval( $_GET[ 'pagenr' ] )
                : 1;
    // Ist die Kurzschreibweise für
    /**
    * if( $isset( $_GET[ 'pagenr' ] ) && !empty( $_GET[ 'pagenr' ] ) )
    * {
    *     $pagenr = intval( $_GET[ 'pagenr' ] );
    * }
    * else
    * {
    *     $pagenr = 1;
    * }
    **/

    // Berechnen des Seitenanzahl, Ergebnis aufrunden!
    $count_pages= ceil( $count_items / $offset );

    // Berechnen des Starteintrages, ab dem die Einträge ausgegeben werden sollen 
    $item_start = ( $pagenr * $offset ) - $offset;

    // Starten der DB-Abfrage für die Ausgabe der Tabellen
    $query_items = "SELECT
                id,
				titel,
                text,
				datum
            FROM
                blog
            
            ORDER BY
                id 
            LIMIT
                " . $item_start . "," . $offset . "
        ";
    $result_items = mysql_query( $query_items );

    // Ausgabe der Einträge
    while( $item = mysql_fetch_assoc( $result_items ) )
    {
        
	   
	   echo '<table width="486" height="121" border="0" bgcolor="#8B4513" align="center"><tr><td>
<table width="476" height="304" border="0" bgcolor="#FFFFFF" align="center">
  <tr><td height="38" colspan="2" align="center" bgcolor="#8B4513"><font color="#FFFFFF">
    <h1><font face="comic sans ms,sand">' . $item[ 'titel' ] . '</font></h1>
	<div align="right">'. $item[ 'datum' ] . '&nbsp;</div></font></td></tr><tr>
<td height="237" colspan="2" valign="top"><font face="comic sans ms,sand">' . $item[ 'text' ] . '</font></td>
  </tr></table><table width="476" height="25" border="0" bgcolor="#8B4513" align="center">
  <tr ><td width="231" height="21" align="center">&nbsp;</td>
    <td width="235" align="center">&nbsp;</td></tr></table></td></tr></table><br><br>' ;
       
}
    

    // Ausgabe der Blätterfunktion als Liste
    // wird die aktuelle Seiten-Nummer ausgegeben, wird diese nicht verlinkt und fett angezeigt
    // Die \t und \n dienen nur dem schöneren HTML-Quellcode, sind also nicht unbedingt nötig

	echo '<div align="center"><ul style="list-style-type:none;">' . "\n";;
	
    for( $i = 1 ; $i < $count_pages ; $i++ )
    {
        echo "\t" . '<li style="float:left;margin:3px;">' . "\n";

        if( $i == $pagenr )
        {
            echo "\t\t" . '<b>' . $i . '</b>' . "\n";
			
        }
        else
        {
            echo "\t\t" . '<a href="mysql.php?pagenr=' . $i . '">' . $i . '</a>' . "\n";
			
        }

        echo "\t" . '</li>' . "\n";
    }

    echo '</ul></div>';  

?>
 
Zuletzt bearbeitet:
Ohje, ja, mein Fehler. Liegt daran, dass die Schleife sozusagen eine Runde zu früh aufhört die Werte auszugeben. Du hast mehrere Möglichkeiten das zu lösen, am geschicktesten ist wohl die erste :)
PHP:
...
    for( $i = 1 ; $i =< $count_pages ; $i++ )
    { 
...
PHP:
...
    for( $i = 1 ; $i < ( $count_pages + 1 ) ; $i++ )
    { 
...
PHP:
...
    for( $i = 0 ; $i < $count_pages ; $i++ )
    {
        echo "\t" . '<li style="float:left;margin:3px;">' . "\n";

        if( ( $i + 1 ) == $pagenr )
        {
            echo "\t\t" . '<b>' . ( $i + 1 ) . '</b>' . "\n";
            
        }
        else
        {
            echo "\t\t" . '<a href="mysql.php?pagenr=' . ( $i + 1 ) . '">' . ( $i + 1 ) . '</a>' . "\n";
            
        }

        echo "\t" . '</li>' . "\n";
    } 
...
 
na dann freut es mich doch das ich bissel helfen konnte, wenn auch unbeabsichtigt :-)

ich bedank mich für deine super hilfe!!
 
Zurück