Problème affichage PHP/MYSQL

Signaler
Messages postés
8
Date d'inscription
dimanche 16 septembre 2007
Statut
Membre
Dernière intervention
6 août 2008
-
Messages postés
624
Date d'inscription
mardi 6 mai 2003
Statut
Membre
Dernière intervention
14 décembre 2009
-
Bonjour,

normalement je me débrouille tout seul mais là vraiment je me cherche. Je vous explique :

j'ai 2 tables soit genres et artistes

la page 1 je fait afficher toutes les données avec ce code :

<?php
$h = $_POST['name'];

// how many rows to show per page
$rowsPerPage = 24;

// 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 nom,genres,origine,images_tn FROM groupes WHERE genres LIKE '%$h%' UNION SELECT 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'];
?>




<center>
<form method="post" action="genres_details.php">
" name="img" border="0">
">
</form>,
<?php echo "$nom"; ?>,
<?php echo "$genres"; ?>,
<?php echo "$origine"; ?>

<?php
}

echo '
';

// how many rows we have in database
$query = "SELECT COUNT(*) AS numrows FROM groupes";
$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 = " [Précédente] ";

$first = " [Première Page] ";
}
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 = " [Suivante] ";

$last = " [Dernière Page] ";
}
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 . " Page $pageNum de $maxPage " . $next . $last;
?>

Jusqu'ici tout va bien les données des 2 tables s'affichent très bien.

Mon problème est quand je clique sur une images de cette page il m'envoie sur la page genres_details.php

Le problème est que je ne suis pas capable de faire afficher les données sur cette page, il me donne un message d'erreur Warning:
mysql_fetch_array(): supplied argument is not a valid MySQL result
resource in /home2/nb3390/public_html/zonespectacle/genres_details.php
on line 13

voici mon code pour la page genres_details.php

<?php
if (isset($_POST['img'])) // Si la variable existe
{
$pict = $_POST['img'];

}
include ("connexion.php");

$reponse = mysql_query("SELECT * FROM groupes WHERE id=$pict UNION SELECT * FROM artistes WHERE id=$pict"); // Requête SQL

// On fait une boucle pour lister tout ce que contient la table :

while ($donnees = mysql_fetch_array($reponse) )

{ // boucle parcours des resultats

?>

<?php echo $donnees['nom']; ?>



"/>





<?php echo $donnees['quand']; ?>

<?php echo $donnees['lieu']; ?>

<?php echo $donnees['ville']; ?>


Si quelqu'un pouvait m'éclairer j'en serais ravi car je cherche
depuis longtemps et je ne trouve pas le problème. À noter que l'erreur
est pour cette ligne :

while ($donnees = mysql_fetch_array($reponse) )

Donc c'est forcément ma requête de la page genres_details.php qui n'est pas bonne.

Merci d'avance pour l'aide.

4 réponses

Messages postés
510
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
5 juillet 2009
2
Utilise la fonction mysql_error(), par ce que a tous les coups tu as une erreur dans ta requete

mysql_query(requete) or die(mysql_error())

Et colle nous l'erreur
Messages postés
8
Date d'inscription
dimanche 16 septembre 2007
Statut
Membre
Dernière intervention
6 août 2008

Salut merci pour ta réponse

J'ai ajouté ta ligne d'erreur comme ceci :

$requete = mysql_query("SELECT * FROM groupes WHERE id=$pict UNION SELECT * FROM artistes WHERE id=$pict"); // Requête SQL

// On fait une boucle pour lister tout ce que contient la table :
mysql_query($requete) or die(mysql_error());
while ($donnees = mysql_fetch_array($requete) )

{ // boucle parcours des resultats ........

ça me dit query was empty

Mais est-ce que ma requete est bonne ?
$requete = mysql_query("SELECT * FROM groupes WHERE id=$pict UNION SELECT * FROM artistes WHERE id=$pict");

Merci encore pour votre aide
Messages postés
8
Date d'inscription
dimanche 16 septembre 2007
Statut
Membre
Dernière intervention
6 août 2008

Un petit UP :)

Il y a surement un pro ici qui voit ce qui cloche. depuis 2 jours que j'essaie toute sortes de solution pour ma requête et ça ne fonctionne toujours pas.
Messages postés
624
Date d'inscription
mardi 6 mai 2003
Statut
Membre
Dernière intervention
14 décembre 2009
1
hmm c'est pas ca...

$requete = mysql_query("SELECT * FROM groupes WHERE id=$pict UNION SELECT * FROM artistes WHERE id=$pict"); // Requête SQL

// On fait une boucle pour lister tout ce que contient la table :
mysql_query($requete) or die(mysql_error());

mais =>

$requete = mysql_query("SELECT * FROM groupes WHERE id=$pict UNION SELECT * FROM artistes WHERE id=$pict") or die(mysql_error()); // Requête SQL