PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 19-05-2009 02:38:48

roy mustang
Membre
Inscription : 19-05-2009
Messages : 2

[php] [modéré] 2 conditions en while probleme affichage enregistremen

Bonjour,
j'ai du utiliser 2 mysql_fetch_assoc dans une seule boucle et ceux ci a entrainé des problèmes niveau affichage de mes enregistrements (la boucle s'est arrêté dés le 3ème enregistrement!!)


while($ligne1=mysql_fetch_assoc($result1) and ($ligne2=mysql_fetch_assoc($result2)))
   {
   echo'<tr><td>'.$ligne1["des_typ_mat_pre"].'</td>';
              if($ligne1['code_typ_mat_pre']==$ligne2['code_typ_mat_pre'])
        {
        echo'<td>'.$ligne2["pr_ttc"].'</td></tr>';
        }
        else
        {
        echo"<td>0</td></tr>";
        }
  }
  mysql_close();
    ?>

y -t-il un problème?? merci pour votre aide
[NDM]
J'ai modéré ton titre car l'urgence ne saurait nous concerner, il n'y a pas de gens pressés, il n'y a que des gens en retard et ils n'ont qu'à assumer les conséquences de leur inconséquence.
Ensuite, on se doute que si tu viens poster ici c'est que tu as besoin d'aide.
MK

Hors ligne

#2 19-05-2009 07:21:11

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : [php] [modéré] 2 conditions en while probleme affichage enregistremen

Saluton,
le and entre les deux appels à mysql_fetch_assoc, fait que dès que l'un des parcours sera terminé la condition de bouclage ne sera plus réunie et la boucle while s'arrêtera.
Ceci dit, je suis curieux de savoir quel contexte tordu peut nécessiter ce genre de pratique.
Je suis convaincu qu'il existe une solution avec une requête en jointure pour s'en sortir, non seulement plus élégamment mais, surtout, plus efficacement.
Alors, quelles sont les requêtes derrière tout cela ?


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 19-05-2009 12:58:51

roy mustang
Membre
Inscription : 19-05-2009
Messages : 2

Re : [php] [modéré] 2 conditions en while probleme affichage enregistremen

salut merci pour votre réponse en effet j'ai besoin d'afficher dans la première colonne d'un  tableau tous les enregistrements dans ma base ayant pour requete
//requete permettant d'afficher toutes les types matières premières
             

$requete_gen="select * from type_matiere_premiere,matiere_premiere where        type_matiere_premiere.code_mat_pre=matiere_premiere.code_mat_pre";
$result1=mysql_query($requete_gen)OR die(mysql_error());

tant dis que dans les autres colonnes ceci va dépendre d'une variable globale de ma session en cours, (la condition if) si l'élément en cours existe dans cette requête je voudrais afficher son prix, sa quantité.... sinon j'affichererai un 0 tout au long de la ligne(regarder condition if)

$requete_consom="select * from article,consommer,type_matiere_premiere,categorie,entree_stock where        
   entree_stock.code_typ_mat_pre=type_matiere_premiere.code_typ_mat_pre and article.n_cat=categorie.n_cat and article.n_art=consommer.n_art and consommer.code_typ_mat_pre=type_matiere_premiere.code_typ_mat_pre and categorie.n_cat='$n_cat'";  
   $result2=mysql_query($requete_consom)OR die(mysql_error());

merci de votre aide j'en ai besoin

Dernière modification par roy mustang (19-05-2009 12:59:55)

Hors ligne

#4 19-05-2009 14:03:01

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : [php] [modéré] 2 conditions en while probleme affichage enregistremen

Je devance mon cher MK pour te sensibiliser à la Guerre des Etoiles


MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

#5 19-05-2009 15:10:44

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : [php] [modéré] 2 conditions en while probleme affichage enregistremen

Donc, outre l'excellente remarque de mon faire-valoir, tout cela peut très bien être fait en une seule requête.
D'autre part, quand on utilise un SGBDR R comme Relationnel, il faut apprendre à utiliser la syntaxe SQL normalisée pour les jointures, lesquelles constituent, justement, la déclinaison du relationnel.
Et dans ce langage comme dans un autre, la lisibilité du code fait gagner du temps à tous ceux qui doivent intervenir dessus.
Merci de nous présenter ces requêtes sous une forme qui ne soit pas un fatras illisible.
Exemple

$requete_gen="SELECT lesNomsDesColonnesMaisPasEtoile
FROM type_matiere_premiere tmp
INNER JOIN matiere_premiere mp
ON tmp.code_mat_pre=mp.code_mat_pre"
;
$result1=mysql_query($requete_gen)or die(mysql_error());

Et là, je devrais même dire

Have a look to PDO


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

Pied de page des forums