IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

problème affichage double requêtes erreurs bizarres


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut problème affichage double requêtes erreurs bizarres
    tout mon problème ce que j'en ai besoin c'est d'afficher une double requête dans le même tableau.
    voici ce script qui est sensé le faire; les requêtes sont fonctionnelles je les ai essayé tous 2 sur le php myadmin et ils m'affichent les résultat que j'en ai besoin
    j'ai tenté plusieurs choses et voici à chaque fois ce que j'obtenais veuillez regardez les images dans les pièces jointes... pour ce ci c'est l'image1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?
                 //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";
    while($ligne1=mysql_fetch_row($result1))
         {
         //requête concernant la catégorie en cours en relation avec une variable globale $n_cat
    //cette requête devra me permettre si la condition est vérifiée d'afficher les enregistrements /concernés,type matiere,première consommés
          $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' and type_matiere_premiere.code_typ_mat_pre='$ligne1[0]' ";
         $res3=mysql_query($requete_consom)OR die(mysql_error());
    //donc ici si condition vérifié et type_matiere_premiere.code_typ_mat_pre='$ligne1[0]' il doit //m'afficher les type matière premières consommés ce que j'arrive à obtenir et à //afficher(regarder image1)
           if($res3){
         $ligne2=mysql_fetch_array($res3);
    //j'ai testé uniquement 3 champs mais je devrais afficher plusieurs
         echo'<tr><td>'.$ligne2["des_typ_mat_pre"].'</td><td>'.$ligne2["pr_ttc"].'</td><td>'.$ligne2["qte_mat_pre"].'</td></tr>';
          }
                    else
    //sinon je dois afficher le nom des type matière premières et des cases avec des //zéro(puisqu'ils ne sont pas consommés)
                    {
                    echo "<tr><td>".$ligne1[1]."</td><td>0</td><td>0</td></tr>";
                    }       
        }
        mysql_close();
          ?>
    enfin comme vous allez le remarquez dans l'image 1, l'instruction dans la condition else ne veut pas s'afficher et j'ai même ôter le $ligne1[1] et remplacer par des caractère et c'est toujours le même problème!!
    sinon voici ce que aussi j'ai tenté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?
     //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";
    //requête concernant la catégorie en cours en relation avec la variable globale
                $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'";
         $result1=mysql_query($requete_gen)OR die(mysql_error());
     
    $result2=mysql_query($requete_consom)OR die(mysql_error());
     
     
    //voici donc j'ai du mettre 2 while imbriqués la première $ligne2=mysql... est pour la //requête en relation avec la variable globale  la 2ème et celle pour les enregistrements de //tous les type matière première de ma base
     
    while ($ligne2=mysql_fetch_assoc($result2))
    	 	{
    	 while($ligne1=mysql_fetch_assoc($result1))
    	 {
    	  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();
    ?>
    veuillez regardez l'image 4 cette requête est celle qui est la plus proche à mon besoin mais le problème c'est que elle m'affiche que seulement une fois le "pr_ttc" dés que la condition est vérifiée comme vous allez le constater alors que je l'ai testé plusieurs fois j'avais plusieurs enregistrement qu'il fallait afficher.
    merci pour votre aide
    Images attachées Images attachées   

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu n'as pas besoin de doubles requêtes : si tu veux joindre deux tables et recolter egalement les elements qui n'ont pas d'entrée dans une des tables, il faut utiliser une jointure externe comme LEFT JOIN.

    Par exemples :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM articles LEFT JOIN consommer ON article.n_art=consommer.n_art

Discussions similaires

  1. [AC-2010] Problème de "Double-Requête"
    Par jbsushi dans le forum Access
    Réponses: 0
    Dernier message: 11/07/2013, 09h48
  2. Problème affichage couche SHP - erreur xml
    Par Elana dans le forum IGN API Géoportail
    Réponses: 3
    Dernier message: 26/10/2010, 10h13
  3. Problème sur requête : erreur 1111
    Par tiger33 dans le forum Requêtes
    Réponses: 4
    Dernier message: 25/10/2006, 12h30
  4. [MySQL] Problèmes d'affichage de requêtes sur Online
    Par mogway95 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 25/05/2006, 00h12
  5. [SQL] Problème d'exécution et d'affichage de requête !
    Par gabyloux dans le forum PHP & Base de données
    Réponses: 44
    Dernier message: 30/03/2006, 19h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo