Page 1 sur 1

Requete SQL complexe et problème de tableau

Posté : 03 févr. 2007, 12:56
par analfabete
Bonjour à tous je suis actuellement en train de réaliser un site avec des jeux ou les membre en s'inscrivant peuvent etre les filleuls d'autre membre.
Je cherche ainsi a afficher les 2 derniers filleuls inscrit --> leur date d'inscription et leur pseudo.
J'ai deux tables:
_membre_info --> idmembre ,idparrain
_membre_profils--> idmembre,date_inscription

Ainsi je n'arrive pas a faire ma requete suivante:
"choisir idmembre et pseudo ou idparrain=idmembre dans membre_info et avec cette idmembre on recupere date_inscription dans membre_profils"

Voilà mon code:
$req=mysql_query('SELECT idmembre FROM membre_info WHERE idparrain=\''.$_SESSION['idmembre'].'\'') or die(mysql_error());
$sql='SELECT i.login, p.date_inscription 
			FROM membre_info AS i ,membre_profils AS p 
			WHERE p.idmembre='.$req.' ORDER BY date_inscription DESC LIMIT 0,3 AND i.idmembre='.$req.'';
$req=mysql_query($sql) or die(mysql_error());
Et l'erreur que j'ai:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'id #4 ORDER BY date_inscription DESC LIMIT 0,3 AND i.idmembre=R
Merci d'avance !

Posté : 03 févr. 2007, 12:59
par Cyrano
Normal : ta variable $req est une ressource, pas un résultat. Entre ton $req = mysql_query(etc...) et la seconde requête, il faut récupérer la valeur reqournée.

Autre option : ne faire qu'une seule requête avec une jointure. Fais des tests, c'est parfaitement possible et ce sera en outre plus rapide à exécuter.

Posté : 03 févr. 2007, 13:00
par Ajoloca
Bonjour,

$req est une ressource, elle ne contient pas de valeurs directement exploitables.
Tu devras extraire idmembre de $req et utiliser idmembre à la place de req.

EDIT :
Grillé :twisted:

Posté : 03 févr. 2007, 13:04
par Ajoloca
Re,

Je ne suis pas sur que même avec la correction de $req ta requête fonctionne.

La syntaxe LIMIT avant le AND me semble bizarre :?:

Posté : 03 févr. 2007, 13:04
par analfabete
A oui oups je n'avais pas vu cependant je vais me tourner vers les jointure...
Je me redocumente car les jointures c'est aps très bien assimilés :lol:
Et je vous tient au courant en espérant que j'y arriver tout seul !

Posté : 03 févr. 2007, 13:37
par analfabete
En partant d'une requete avec jointure voilà ce que j'ai essayer de faire :
'SELECT i.idmembre,i.login,p.date_inscription 
			FROM membre_info i JOIN membre_profils p ON i.idmembre=p.idmembre ORDER BY p.date_inscription DESC LIMIT 0,3
			WHERE i.idmembre=???';
Mon problème est d'indiquer l'idmembre de chaque filleuls.
Je dois faire une requete pour cela du type :
SELECT idmembre FROM mebre_info WHERE idparrain=\''.$_SESSION['idmembre'].'\''
Mais je ne sais aps du tout comment faire pour l'intégrer... :cry: