Pagination PHP

Signaler
Messages postés
2
Date d'inscription
samedi 22 octobre 2005
Statut
Membre
Dernière intervention
8 février 2008
-
Messages postés
1123
Date d'inscription
mardi 8 janvier 2002
Statut
Modérateur
Dernière intervention
21 avril 2009
-
Bonjour, je voudrais savoir comment faire un système de pagination (precedent | 1 - 2 - 3 - 4 | suivant)


Enfête je voudrais limiter la taille de la page par rapport aux nombres de caractères.


C'est à dire, que lorsque l'on dépasse les 1500 caractères, une deuxieme (ou troisième ou quatrième et ainsi de suite) se créée.


Mais je ne sais vraiment pas comment y procéder.


J'ai vu qu'il éxistait des solutions en ajax, mais qui limitent les
entrées SQL et moi je cherche à limiter les caractère et non-pas les
entrées SQL.


Merci d'avance ;)

Voici ma page d'affichage

<?

if(isset($_GET['id']))

{

    if(is_numeric($_GET['id']))

    {

        $id = $_GET['id'];

        $sql = $db -> db_query("SELECT * FROM " . DB_PREFIX . "content WHERE id = '$id'");

        $rows = $db -> db_rows();

        $sql =  $db -> db_result();

        $sql = $sql['0'];

        

        if($rows > 0)

        {

            $contitle = stripslashes($sql['title']);

            $context = stripslashes($sql['content']);

            

            $content = "$contitle

                $context
";

            

            if(!empty($sql['keywords'])){ $keywords = $sql['keywords'];}

            if(!empty($sql['description'])){ $description = $sql['description'];}

            

            $pagetitle = $pagetitle . ' | ' . stripslashes($sql['title']);

            

            $rss = 'rss.php';

        }

        else

        {

            $content = '' . CONTENT_013 . '
' . CONTENT_014;

        }

    }

    else

    {

        $content = '' . CONTENT_013 . '
' . CONTENT_014;

    }

}

else

{

    $sql = $db -> db_query("SELECT id FROM " . DB_PREFIX . "content 

    WHERE front = 'yes' LIMIT 1");

    $rows = $db -> db_rows();

    $sql = $db -> db_result();

    

    if($rows > 0)

    {

        header('location: index.php?id=' . $sql['0']['id']);

    }

    else

    {

        $content = '' . CONTENT_013 . '
' . CONTENT_014;

    }

}

?>

1 réponse

Messages postés
1123
Date d'inscription
mardi 8 janvier 2002
Statut
Modérateur
Dernière intervention
21 avril 2009
1
Tu peux faire un test sur la taille de tes caractères (fonction strlen) que tu divise par le nombre de caractères que tu veux limiter par page, tu arrondi à l'entier supérieur (fonction ceil) et tu à ton nombre de page. Ensuite, tu affiche ton message du caractère page*(Nombre de caractères par pages) à (page + 1) * (Nombre de caractères par pages) (fonction substr).

Tu aura aussi probablement besoin de la fonction wordwrap pour ne pas découper un mot en deux (fonction wordwrap).

Pour récuperer la page, tu peux faire un $_GET['page'] et passer la variable page en paramètre dans l'url

Voir :
http://php.net/strlen
http://php.net/ceil
http://php.net/substr
http://php.net/wordwrap

http://www.ReFlectiv.Net, centre R&D de mes projets :)