La boucle ne s'arrète pas

Résolu
bruno3591 Messages postés 155 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 28 mars 2010 - 30 nov. 2008 à 13:40
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 30 nov. 2008 à 15:12
Bonjour,

Je n'arrive pas à stopper la boucle après l'affiche du dernier enregistrement. La boucle continue à afficher les mêmes enregistrements les un derrière les autres. Si j'ai par exemple 2 enregistrements avec le même idchariot, j'aimerais les afficher, mais une seule fois.

CREATE TABLE `anomalie` (
`idano` int(11) NOT NULL auto_increment,
`idchariot` int(10) NOT NULL,
`signalement` varchar(255) NOT NULL,
`date` date NOT NULL,
PRIMARY KEY (`idano`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;


<?php
$requete3 'SELECT anomalie.signalement, anomalie.idchariot FROM anomalie INNER JOIN chariot ON anomalie.idchariot '.$idchariot.'';

$execution_requete3 = mysql_query($requete3);
$total3 = mysql_num_rows($execution_requete3);


if($total3) {

echo ''.\"\n\";
echo '----
';
echo 'Anomalies en cours, ';
echo ''.\"\n\";

while($row = mysql_fetch_array($execution_requete3)) {

echo '----
';
echo ''.$row['signalement'].', ';
echo ''.\"\n\";
}
echo '
'."\n";

}
else echo 'Pas d\'enregistrements dans la base...';

mysql_free_result($execution_requete3);
?>

10 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
30 nov. 2008 à 13:56
Hello,

la boucle ne s'arrête pas...du tout ? Ou plutôt, affiches-tu plus d'enregistrements que prévus ?
Parce que ta requête est foireuse :
$requete3 = 'SELECT anomalie.signalement, anomalie.idchariot FROM
anomalie
INNER JOIN chariot ON anomalie.idchariot =chariot.idchariot
WHERE anomalie.idchariot= '.$idchariot.'';
3
bruno3591 Messages postés 155 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 28 mars 2010
30 nov. 2008 à 14:50
lol elle est foireuse

affiches-tu plus d'enregistrements que prévus ?

oui bien trop, en fait j'affiche les bons enregistrements mais en boucle. Ex: s'il y a 2 enregistrements à afficher, ils s'affichent jusqu'en bas de la page.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
30 nov. 2008 à 14:52
Elle donne quoi dans phpmyadmin, ta requête ?
0
bruno3591 Messages postés 155 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 28 mars 2010
30 nov. 2008 à 14:58
Ca ne ramène aucun enregistrement compte tenu que phpmyadmin ne connait pas la valeur de $idchariot
0

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

Posez votre question
bruno3591 Messages postés 155 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 28 mars 2010
30 nov. 2008 à 15:01
j'ai remplacé $idchariot par sa valeur dans la table est ça me donne ça :

Affichage des enregistrements 0 - 13 (14 total, Traitement en 0.0011 sec.)

Mais pourquoi 14 enregistrements alors que je n'en ai que 2 dans la table ?
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
30 nov. 2008 à 15:02
...en remplaçant $idchariot par une valeur qui POURRAIT être valide dans ton script...?
Et tu obtiens la même chose avec ma requête ?
Parce que cela m'étonne bcp : ta boucle n'est pas une boucle infinie. En l'état, ton code ne peut pas boucler infiniment. Alors à moins que tu ne montres pas tout le code...je ne vois pas vraiment.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
30 nov. 2008 à 15:05
A cause de ta mauvaise utilisation de la jointure.
Et avec ma requête ?
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
30 nov. 2008 à 15:05
Oh et puis, tant qu'on y est : fais voir ton autre table, "chariot" ?
0
bruno3591 Messages postés 155 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 28 mars 2010
30 nov. 2008 à 15:09
Mille excuses, j'ai fais l'essai dans phpmyadmin avec ma requête foireuse, avec la tienne tout fonctionne bien en mettant la bonne valeur à idchariot.

Mais pourquoi est-on obligé d'ajouter un where après un ON ?

Merci beaucoup pour ton aide.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
30 nov. 2008 à 15:12
le ON de la jointure définit...la jointure! La condition sur laquelle tu vas lier tes 2 tables.
Le WHERE est la condition globale de ta requête.
0
Rejoignez-nous