Conseil sur double requête mysql

l'aprentit
Invité n'ayant pas de compte PHPfrance

08 juil. 2006, 23:34

Bonjour,

j'ai besoin d'un conseil sur la manière que je pourrais règler mon problème.

Description du problème :

Dans mon site j'ai 2 tables, La table Events qui contient (user_id, event_id ect ....) et la table Events_reminds qui contient (reminds_id,User_id et event_id)

j'ai donc besoin d'afficher tout les evenement (event_id) de l'utilisateur (user_id)

Mais mon problème est que je ne sais pas trop comment y arriver puisque je dois faire une requete dans la table Events_reminds qui me retournera tout les evenements que l'utilisateur à stocké (event_id)

Et ensuite avec cette liste je doit refaire un autre requête dans la table Events qui elle me retournera les details de l'evenement avec where event_id= $mavariable

Est-ce possible de faire le tout d'un coup ?

Voici comment je pensais faire le tout mais pas sur ....

Faire une requete dans la première table et recuperer les valeurs dans un tableau (Aray)

refaire une requete en boucle pour chaque valeur dans le tableau et les afficher.

C'est logique ? Il existe mieux ?

Merci

Eléphant du PHP | 90 Messages

09 juil. 2006, 00:05

comme tu a event_id dans les 2 table tu peux jumeller les 2 requete en une

"SELECT m.user_id,mp.event_id  FROM Events AS mp INNER JOIN Events_reminds AS m ON (m.user_id=mp.User_id ) WHERE m.user_id='$id' #AND User_id ='$id' "

ar contre je me pose une question pourquoi ne pas faire qu'une table ça serait bcp plus simple
Modifié en dernier par marvllt le 09 juil. 2006, 00:15, modifié 2 fois.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

09 juil. 2006, 00:13

Salut,

Avec une jointure sur les deux tables tu devrais pouvoir t'en sortir en une seule requête :
$sql ="SELECT * FROM Events e LEFT JOIN Events_reminds er ON e.event_id = er.event_id WHERE e.user_id=".$id_utilisateur;
Cette requête devrait sortir toutes les données de la table "Events" en fonction des "event_id" présent dans les deux tables et de l'utilisateur "$id_utilisateur".

Enfin c'est ça si j'ai bien compri la question initiale :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

l'aprentit
Invité n'ayant pas de compte PHPfrance

09 juil. 2006, 06:51

Merci à vous deux disons grace à vous et aussi grace au logiciel isql

j'ai peu créer ma requête et même une autre sur 3 tables !!

Donc ce que je voulais était donc ceci :
SELECT
  e.event_title,
  e.event_date,
  e.event_time,
  e.event_time_end
 FROM events e
 INNER JOIN event_reminds er ON (e.event_id = er.event_id) where er.user_id=$id
Sa aura pris près de 6 h pour le trouver mais maintenant je my connais beaucoup plus en mysql !

Encore une fois je recommande ce site et aussi le logiciel isql qui permet de faire des requete visuelle pour les amateur comme moi !

@+ et merci !

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

09 juil. 2006, 11:38

On va demander un joli [Résolu] à un modo qui passerait par ici par le plus grand des hasard :P

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute