Imbriquer des requets SQLs

Résolu/Fermé
Hellreaper Messages postés 34 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 15 octobre 2009 - 10 avril 2009 à 18:48
zippeur Messages postés 197 Date d'inscription dimanche 9 novembre 2008 Statut Membre Dernière intervention 5 juin 2017 - 11 avril 2009 à 19:17
Bonjour,

Je travail sur la même table, Je voudrais pouvoir prendre une première date (là ou le parent id est NULL) et puis après avoir la dernier date de cette même formation. J'imagine qu'il faudrait que j'imbrique ces deux requêtes sql??

ma table ressemble plus ou moins a cela:
event_id event_parent_id event_date
1 NULL 2009-04-06
2 1 2009-04-07
3 1 2009-04-08
4 NULL 2009-04-10
5 4 2009-04-11
6 4 2009-04-12


Voici les requêtes que j'utilise mais elles me renvoient des erreurs:
$sql = 'SELECT event_id, event_title, event_date FROM events WHERE event_parent_id IS NULL ORDER by event_date ASC ';
$req = mysql_query($sql, $connexion_vcalendar);
while( $res = mysql_fetch_array($req, MYSQL_NUM) )
{
$Formation_id = $res[0];
$Formation_name = $res[1];
$Formation_start_date = $res[2];

$sql = 'SELECT event_date FROM events WHERE event_parent_id = \"$Formation_id\" ';
$req = mysql_query($sql, $connexion_vcalendar);
while( $res = mysql_fetch_array($req, MYSQL_NUM) )
{
$formation_last_date = $res[0];
}
echo " id = ".$Formation_id." Formation: ".$Formation_name." Du ".$Formation_start_date." a ".$formation_last_date.". <br/>";
}

Merci,

6 réponses

IpIpIpIpOne Messages postés 436 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 24 mai 2009 116
11 avril 2009 à 14:43
SELECT events.event_id, events.event_title, events.event_date, max(events2.event_date) AS event_date2 FROM events, events AS events2 WHERE events2.event_parent_id=events.event_id AND events.event_parent_id IS NULL GROUP BY events.event_id ORDER BY events.event_date ASC

Je dis ptet une grosse c*****ie, j'ai pas testé non plus ...
1
IpIpIpIpOne Messages postés 436 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 24 mai 2009 116
10 avril 2009 à 19:50
$sql = 'SELECT events.event_id, events.event_title, events.event_date,events2.event_date AS event_date2 FROM events, events AS events2 WHERE events2.event_parent_id=events.event_id AND events.event_parent_id IS NULL ORDER by events.event_date ASC ';
$req = mysql_query($sql, $connexion_vcalendar);
while( $res = mysql_fetch_array($req, MYSQL_NUM) )
{
$Formation_id = $res[0];
$Formation_name = $res[1];
$Formation_start_date = $res[2];
$formation_last_date = $res[3];
}

J'ai pas testé ...
0
Hellreaper Messages postés 34 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 15 octobre 2009
11 avril 2009 à 14:27
Bonjour,
Merci pour ta réponse! c'est quasiment se qu'il me fallait, le problème est que maintenant il m'affiche tout les jours, voici un exemple de se qu'il m'affiche:

id = 1 Formation: Formation ABC 1988 Du 2009-04-06 au 2009-04-07.
id = 1 Formation: Formation ABC 1988 Du 2009-04-06 au 2009-04-08.
id = 1 Formation: Formation ABC 1988 Du 2009-04-06 au 2009-04-09.
id = 38 Formation: C389CD1 Du 2009-05-06 au 2009-05-07.
id = 38 Formation: C389CD1 Du 2009-05-06 au 2009-05-08.
id = 38 Formation: C389CD1 Du 2009-05-06 au 2009-05-09.
id = 38 Formation: C389CD1 Du 2009-05-06 au 2009-05-10.
id = 90 Formation: C548DCS9 Du 2009-04-13 au 2009-04-14.
id = 90 Formation: C548DCS9 Du 2009-04-13 au 2009-04-15.
id = 90 Formation: C548DCS9 Du 2009-04-13 au 2009-04-16.


alors que moi je voudrais qu'il m'affiche que la dernière ligne,soit:

id = 1 Formation: Formation ABC 1988 Du 2009-04-06 au 2009-04-09.
id = 38 Formation: C389CD1 Du 2009-05-06 au 2009-05-10.
id = 90 Formation: C548DCS9 Du 2009-04-13 au 2009-04-16.

Sachant que j'utilise ton code:

$sql = 'SELECT events.event_id, events.event_title, events.event_date,events2.event_date AS event_date2 FROM events, events AS events2 WHERE events2.event_parent_id=events.event_id AND events.event_parent_id IS NULL ORDER by events.event_date ASC ';
$req = mysql_query($sql, $connexion_vcalendar);
while( $res = mysql_fetch_array($req, MYSQL_NUM) )
{
$Formation_id = $res[0];
$Formation_name = $res[1];
$Formation_start_date = $res[2];
$formation_last_date = $res[3];

echo " id = ".$Formation_id." Formation: ".$Formation_name." Du ".$Formation_start_date." au ".$formation_last_date.". <br/>";
}
0
Hellreaper Messages postés 34 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 15 octobre 2009
11 avril 2009 à 14:50
Merci Beaucoup!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
IpIpIpIpOne Messages postés 436 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 24 mai 2009 116
11 avril 2009 à 14:55
Ca fonctionne comme tu veux ?

[ edit ] Apparemment oui vu que tu as passé le sujet en résolu. Tant mieux tant mieux alors :-) [ /edit ]
0
Hellreaper Messages postés 34 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 15 octobre 2009
11 avril 2009 à 17:21
Oui tout est bon, merci
0
zippeur Messages postés 197 Date d'inscription dimanche 9 novembre 2008 Statut Membre Dernière intervention 5 juin 2017 1
11 avril 2009 à 19:17
cool pas vrais !!
0