Aller au contenu

Erreurs sur les jointures


joboy84

Sujets conseillés

Bonjour,

Je suis face à un dilemme...Je dois utiliser une jointure pour le première fois et je n'y parviens pas.

Je souhaite mettre en place un système de pagination.

J'ai les données à extraire dans la table ListeApercuJeux, et je souhaite afficher les données en les classant par note.

En effet, mes membres peuvent noter des sites de jeux. Je souhaiterai donc afficher en premier, les sites ayant obtenus la meilleure note.

Voici la structure de mes tables:

CREATE TABLE IF NOT EXISTS `ListeApercuJeux` (
`NomSiteJeux` varchar(20) character set latin1 collate latin1_general_ci NOT NULL,
`DescriCourte` varchar(300) character set latin1 collate latin1_general_ci default NULL,
`LienHttp` varchar(110) character set latin1 collate latin1_general_ci default NULL,
`LienImg` varchar(90) character set latin1 collate latin1_general_ci default NULL,
`DateInsertion` date NOT NULL default '0000-00-00',
`Sponsor` varchar(20) character set latin1 collate latin1_general_ci default NULL,
`Statut` varchar(9) character set latin1 collate latin1_general_ci default NULL,
PRIMARY KEY (`NomSiteJeux`)
) ENGINE=MyISAM;

CREATE TABLE IF NOT EXISTS `SystemeDeVote` (
`NomSiteJeux` varchar(20) NOT NULL,
`nbre_de_votes` int(9) NOT NULL default '0',
`nbre_total_points` int(9) NOT NULL default '0',
`moyenne` float NOT NULL,
PRIMARY KEY (`NomSiteJeux`)
) ENGINE=MyISAM;

La note est contenue dans le champ moyenne de la table SystemeDeVote. Je pense que la jointure doit se faire avec le champ NomSiteJeux qui contient le nom du site de jeux...

<?php
$calcul_nbre_enregis = mysql_query('SELECT COUNT(*) AS total FROM listejeux');
$donnees = mysql_fetch_assoc($calcul_nbre_enregis);
$nbre_total = $donnees['total']; // => contient le nombre d enregistrements

//Nombre de résultats à afficher par page
$nombre = 4;

//Nous allons maintenant compter le nombre de pages à générer.
$nombreDePages=ceil($nbre_total/$nombre);

// On calcul la première entrée à lire
$premiereEntree=($pageActuelle-1)*$nombre;

// La requête sql pour récupérer les messages de la page actuelle.
$liste_pagination = mysql_query('SELECT NomSiteJeux, DescriCourte, LienHttp, LienImg FROM ListeApercuJeux ORDER BY moyenne DESC LIMIT '.$premiereEntree.', '.$nombre.'');
?>

Je sais que ma requête ci-dessus est erronée. Je ne m'en sort pas avec left join, inner join...

J'ai fait la chose suivante:

<?php
// La requête sql pour récupérer les messages
$retour_messages=mysql_query('SELECT ListeApercuJeux.NomSiteJeux, ListeApercuJeux.DescriCourte, ListeApercuJeux.LienHttp, ListeApercuJeux.LienHttp, ListeApercuJeux.LienImg, SystemeDeVote.moyenne WHERE ListeApercuJeux.NomSiteJeux = SystemeDeVote.NomSiteJeux ORDER BY SystemeDeVote.moyenne DESC LIMIT '.$premiereEntree.', '.$nombre.'');

while($donnees_messages=mysql_fetch_assoc($retour_messages))
?>

Je ne sais pas si c'est bien fait ainsi...mais j'ai un message d'erreur: Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource...

Svp aidez moi, je désespère! :unsure:

Lien vers le commentaire
Partager sur d’autres sites

Hello,

1) avant de faire ton mysql_fetch_assoc() tu devrais tester le résultat de mysql_query() et afficher les erreurs MySQL

2) cela t'aurait permis de voir que as oublié de mettre un FROM dans ta requête.

Lien vers le commentaire
Partager sur d’autres sites

  • 2 months later...

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...