un tableau ordonné dans mon while
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:
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