Système de Pagination
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
le 08/02/2008 à 10:06
zOy
Voici ma page d'affiche du contenu
<?
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<div class=\"examples\" id=\"example1\">
$context</div>";
if(!empty($sql['keywords'])){ $keywords = $sql['keywords'];}
if(!empty($sql['description'])){ $description = $sql['description'];}
$pagetitle = $pagetitle . ' | ' . stripslashes($sql['title']);
$rss = 'rss.php';
}
else
{
$content = '<h2>' . CONTENT_013 . '</h2>' . CONTENT_014;
}
}
else
{
$content = '<h2>' . CONTENT_013 . '</h2>' . 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 = '<h2>' . CONTENT_013 . '</h2>' . CONTENT_014;
}
}
?>
Blue Star Investment
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) :
<?php
function cut_string($string, $charlimit){
if(strlen($string) > $charlimit){
$string = substr($string,'0',$charlimit);
$array = explode(' ',$string);
array_pop($array);
$new_string = implode(' ',$array);
return $new_string.'...';
} else {
return $string;
}
}
$text = "Couper un texte trop long avec une fonction PHP";
echo "<ul>";
echo "<li><a href='#' title='".$text."'>"
.cut_string($text, 20)."</a></li>";
echo "</ul>";
?>
@+...
One Love, One Heart, One Unity.
Lu,
tiens j'avais fait une fonction pour mettre en tableau les portions de texte de x caractères.
<?php
function cutStringByCharacters($string, $nb_Caracs, $tableau_text = '') {
if(strlen($string) > $nb_Caracs) {
// On calcule la position du curseur au première espace apres "n"
// caractères.
$position_curseur = strpos($string, ' ', intVal( $nb_Caracs ) );
// S'il a trouvé un espace à partir du nième caractère on tronçonne.
// Sinon on insert le dernier tronçon et on retourne le tableau.
if($position_curseur == TRUE ) {
// On Selectionne le tronçon et on l'insert dans le tableau.
$chaine = substr($string, 0, $position_curseur );
$tableau_text[] = $chaine.' ...';
// On enlève le tronçon inséré et on répète l'opération avec
// la chaine restante.
$string = substr_replace($string, '' , 0, $position_curseur );
// Fonction recursive.
$tableau_text = cutStringByCharacters($string, $nb_Caracs, $tableau_text);
}
else {
// Le dernier tronçon fais plus des "n" caracs mais aucune espace
// n'as été trouvé.
$tableau_text[] = $string;
}
}
else {
// Le dernier tronçon fais moins des "n" caracs
$tableau_text[] = $string;
}
return $tableau_text;
}
// APRES
$TableauTexte = cutStringByCharacters($Texte, 1500);
//
// SUIVANT LA PAGE, on enlève 1 car la première clé du tableau est 0.
$page = $page - 1;
echo $TableauTexte[$page];
?>
Bon courage ^^
zebdinou pour les intimes / Blog : http://www.zebden.fr
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: