Système de Pagination

Répondre
zOy
le 08/02/2008 à 09:57
zOy
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 ;)
Blue Star Investment
zOy
le 08/02/2008 à 10:06
zOy
Voici ma page d'affiche du contenu

  1. <?
  2. if(isset($_GET['id']))
  3. {
  4. if(is_numeric($_GET['id']))
  5. {
  6. $id = $_GET['id'];
  7. $sql = $db -> db_query("SELECT * FROM " . DB_PREFIX . "content WHERE id = '$id'");
  8. $rows = $db -> db_rows();
  9. $sql = $db -> db_result();
  10. $sql = $sql['0'];

  11. if($rows > 0)
  12. {
  13. $contitle = stripslashes($sql['title']);
  14. $context = stripslashes($sql['content']);

  15. $content = "$contitle<div class=\"examples\" id=\"example1\">
  16. $context</div>";

  17. if(!empty($sql['keywords'])){ $keywords = $sql['keywords'];}
  18. if(!empty($sql['description'])){ $description = $sql['description'];}

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

  20. $rss = 'rss.php';
  21. }
  22. else
  23. {
  24. $content = '<h2>' . CONTENT_013 . '</h2>' . CONTENT_014;
  25. }
  26. }
  27. else
  28. {
  29. $content = '<h2>' . CONTENT_013 . '</h2>' . CONTENT_014;
  30. }
  31. }
  32. else
  33. {
  34. $sql = $db -> db_query("SELECT id FROM " . DB_PREFIX . "content
  35. WHERE front = 'yes' LIMIT 1");
  36. $rows = $db -> db_rows();
  37. $sql = $db -> db_result();

  38. if($rows > 0)
  39. {
  40. header('Location: index.php?id=' . $sql['0']['id']);
  41. }
  42. else
  43. {
  44. $content = '<h2>' . CONTENT_013 . '</h2>' . CONTENT_014;
  45. }
  46. }
  47. ?>
Blue Star Investment
i M@N
le 08/02/2008 à 18:28
i M@N
Hello.

Cette fonction avec son exemple devrait t'aider si j'ai bien compris ton problème (faut que tu mettes le texte dans la variable $text) :
  1. <?php
  2. function cut_string($string, $charlimit){
  3. if(strlen($string) > $charlimit){
  4. $string = substr($string,'0',$charlimit);
  5. $array = explode(' ',$string);
  6. array_pop($array);
  7. $new_string = implode(' ',$array);
  8. return $new_string.'...';
  9. } else {
  10. return $string;
  11. }
  12. }
  13. $text = "Couper un texte trop long avec une fonction PHP";
  14. echo "<ul>";
  15. echo "<li><a href='#' title='".$text."'>"
  16. .cut_string($text, 20)."</a></li>";
  17. echo "</ul>";
  18. ?>


@+...
One Love, One Heart, One Unity.
zebden
le 08/02/2008 à 19:29
zebden
Lu,

tiens j'avais fait une fonction pour mettre en tableau les portions de texte de x caractères.

  1. <?php
  2. function cutStringByCharacters($string, $nb_Caracs, $tableau_text = '') {

  3. if(strlen($string) > $nb_Caracs) {

  4. // On calcule la position du curseur au première espace apres "n"
  5. // caractères.
  6. $position_curseur = strpos($string, ' ', intVal( $nb_Caracs ) );

  7. // S'il a trouvé un espace à partir du nième caractère on tronçonne.
  8. // Sinon on insert le dernier tronçon et on retourne le tableau.
  9. if($position_curseur == TRUE ) {

  10. // On Selectionne le tronçon et on l'insert dans le tableau.
  11. $chaine = substr($string, 0, $position_curseur );
  12. $tableau_text[] = $chaine.' ...';
  13. // On enlève le tronçon inséré et on répète l'opération avec
  14. // la chaine restante.
  15. $string = substr_replace($string, '' , 0, $position_curseur );
  16. // Fonction recursive.
  17. $tableau_text = cutStringByCharacters($string, $nb_Caracs, $tableau_text);
  18. }
  19. else {
  20. // Le dernier tronçon fais plus des "n" caracs mais aucune espace
  21. // n'as été trouvé.
  22. $tableau_text[] = $string;
  23. }
  24. }
  25. else {
  26. // Le dernier tronçon fais moins des "n" caracs
  27. $tableau_text[] = $string;
  28. }

  29. return $tableau_text;
  30. }

  31. // APRES
  32. $TableauTexte = cutStringByCharacters($Texte, 1500);

  33. //
  34. // SUIVANT LA PAGE, on enlève 1 car la première clé du tableau est 0.

  35. $page = $page - 1;

  36. echo $TableauTexte[$page];
  37. ?>


Bon courage ^^
zebdinou pour les intimes / Blog : http://www.zebden.fr
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours