Strankování

 2013-06-21 00:00:00
 Dmitry Burobin

Chtěl bych Vám ukázat, jak se dá udělat jednoduché strankování ( procedurálně ), pokročilé strankování Vám ukážu až v dalším článku ( pokročilé, protože budeme používat OOP a vytvoříme si třídu Strankovani, která bude velice dynamická ), tento článek je hlavně proto, abyste pochipoli ten princip. A použijí k tomu komentáře, které jsme vytvořili ve článku Systém komentářů pomocí jQuery a Ajax, ale určitě to budete moci přizpůsobit podle Vašich potřeb.

Strankování.

Princip je založen na tom, že potřebujeme vypočítat minimální hodnotu, od které se budou vybírat data z databáze, kterou následně dosadíme do MySQL příkazu pro výběr všech záznamu.

<?php
//počet vypsaných výsledků na jednu stránku, toto je statická hodnota
$max 5

// vybereme z tabulky počet záznamu, které budeme chtit zobrazit
$query mysql_query(" SELECT COUNT(`id`) FROM `comments` "); 
if( !
$query ) { exit(" MySQL chyba. "); }
else {
        
    if( 
mysql_num_rows$query ) > ) {
        
        
// do proměnne pocet_zaznamu uložime výsledek MySQL přikazu
        
$pocet_zaznamu mysql_result$query); 
        
// vypočítame počet stránek
        
$pocet_stranek ceil$pocet_zaznamu/$max ); 
        
        
// do proměnne page uložíme hodnotu $_GET parametru URL, což je číslo konkretní stránky
        
$page = isset( $_GET['page'] ) ? mysql_real_escape_string$_GET['page'] ) : '1'
        

        if( empty( 
$page ) || $page == '' ) {
            
            
// do proměnne min uložíme počáteční záznam, od kterého budeme vypisovat výsledky z databáze,
            // pokud je roven 0, tak začneme vypisovat data od prvního záznamu
            
$min 0
            
        } else {
            
            
// pokud parametr $_GET['page'] existuje, tzn. že je člověk na nějaké jiné stránce než je počáteční
            // pak podle jednoduchého vzorečku vypočítame min
            
$min = ( $page $max ) - $max
            
        }
    
    } else {
        exit(
" V tabulce neni zadny zaznam. ");
    }
        
}

?>
Tento kód přidejte na začátek souboru comment.php, aby vypadal takto:
<?php
require_once 'db.php';

$max 5;

$query mysql_query(" SELECT COUNT(`id`) FROM `comments` "); 
if( !
$query ) { exit(" MySQL chyba. "); }
else {
        
    if( 
mysql_num_rows$query ) > ) {
        
        
$pocet_zaznamu mysql_result$query); 
        
$pocet_stranek ceil$pocet_zaznamu/$max ); 
        
        
$page = isset( $_GET['page'] ) ? mysql_real_escape_string$_GET['page'] ) : '1'

        if( empty( 
$page ) || $page == '' ) {
            
            
$min 0
            
        } else {
            
            
$min = ( $page $max ) - $max;
            
        }
    
    } else {
        exit(
" V tabulce neni zadny zaznam. ");
    }
        
}


