Imbriquer des requets SQLs
Résolu
Hellreaper
Messages postés
36
Statut
Membre
-
zippeur Messages postés 210 Statut Membre -
zippeur Messages postés 210 Statut Membre -
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,
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,
Configuration: Windows Vista Firefox 3.0.8
6 réponses
-
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 ...
-
$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é ...
-
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/>";
} -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Ca fonctionne comme tu veux ?
[ edit ] Apparemment oui vu que tu as passé le sujet en résolu. Tant mieux tant mieux alors :-) [ /edit ]
-