Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/08/2006, 12h31   #1
Nouveau Membre du Club
 
Inscription : novembre 2005
Messages : 182
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 182
Points : 31
Points : 31
Par défaut [SQL] Boucle et requête

bonjour,
Le code suivant me fait planter ma machine !
En fait je fais une premiere requete. Si la requete ne me renvoie aucun resultat je fais une requete en boucle jusqua ce quil me trouve le resultat (ici une reference).

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$REQUETE = "select REF, VERIF_REF, NOM, FOURNISSEUR, CAMPAGNE, CATALOGUE, RECU_IM, DEADLINE, ENVOITRAD, RECUTRAD, ENVOIBDL";
$REQUETE.= " from fiche_info, notices";
$REQUETE.= " where REF like '%".$RECUP_TEXTE_RECHERCHE."%'";
$RESULTAT= mysql_query ($REQUETE, $CONNEXION);
$NB_LIGNES= mysql_num_rows ($RESULTAT);
if($NB_LIGNES==0){
 $i = 2;
 do {
  $REQUETE_T = "select REF_TEXTILE";
  $REQUETE_T.= " from textile";
  $REQUETE_T.= " where REF".$i." like '%".$RECUP_TEXTE_RECHERCHE."%'";
  echo $REQUETE_T;
  $RESULTAT_T= mysql_query ($REQUETE_T, $CONNEXION);
  $NB_LIGNES= mysql_num_rows ($RESULTAT_T);
  if($NB_LIGNES==1){
   $PRODUIT_T=mysql_fetch_array ($RESULTAT_T);
   extract ($PRODUIT_T);
   break;			
  }
 $i++;
 } while ($i = 10);
}
dafalri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2006, 12h36   #2
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
remplace le while par :
ou
D'une manière générale, si tu dois faire N passages, une boucle for sera plus indiquée.
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2006, 13h50   #3
Nouveau Membre du Club
 
Inscription : novembre 2005
Messages : 182
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 182
Points : 31
Points : 31
effectivement ca marche mieux avec <= ;-)

Par contre mon break n'a pas l'air detre pris en compte. Jai mi un echo de la requete et il maffiche les 9 requetes alors quil devrait par exemple sarreter a la 2ieme ?!?
dafalri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2006, 13h57   #4
Nouveau Membre du Club
 
Inscription : novembre 2005
Messages : 182
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 182
Points : 31
Points : 31
Jai appliquer une boucle for et ca me fait la meme chose, le break nest pas pris en compte :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
for ($i = 2; $i <= 10; $i++) {
 $REQUETE_T = "select REF_TEXTILE";
 $REQUETE_T.= " from textile";
 $REQUETE_T.= " where REF".$i." like '%".$RECUP_TEXTE_RECHERCHE."%'";
 echo $REQUETE_T."<br />";
 $RESULTAT_T= mysql_query ($REQUETE_T, $CONNEXION);
 $NB_LIGNES= mysql_num_rows ($RESULTAT_T);
 if($NB_LIGNES==1){
  $PRODUIT_T=mysql_fetch_array ($RESULTAT_T);
  extract ($PRODUIT_T);
  break;			
 }
}
dafalri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2006, 14h03   #5
Nouveau Membre du Club
 
Inscription : novembre 2005
Messages : 182
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 182
Points : 31
Points : 31
ah non cest moi !
javais plusieurs resultats pour ma requete et comme je faisais le break sur un resultat unique forcement ca marchait pas !
autant pour moi ....
merci
dafalri est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h29.


 
 
 
 
Partenaires

Hébergement Web