$query mysql_query("
         SELECT `id`,`parent_id`,`name`,`komentar`, 
         DATE_FORMAT(date, '%d %M %Y %H:%i') as date_add
         FROM `comments_26` ORDER BY `id` ASC LIMIT "
$min .","$max ."  
         "
);
if(!
$query) { echo mysql_error() . " - " mysql_errno(); }
else {

    while( 
$result mysql_fetch_assoc($query) ) {
        
        
$data[$result['id']] = $result;
        
    }
    .
    .
    .
?>
a všiměte si, že jsem upravil příkaz pro výběr všech komentářů, doplnil jsem ho o operátor LIMIT, který jako parametry má minimální hodnotu ( počáteční ), od které se výběr dat začne a maximální hodnotu, do které se ten vyběr bude pokračovat. Tímto vybereme potřebný počet komentářů.

index.php

Na hlavní stránku přidáme několik řádků kódu, které zobrazí číslice.

<?php
/*Soubor pro vybírání komentářů z databáze*/
require_once 'comment.php';
?>
<!DOCTYPE html>
<
html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">

<
head>
    <
title>Systém komentářů.</title>
    <
meta charset="utf-8" >
    
    <
link rel="stylesheet" href="style.css"> <!-- soubor se styly -->
    <
script src="jquery-1.7.1.min.js"></script> <!-- připojení jquery -->
    <script src="comment.js"></script> <!-- funkce potřebné pro přidávání komentářů -->
    
</head>
<body>
<ul id="commentWrapper">
<?php
/*Zde v proměnné $comments jsou komentáře*/
echo $comments;
?>
<!-- formulář pro přidávání komentářů -->
</
ul>    
<?php
/********************************NOVÉ****************************/

// for cyklem projdeme všechny stránky a zobrazíme je na obrazovce, která je aktivní bude tučna.
for( $i=1$i <= $pocet_stranek$i++ ) { 
     
     
// stránka neaktivní, tudiž link na ní
    
if( $page != $i ) { echo '<a href="?page='.$i.'">['.$i.']</a>&amp;nbsp;'; }  
    
// aktivní stránka, tudiž bude zobrazená tučně 
    
if( $page == $i ) { echo '<strong>['.$i.']&amp;nbsp;</strong>'; } 
    
}

/********************************KONEC NOVÉHO****************************/
?>

    <div id="commentBox">
        <
input class="validate" type="text" name="name" >
        <
input id="parent" type="hidden" name="parent_id" value="">
        <
div class="commentText">
            <
textarea name="text"></textarea>
        </
div>
        <
button>Přidat</button><img class="loader" src="loader.gif">
    </
div>
</
body>
</
html>

Závěr

Chtěl bych poděkovat uživateli RomanGrigar, který mi nabídnul toto téma. V dalším článku Vám ukážu pokročilé strankování s použitím OOP, vytvořime si třídu Strankovani.

Systém Orphus
Napište komentář.
Celkem komenrářů(74)
Ronweix - 2017-11-16  21:58:01
 Zithromax And Coumadin Interaction Levitra Alle Donne [url=http://cheaplevi.com]levitra samples ove
ight[/url] Clomid Vente
Ronweix - 2017-10-30  00:50:58
 Cash On Delivery Bentyl Viagra In Canada For Sale Cialis Pills Aust [url=http://sildenaf100mg.com]viagra[/url] Cialis Luststeigerung Sick Kitten Liquid Amoxicillin
Ronweix - 2017-10-29  09:22:52
 How Much Does Viagra Cost At Costco 104 How To Buy Bentyl 20mg Thyroxine For Sale [url=http://levibuying.com]levitra 20 mg cost walmart[/url] Amoxicillin Strep Throat
Ronweix - 2017-10-29  09:22:51
 How Much Does Viagra Cost At Costco 104 How To Buy Bentyl 20mg Thyroxine For Sale [url=http://levibuying.com]levitra 20 mg cost walmart[/url] Amoxicillin Strep Throat
Ronweix - 2017-10-29  09:22:50
 How Much Does Viagra Cost At Costco 104 How To Buy Bentyl 20mg Thyroxine For Sale [url=http://levibuying.com]levitra 20 mg cost walmart[/url] Amoxicillin Strep Throat
Ronweix - 2017-10-29  09:22:49
 How Much Does Viagra Cost At Costco 104 How To Buy Bentyl 20mg Thyroxine For Sale [url=http://levibuying.com]levitra 20 mg cost walmart[/url] Amoxicillin Strep Throat
Ronweix - 2017-10-21  04:51:20
 Levitra Dosaggio Essere Discount Codes For Pharmacy Express [url=http://howtogetvia.com]viagra online[/url] Achat Viagra Legal Walmart Formulary
Ronweix - 2017-10-21  04:51:19
 Levitra Dosaggio Essere Discount Codes For Pharmacy Express [url=http://howtogetvia.com]viagra online[/url] Achat Viagra Legal Walmart Formulary
Ronweix - 2017-10-21  04:51:17
 Levitra Dosaggio Essere Discount Codes For Pharmacy Express [url=http://howtogetvia.com]viagra online[/url] Achat Viagra Legal Walmart Formulary
Ronweix - 2017-10-21  04:51:16
 Levitra Dosaggio Essere Discount Codes For Pharmacy Express [url=http://howtogetvia.com]viagra online[/url] Achat Viagra Legal Walmart Formulary
Ronweix - 2017-10-15  11:32:43
 Cialis Infarto Types Of Propecia [url=http://genericcial.com]viagra cialis[/url] Cyntra Viagara Radio Commercials Viagra Fait Maison Dadha Pharmacy
Ronweix - 2017-10-15  11:32:42
 Cialis Infarto Types Of Propecia [url=http://genericcial.com]viagra cialis[/url] Cyntra Viagara Radio Commercials Viagra Fait Maison Dadha Pharmacy
Ronweix - 2017-10-15  11:32:41
 Cialis Infarto Types Of Propecia [url=http://genericcial.com]viagra cialis[/url] Cyntra Viagara Radio Commercials Viagra Fait Maison Dadha Pharmacy
Ronweix - 2017-10-15  11:32:39
 Cialis Infarto Types Of Propecia [url=http://genericcial.com]viagra cialis[/url] Cyntra Viagara Radio Commercials Viagra Fait Maison Dadha Pharmacy
Ronweix - 2017-10-12  21:59:13
 Achat Cialis 20 France Propecia Consumo Cialis Pagamento Contrassegno [url=http://cheapviapills.com]buy viagra online[/url] Voyage Levitra
Ronweix - 2017-10-11  15:21:40
 Legally Doryx With Next Day Delivery Pharmacy Price Can I Buy Nexium Online [url=http://cheapvia25mg.com]generic viagra[/url] Cheap Prescription Prices Levitra Vs Viagra Vs Cialis
Ronweix - 2017-10-11  15:21:38
 Legally Doryx With Next Day Delivery Pharmacy Price Can I Buy Nexium Online [url=http://cheapvia25mg.com]generic viagra[/url] Cheap Prescription Prices Levitra Vs Viagra Vs Cialis
Ronweix - 2017-10-11  15:21:37
 Legally Doryx With Next Day Delivery Pharmacy Price Can I Buy Nexium Online [url=http://cheapvia25mg.com]generic viagra[/url] Cheap Prescription Prices Levitra Vs Viagra Vs Cialis
Ronweix - 2017-10-11  15:21:36
 Legally Doryx With Next Day Delivery Pharmacy Price Can I Buy Nexium Online [url=http://cheapvia25mg.com]generic viagra[/url] Cheap Prescription Prices Levitra Vs Viagra Vs Cialis
Ronweix - 2017-10-03  19:14:53
 Fluoxetine With Ove
ight Delivery [url=http://sildenaf100mg.com]buy viagra[/url] Achat Lioresal Novartis To Last Longer In Bed Purchase Cheap Cialis
[1] [2] [3] [4] 
*v komentářich nesmíte používat sprostá slova a odkazy!!!Děkuji za pochopeni.