Fonction php nombre de pages

aneantisseur Messages postés 377 Date d'inscription   Statut Membre Dernière intervention   -  
Alain_42 Messages postés 5413 Statut Membre -
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.

1 réponse

  1. Alain_42 Messages postés 5413 Statut Membre 904
     
    <?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