Count defectueux PHP/MYSQL
Posté : 08 août 2008, 13:06
Bonjour,
voilà je récupère une variable et j'utilise pour l'affichage un système de page et je travaille sur 2 tables en même temps.
Mon code:
Si quelqu'un pouvait m'aider à résoudre ce problème je lui en serait reconnaissant
Merci d'avance !
voilà je récupère une variable et j'utilise pour l'affichage un système de page et je travaille sur 2 tables en même temps.
Mon code:
<?php
$h = $_POST['name'];
// how many rows to show per page
$rowsPerPage = 10;
// by default we show first page
$pageNum = 1;
// if $_GET['page'] defined, use it as page number
if(isset($_GET['page']))
{
$pageNum = $_GET['page'];
}
// counting the offset
$offset = ($pageNum - 1) * $rowsPerPage;
$requete = mysql_query("SELECT id,nom,genres,origine,images_tn FROM groupes WHERE genres LIKE '%$h%' UNION SELECT id,nom,genres,origine,images_tn FROM artistes WHERE genres LIKE '%$h%' ORDER BY nom LIMIT $offset, $rowsPerPage");
while($donnees = mysql_fetch_array($requete))
{ // boucle parcours des resultats
$id = $donnees['id'];
$nom = $donnees['nom'];
$quand = $donnees['quand'];
$lieu = $donnees['lieu'];
$ville = $donnees['ville'];
$origine = $donnees['origine'];
$genres = $donnees['genres'];
$images = $donnees['images'];
$images_tn = $donnees['images_tn'];
?>
</p>
<p>
<p>
<p>
<center>
<table align="center" width="450" border="0" cellpadding="0">
<tr>
<td width="52" valign="middle"><form method="post" action="genres_details.php">
<input type="image" border="0" value="Submit" src="<?php echo "$images_tn"; ?>" name="img" border="0">
<input type="hidden" name="img" value="<?php echo "$images_tn"; ?>">
</form></td>
<td width="133" valign="middle" class="Style23"><?php echo "$nom"; ?></td>
<td width="133" valign="middle" class="Style23"><?php echo "$genres"; ?></td>
<td width="133" valign="middle" class="Style23"><?php echo "$origine"; ?></td>
</tr>
</table>
<?php
}
echo '<br>';
// how many rows we have in database
$query = "SELECT COUNT(*) AS numrows FROM groupes WHERE genres LIKE '%$h%' UNION SELECT COUNT(*) AS numrows FROM artistes WHERE genres LIKE '%$h%'";
$result = mysql_query($query) or die('Error, query failed');
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];
// how many pages we have when using paging?
$maxPage = ceil($numrows/$rowsPerPage);
$self = $_SERVER['PHP_SELF'];
// creating 'previous' and 'next' link
// plus 'first page' and 'last page' link
// print 'previous' link only if we're not
// on page one
if ($pageNum > 1)
{
$page = $pageNum - 1;
$prev = " <a href=\"$self?page=$page\">[Précédente]</a> ";
$first = " <a href=\"$self?page=1\">[Première Page]</a> ";
}
else
{
$prev = ' [Précédente] '; // we're on page one, don't enable 'previous' link
$first = ' [Première Page] '; // nor 'first page' link
}
// print 'next' link only if we're not
// on the last page
if ($pageNum < $maxPage)
{
$page = $pageNum + 1;
$next = " <a href=\"$self?page=$page\">[Suivante]</a> ";
$last = " <a href=\"$self?page=$maxPage\">[Dernière Page]</a> ";
}
else
{
$next = ' [Suivante] '; // we're on the last page, don't enable 'next' link
$last = ' [Dernière Page] '; // nor 'last page' link
}
// print the page navigation link
echo $first . $prev . " <strong>Page $pageNum de $maxPage</strong> " . $next . $last;
?>
Voilà sur la première page exemple page 1 de 3 tout s'affiche à merveille exemple si ma variable récupérée est POP et bien ça affiche tout où biensur la colonne genre contient POP. Le problème survient quand je vais sur la 2 ième page ( 2 de 3) là tout est mêlé et je suis certain que le problème vient de ma ligne en gras mais j'ai beau essayé différentes requête je ne trouve pas la bonne.Si quelqu'un pouvait m'aider à résoudre ce problème je lui en serait reconnaissant
Merci d'avance !