Bonjour,

Voilà je me fais une petite page sur mon site qui présente des cartes postales avec une pagination; ca marche nickel, par contre si je peux controler le nombre de carte par page, je ne peux pas ordonancé cela comme je le souhaite.

J'ai un while qui parcourt ma base et qui affiche mes cartes, ok mais je voudrais n'afficher que 3 cartes par colonne à raison de 3 colonnes pour mon tableau. Je me dit que je dois mettre cela dans mon while mais... sans fausser ma pagnination, c'est pas gagné.

Est ce que kelk'un voit comment je peux préserver le principe de ma pagination en manipulant mon tableau.

Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<? 
	require_once("envsqlCartes.php");
	$connexion=mysql_connect($host, $login, $pass);
		if(!$connexion)
{
print "erreur de connexion";
}
else
 {			
$base=mysql_select_db($db);
 
if(!$base)
{
print"erreur de connexion a la base";
}
else
{	//////////////////////////////////CARTES////////////////////////////////////
$limit_par_page = 4; //limite par page
if(isset($_GET['page']) AND !empty($_GET['page'])) //si existe et n'est pas vide
{
 $page = intval($_GET['page']); // la variable est un nombre entier
}
else
{
 $page = 1; // si le numéro de page n'est pas spécifié dans l'URL, on amène le visiteur vers la page 1
}
$from = ($page - 1) * $limit_par_page; // $from désigne le premier nombre de la clause
 
$requete="SELECT c.id_carte, c.carte from cartes c order by c.carte 
DESC LIMIT $from, $limit_par_page ;";
 
print"<center><b><font color=#5F4954><u>Les cartes postales </u></font></center></b>";
$result=mysql_query($requete);
$nbenreg=mysql_num_rows($result);
 
	if($nbenreg==0)
	{		
	print "pas de resultat";
	mysql_close($connexion);
	exit();
	}
	else
	{
	print"<BR><center>";
	print"<table  bgcolor=#5F4954 border=1 BORDERCOLOR=#000040  WIDTH=400>";
							while($tableau=mysql_fetch_array($result))
	{													
	print"<tr>
<td>								
	<center><a href=cartesGrand.php?id_carte=$tableau[id_carte]><img src=$tableau[carte] width=110 height=80></a></center>
 </td>";
}			
print"</tr>
</table>";			
$requete = mysql_query('SELECT COUNT(*) AS CARTES FROM cartes'); // On compte le nombre de cartes
 
$donnees = mysql_fetch_assoc($requete);
 
$nb_pages = ceil($donnees['CARTES'] / $limit_par_page); 
// on calcule le nombre de pages 
for($i=1 ; $i<=$nb_pages ; $i++)
{
  if ($i == $page)
   {
  echo '['.$i.']'; 
 // si la page sur laquelle on est actuellement est celle qu'est en train de générer la boucle, on ne met pas de lien
  }
else
 {
  echo '<a href="cartes.php?page='.$i.'">'.$i.'</a>';
 }
}
 
 
 
							}
				}
	}			
?>
Bien sur j'ai tenté des boucles à l'intérieur de mon while principale, mais il zappe la principe de pagination.

Si quelqu'un a une idée... elle sera la bienvenue.

Merci