Bonsoir à tous,
J'ai à développer un affichage d'une liste d'albums, dont ont choisit la 1ere lettre du nom de l'artiste sur la page précédente.
J'aimerais découper l'affichage par pages.
J'ai donc inséré un petit script, la première page fonctionne correctement, mais dès que je souhaite passer aux pages suivantes, ma requête ne fonctionne plus (et je sais même pourquoi...).
En effet, le choix de la lettre se fait par un passage de variable, par exemple :
<a id="liste" href="liste_alph.php?choix=A">A</a>
qui est récupéré sur la page devant servir d'affichage avec :
Mon script est le suivant :
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
| <?php
$choix=$_GET['choix'];
$page = isset($_GET['page']) ? $_GET['page'] : '';
// Prepare le requete MySql
$requete = "select * from ARTISTES where ART_NOM like '$choix%'";
$ret = mysql_query($requete);
// Variable nombre d'enreg par page
$limit=3;
if($debut==""){$debut=0;}
$debut=$page*$limit;
// Compte le nombre de champ
$nb_total=mysql_num_rows($ret);
// Requete
$limite=mysql_query("$requete limit $debut,$limit");
// Affiche le page par page avec ses liens
if ($page>0) {
$precedent=$page-1;
echo "<a href=\"$PHP_SELF?page=$precedent\">PRECEDENT</a>";
}
$i=0;
$j=1;
if($nb_total>$limit) {
while($i<($nb_total/$limit)) {
if($i!=$page){echo "<a href=\"$PHP_SELF?page=$i\">$j</a> ";}
else { echo "<b>$j</b>";}
$i++;$j++;
}
}
if($debut+$limit<$nb_total) {
$suivant=$page+1;
echo "<a href=\"$PHP_SELF?page=$suivant\">SUIVANT</a>";
}
//Affichage le contenu de votre table
//avec une limite, dans l'exemple $limit est à 3
$limit_str = "LIMIT ". $page * $limit .",$limit";
$result = mysql_query("SELECT * FROM artistes WHERE art_nom like '$choix%' ORDER BY art_nom ASC $limit_str");
while ($row =mysql_fetch_array ($result) )
{
$art=$row['ART_NOM'];
echo '
<table id="affichage" width="237px" align="left" valign="middle" cellpadding="1" cellspacing="0">
<tr valign="top" border="0">
<td width="90" border="0">
<img src="' . $row['ART_IMAGE'] . '" width="90" height="90" border="1" style="border-color:#9F9F9F;">
</a>
</td>
' ;
}
?> |
Ma première page marche car la variable $choix est récupérée, mais elle n'est plus existante pour les autres pages, donc l'affichage renvoie tous les artistes et non pas ceux commençant par la lettre choisie.
Si quelqu'un à une solution à ce problème...
Partager