Recuperer donnees de deux table dans une boucle

Résolu
bubbledesavon Messages postés 66 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 6 mars 2015 - 14 nov. 2007 à 14:54
bubbledesavon Messages postés 66 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 6 mars 2015 - 14 nov. 2007 à 16:38
bonjour,voici mon souci ,
ja i cree un petit moteur de recherche par date,qui fonctione tres bien ,mais ou ,dans le resultat , j aimerais y ajouter une colonne d une autre table.
je m explique avec le code:

j ai deux table
une premiere "tablemo" qui contient "idtablemo,idintervention,datemo,techmo,nbrehmo"
une deuxieme "inter" qui contient "idintervention,techinter,lieuinter,clientinter"

////////////////////////le code du moteur de recherche sur les date de la table : tablemo////////////////

$requete1=1er date
$requete2=2eme date
<?
//connection bd
$query = mysql_query("SELECT * FROM tablemo WHERE datemo BETWEEN '$requete1' AND '$requete2'") or die (mysql_error());
while($donnees = mysql_fetch_array($query))
{
?>
["><? echo $donnees['datemo'];
?>
}
/////////////////////////////////////////////
qui me donne comme resultat:
une liste de date entre les date requete1 et la requete 2
ex:
12/12/2007
11/05/2008
05/05/2008

j'aimerais y ajouter le nom du client "clientinter" a la suite de ces dates:
ex:
12/12/2007  client 1
11/05/2008  client 8
05/05/2008  client 14

voici ce que j avais rajouté
////////////////////////le code du moteur de recherche sur les date de la table : tablemo////////////////

$requete1=1er date
$requete2=2eme date
<?
//connection bd
$query = mysql_query("SELECT * FROM tablemo WHERE datemo BETWEEN '$requete1' AND '$requete2'") or die (mysql_error());
while($donnees = mysql_fetch_array($query))
{
?>
["><? echo $donnees['datemo'];
$reqclient=mysql_query("select * from inter,tablemo where inter.idintervention=tablemo.idintervention");
$donneesclient=mysql_fetch_array($reqclient);
echo $donneesclient['clientinter'];
?>
}
mais voila ca ne marche pas ,
a cote des dates , j ai toujours le nom du premier client de la table "inter".
ex:
12/12/2007  client1
11/05/2008  client1
05/05/2008  client1

je vous crie a l aide , et merci d avance pour vos reponses.

5 réponses

cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 19
14 nov. 2007 à 15:47
pas besoin de deux requetes, essayes quelquechose comme (à la louche...) :
select datemo, clientinter from tablemo join inter on idinterventionwhere datemo between '$requete1' AND '$requete2'"
3
bubbledesavon Messages postés 66 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 6 mars 2015
14 nov. 2007 à 15:58
salut alexN,
voici l essai rapide que je viens de faire :

erreur
column " idintervention" in on clause is ambigous

code modifié:

$query = mysql_query("SELECT datemo,clientinter FROM tablemo join inter on idintervention WHERE datemo BETWEEN '$requete1' AND '$requete2'") or die (mysql_error());
while($donnees = mysql_fetch_array($query))
{
["><? echo $donnees['datemo'];?>--<? echo $donnees['clientinter'];?>
?>
}
0
bubbledesavon Messages postés 66 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 6 mars 2015
14 nov. 2007 à 16:09
je vien de modifier la syntaxe
c'est ok
$query = mysql_query("SELECT datemo,clientinter FROM tablemo JOIN inter ON inter.idintervention=tablemo.idintervention WHERE datemo BETWEEN '$requete1' AND '$requete2'") or die (mysql_error());

sauf que maintenant mon "echo $donees['idintervention'];" ne me donne plus rien
0
bubbledesavon Messages postés 66 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 6 mars 2015
14 nov. 2007 à 16:11
j ai meme essayé

echo $donnees['inter.idintervention']
et
echo $donnees['tablemo.idtervention']

et rien pas de "idintervention"
0

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

Posez votre question
bubbledesavon Messages postés 66 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 6 mars 2015
14 nov. 2007 à 16:38
Bon voila j ai reussi ,
au lieu du "join" j ai mis "inner join"
a la place de la selection selective :) "select datemo,clientinter......" j ai remplcer par "select * ...."

et cela fonctionne a merveille
je met le code rectifié pour une personne qui est dans la meme panade.
/////////////////
$query = mysql_query("SELECT * FROM tablemo INNER JOIN inter ON inter.idintervention= tablemo.idintervention WHERE datemo BETWEEN '$requete1' AND '$requete2'") or die (mysql_error());
while($donnees = mysql_fetch_array($query))
{
["><? echo $donnees['datemo'];?>--<? echo $donnees['clientinter'];?>
?>
}

AlexN je te met la reponse accepté car tu ma bien mis sur la voie pour la jointure.
merci encore.
0
Rejoignez-nous