Afficher sur plusieurs pages

Gabor
Invité n'ayant pas de compte PHPfrance

19 févr. 2006, 00:41

Salut à tous, alors je part de ce code

Code : Tout sélectionner

<? $rep = "contenu/"; $dir = opendir($rep); function dd($date) { return date("d/m/Y H:i:s",$date); } while ($f = readdir($dir)) { if ($f !="." && $f != "..") { if(is_dir($rep."/".$f)) { echo date("d/m/Y"); echo "<img width='16px' height='16px' src='contenu/$f/icon.jpg' alt=''> <a href='contenu/$f'>$f</a><br>"; include ('contenu/'.$f.'/description.txt'); echo "<br>"; } } } closedir($dir); ?>
En clair ça affiche les dossiers du dossier contenu, la date de création du dossier, le fichier icon.jpg qui est dans le dossier, une description qui se trouve dans un fichier .txt du même nom et bien sur un lien vers le dossier en question.

Mais ce que je cherche absolument à faire c'est de séparer ça sur plusieurs pages, genre a chaque 20 dossiers affichés il faut passer a la page suivante pour afficher la suite. J'ai vu plusieurs façon de séparer ça mais seulement quand c'est un listage a partir de la base de donnée.
Voila je compte sur vous pour me dire si c'es faisable au moins, et si oui comment.

Merci d'avance :)

Ps : désolé de ne pas m'inscrire je le ferais surement par la suite :$

ViPHP
ViPHP | 3607 Messages

19 févr. 2006, 00:58

Juste une question....à quoi sert ta fonction dd() ?
je ne vois nulle part un appel à cette dernière :?: :-k

edit: la prochaine fois essaye de mettre du code php entre les balises [ php] et [ /php]... merci :wink:

Petit nouveau ! | 2 Messages

19 févr. 2006, 01:07

Pour tout te dire le code de début n'est pas de moi donc je n'en sais rien :D J'ai seulement fait la partie avec les echo :)

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

19 févr. 2006, 16:40

essaie comme ceci:
<?
$rep = "contenu/";
$dir = opendir($rep);

$debut=(isset($_GET['page'])) ? $_GET['page'] : 0;

$nb_elem= 20; // 20 étant le nombre de dossiers par page

$debut *= $nb_elem; // début d'affichage des dossiers

$i=0; 

$page=0; //début des pages

$barre= ""; //barre de navigation 1| 2| 3 ..... pages

while ($f = readdir($dir))
{
	if($i % $nb_elem == 0) // tous les 20 dossiers création d'un lien
	{			
		$barre .= '<a href="?page='.$page.'" >'.$page.'</a> | ';
		$page++;
	}
	
	if ($f !="." && $f != "..")
	{
		if((is_dir($rep."/".$f)) && ($i >= $debut && $i <= $debut+$nb_elem )) // si $i (nombre de dossiers affichers est compris entre le début et début + nombre a aficher
		{			
			echo date("d/m/Y");
			echo "<img width='16px' height='16px' src='contenu/$f/icon.jpg' alt=''> <a href='contenu/$f'>$f</a><br>";
			include ('contenu/'.$f.'/description.txt');
			echo "<br>";
			$i++;
		}
	}
	
}
closedir($dir); 

$barre .= '<a href="?page='.$page.'" >'.$page.'</a>';

echo '<p>'.$barre.'</p>';
?>
pas testé :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Petit nouveau ! | 2 Messages

19 févr. 2006, 19:52

Un grand merci a toi, j'ai modifié quelques trucs pour mon utilisation et avec tout ça j'suis bien satisfait, encore merci ;)

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

19 févr. 2006, 19:56

de rien, si tu pouvais donner ton code en exemple pour des éventuels utilisateurs interessés :)

n'oublis pas le [Résolu] :wink:
EDIT: en faite tu ne peux pas car tu as posté le 1er message en invité... comptons sur un Modo bien veillant 8)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 686 Messages

24 mars 2007, 21:26

J'ai un problème, lorsque je veux adapter ce code il n'y a que 1|2 qui s'affiche
Pourriez vous me dire d'ou que ca colle pas ?

Code : Tout sélectionner

if($cat == 'en'){ $rep = "environnement/"; $dir = opendir($rep); $debut=(isset($_GET['page'])) ? $_GET['page'] : 1; $nb_elem= 4; // 4 étant le nombre de dossiers par page $debut *= $nb_elem; // début d'affichage des dossiers $i=1; $page=1; //début des pages $barre= ""; //barre de navigation 1| 2| 3 ..... pages while ($fr = readdir($dir)) { if($i % $nb_elem == 1) // tous les 20 dossiers création d'un lien { $barre .= '<a href="?rubrique='.$rubrique.'&cat='.$cat.'&page='.$page.'" >'.$page.'</a> | '; $page++; } if ($f !="." && $f != "..") { if(is_file($rep.$fr)&& ($i >= $debut && $i <= $debut+$nb_elem )) { include ("$rep/$fr") ; $i++; } $barre .= '<a href="?rubrique='.$rubrique.'&cat='.$cat.'&page='.$page.'" >'.$page.'</a>'; echo '<p>'.$barre.'</p>'; break; } }

jed
Eléphant du PHP | 218 Messages

12 mai 2007, 15:23

Bonjour, je rencontre également des problèmes avec cette méthode (j'ai limité à 10 le nombre d'affichages): http://www.hudescharfe.com/skins.php?ca ... uns&page=0