Webmaster общности: Predpriemach.com | SearchEngines.bg

    Показване на резултатите от заявката на различни страници

    Вече за 10 път ме питат как да покажат резултатите от заявката на отделни страници.
    1,2,3,4,5… последна.

    За урока ще ползвам таблица от базата данни на сайта.
    Таблицата за уроците Mad .

    Таблицата се казва statia и
    има полета:
    id – id
    user – user-a който е написал урока
    zag – заглавие на урока

    Ето и кода:

    <?php
    $user=""; //user на базата данни
    $password=""; //pass на базата данни
    $database=""; //име на базата данни
    mysql_connect(localhost,$user,$password);
    mysql_select_db($database) or die( "Unable to select database");
    
    
    
    
    
    // определяме колко реда да ни показва. В случая 20 на страница.
    
    $broinastranica = 20;
    
    // от коя страница да почне да показва.Може да искаме да е от втора или от последна.
    
    $pageNum = 1;
    
    // ако има получени данни $_GET['page'] ще покаже страницата с номер $_GET['page']
    
    if(isset($_GET['page']))
    {
    $pageNum = $_GET['page'];
    }
    
    //тука определяме кои редове ще се показват - примерно ако $_GET['page']=2
    // ще покаже от 20 до 40-ти ред.
    $redove = ($pageNum - 1) * $broinastranica;
    //заявката ще върне само посочените редове - примерно от 20 до 40 в зависимост от $_GET['page']
    $query = " SELECT id,zag,user FROM statia " .
    " LIMIT $redove, $broinastranica";
    $result = mysql_query($query) or die('Error, query failed');
    
    echo "<table border=1>";
    // print-ваме посочените редове в таблица.
    while($row = mysql_fetch_array($result))
    {
    echo '<tr><td>'.$row['id'].'</td><td>'.$row['user'].'</td><td>'.$row['zag'].'</td></tr>';
    }
    
    echo"</table>";
    
    
    // проверяваме таблицата колко редове има
    $query = "SELECT COUNT(zag) AS numrows FROM statia";
    $result = mysql_query($query) or die('Error, query failed');
    $row = mysql_fetch_array($result, MYSQL_ASSOC);
    $numrows = $row['numrows'];
    
    
    $maxPage = ceil($numrows/$broinastranica);
    
    $self = $_SERVER['PHP_SELF'];
    $nomeranastranici = '';
    
    for($page = 1; $page <= $maxPage; $page++)
    {
    if ($page == $pageNum)
    {
    $nomeranastranici .= " $page ";
    }
    else
    {
    $nomeranastranici .= " <a href=\"$self?page=$page\">$page</a> ";
    }
    }
    
    
    
    // създаване на ликовете [предишна] [следваща]
    // както и линковете [първа] и [последна]
    
    
    if ($pageNum > 1)
    {
    $page = $pageNum - 1;
    $predishna = " <a href=\"$self?page=$page\"> [<<<<<] </a> ";
    
    $parva = " <a href=\"$self?page=1\">[първа]</a> ";
    }
    else
    {
    $predishna = ' ';
    $parva = ' ';
    }
    
    if ($pageNum < $maxPage)
    {
    $page = $pageNum + 1;
    $sledvashta = " <a href=\"$self?page=$page\"> [>>>>>] </a> ";
    
    $posledna = " <a href=\"$self?page=$maxPage\">[последна]</a> ";
    }
    else
    {
    $sledvashta = ' ';
    $posledna = ' ';
    }
    
    // показваме
    echo $parva . $predishna . $nomeranastranici . $sledvashta . $posledna;
    
    
    
    
    
    ?>

    Ако искате резултататите на всяка страница да са 300 -> променяте $broinastranica = 300;
    ако искате да не показва всички номера на страница а само [<<<<<] [>>>>>] -> променяте

    echo $parva . $predishna . $nomeranastranici . $sledvashta . $posledna;

    на

    echo $predishna .$sledvashta;

    Въпросите ги задавайте във форума!!!

    Урока е написан специално за web-tourist.net