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

<?
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
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) :
<?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.
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.

<?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
Répondre

Ecrire un message

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