bonjour,
j’ai des probleme avec un requete intertable
je vous explique :
il faut absolument que $resultats[‹ commande_id ›] soit egal a $transaction[‹ commande ›] pour afficher « oui » mais le probleme C que $transaction ne boucle pas dans la table transaction donc
actuellement il affiche oui aux deux premiers enregistrements si j’ai deux enregistrements dans ma table transaction.
ex :
enr 1 OUI
enr 2 OUI
enr 3 NON
enr 4 NON
alors qu’il de vrait m’afficher
enr 1 NON
enr 2 OUI
enr 3 NON
enr 4 OUI
<?
// mes requetes
$req_commandes=mysql_query("SELECT * from commandes ORDER BY commande_id DESC");
$req_transactions=mysql_query("SELECT commande from transaction ");
// ma boucle
while($resultats=mysql_fetch_array($req_commandes)){
$transaction =mysql_fetch_array($req_transactions);
if ($resultats['commande_id']=$transaction['commande'])
// affichage
echo'OUI';
else echo'NON';
} // fin de ma boucle
?>
j’ai essayer d’inbriquer une boucle dans la boucle mais ca n’a pas marché, … il affiche autant de fois de oui ou non que j’ai d’enregistrements dans la table transaction
comment dois-je m’y prendre
merci de votre aide
Dans ton if, il te faut deux ‹ = ›, ce qui donnerait :[cpp]if ($resultats[‹ commande_id ›] == $transaction[‹ commande ›])[/cpp](Je ne sais pas c’est une erreur de recopie de ton code)
en effet, j’avais oublier le = = mais ca ne marche pas mieux
si je fais dans ma boucle un echo’‹ .$resultats[‹ commande_id ›]. › et ‹ .$transaction[‹ commande ›]. ›';
il m’affiche :
132 et 120
131 et 119
130 et
129 et …
donc il n’affiche jamais ‹ oui › etant donner que la comparaison ne se fais que sur les 2 premiers enregistrements.
ca ne risque pas de fonctionner, problème d’algo :), comment veux tu tomber sur un id de commande de la table transactions identique à celui que tu parcours dans la table commandes ? les deux tables sont indépendantes
une solution possible :
ce qu’il te faut faire, c’est récupérer l’intégralité des id de commande de la table transaction dans un tableau
Dans la boucle, tu parcours chaque commande_id de la table Commandes(ta boucle actuelle)
Tu vérifie si le commande_id en cours est dans le tableau des n° de commandes de la table Transactions(c’est là que tu met oui/non
aide toi de in_array() 
qqch de ce style :
[cpp]
<?
// mes requetes
$req_commandes=mysql_query("SELECT * from commandes ORDER BY commande_id DESC");
$req_transactions=mysql_query("SELECT commande from transaction ");
// ma boucle
$transaction = array();
while($res = mysql_fetch_array($req_transactions)) $transaction[] = $res;
while($resultats=mysql_fetch_array($req_commandes)){
if (in_array($resultats['commande_id'],$transaction)) {
// affichage
echo'OUI';
else echo'NON';
} // fin de ma boucle
[/cpp]
j’obtiens l’erreur suivante :
Warning: in_array(): Wrong datatype for second argument
merci de ton aide
erreur de ma part, j’avais un $transaction a trainer
par contre je n’arrive pas a creer mon tableau avec la boucle
$transaction = array();
while($res = mysql_fetch_array($req_transactions)) $transaction[] = $res;
merci
étrange
vérifie ta requete de selection pour la transaction
et fait aussi un print_r($transaction) pour voir si ton tableau est vide ou non
C bon j’ai trouvé !
$transaction = $res[‹ commande ›];