Fonction php nombre de pages

Fermé
aneantisseur Messages postés 384 Date d'inscription dimanche 8 mars 2009 Statut Membre Dernière intervention 13 juillet 2018 - 15 avril 2010 à 18:11
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 15 avril 2010 à 22:30
Salut, je suis en train de coder une fonction php qui me servira à calculer le nombre de pages en fonction du nombre de messages que je veux sur une page.
Le code :
function pages($nombre, $colonne, $table)
{
	$nombreDeMessagesParPage = $nombre; 

	$retour = mysql_query('SELECT COUNT(*) AS '.$colonne.' FROM '.$table.'');
	$donnees = mysql_fetch_array($retour);
	$totalDesMessages = $donnees[$colonne];

	$nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);

	for ($i = 1 ; $i <= $nombreDePages ; $i++)
	{
		$retour = '<a href="index.php?page=' . $i . '">' . $i . '</a>';
	}
return $retour;
}


$nombre correspond au nombre de messages que je veux sur une seule page
$colonne correspond au nombre d'entrées
$table correspond à la table

Le problème, c'est que cette fonction ne m'affiche que le lien vers la dernière page.
Un exemple : Je veux 5 messages par page, il y en a 7 dans la table et bien ca ne m'affichera qu'un seul lien qui pointera vers la page n°2.

Je ne voit pas ce qui cloche.
Merci.

A voir également:

1 réponse

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
15 avril 2010 à 22:30
<?php
function pages($nombre, $colonne, $table)
{
	$nombreDeMessagesParPage = $nombre; 
	//ce n'est pas une bonne idee d'utiliser le meme nom de variable  $retour pour deux choses différentes
	$requette = mysql_query('SELECT COUNT(*) FROM '.$table.'');
	//je ne vois pas ce que vient faire le nombre d'entrees $colonne dans la requette qui sert justement a rechercher ce nombre
	$donnees = mysql_fetch_row($requette);
	$totalDesMessages = $donnees[0];

	$nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);
	//ensuite tu faisait une boucle qui cahrgeait à chaque fois la variable $retour donc qui écrasait la valeur précédente
	//soit tu utilises un array pour le retour de la fonction 
	$retour=array();
	for ($i = 1 ; $i <= $nombreDePages ; $i++)
	{
		$retour[] = '<a href="index.php?page=' . $i . '">' . $i . '</a>';
	}
	// OU tu concatènes les liens comme ci dessous
	/*
	$retour="";
	for ($i = 1 ; $i <= $nombreDePages ; $i++)
	{
		$retour.= '<a href="index.php?page=' . $i . '">' . $i . '</a>';
		$retour.='<br />'; // ou '&nbsp;' //pour un espace ou tu mets ce que tu veux pour déparer les liens
	}
	*/
return $retour;
}
0