Probleme php/mysql

Bonjour,

Cela fait un petit moment que je tourne autour de mon problème sans en trouver la solution. Auriez-vous une idée?

J'ai une requête sql qui est comme ceci:
"SELECT id, Product, titres,  fini, valide,livraison FROM product WHERE id = '321'" 

ce select me permet de récupérer la totalité des enregistrement de l'id=321 au niveau de l'affichage je veux afficher suivant la valeur de fini.

Donc je fais mon :
if($data['fini'] == 0){ echo...}else{echo...}

Le seul souci c'est que tous( les fini=0 et fini=1) s'affiche uniquement dans le else.

J'ai donc copier ma requette 2 fois avec :
$sql_pro="SELECT id, Product, titres,  fini, valide,livraison FROM product WHERE id = '321' AND fini=0"  
$req_pro = mysql_query($sql_pro);
$dat_pro = mysql_fetch_array($req_pro);

et ma seconde requête:

$sql_pro2="SELECT id, Product, titres,  fini, valide,livraison FROM product WHERE id = '321' AND fini=1" 
$req_pro2 = mysql_query($sql_pro2);
$dat_pro2 = mysql_fetch_array($req_pro2);



Tous les résultats s'affiche uniquement dans la seconde requête.
Par contre quand je copie dans mysql les requêtes de php mysql me retourne aucun élément lorsque je suis dans fini=1 et que je demande un produit dont fini=0.

Merci pour vos idées.

Wyllos



--

window XP

3 réponses

  1. Contributeur
    Pense à afficher ton SQL avant de l'exécuter. Peux-tu nous donner la partie du code concernée au complet ?
    0
    1. Voila la partie de mon code:

      //récupération des id produit pour l'utilisateur 
        $sql_rec = "SELECT id_produ FROM useprod WHERE id_user = '".$_SESSION["User"]."'"; 
        $req_rec = mysql_query($sql_rec); 
      
       while ($data = mysql_fetch_array($req_rec))  
      { 
          //echo "<pre>".$data['id_produ']."</pre>"; 
         $sql_pro = "SELECT id, Productitle, users,  fini, valide, delivered FROM product WHERE id = '".$data['id_produ']."'"; 
         $req_pro = mysql_query($sql_pro); 
         $dat_pro = mysql_fetch_array($req_pro); 
      
      if($data['fini'] ==0) 
      { 
       echo '<div><h2>'.$data['users'].'</h2></div>'; 
       echo '<div>'.$data['Productitle'].'</div>'; 
             echo '<p><strong>Validation:</strong> if( $data['valide'] ==1 ){ echo "<img src="images/typo/cdok2.png" width:"24" />"; }else{ echo " <img src="images/typo/cdatt2.png" width:"26" />";} <p>'; 
      
       //la aucun affichage 
      
      }else if($data['fini'] ==1) 
      { 
       echo '<div><h2>'.$data['users'].'</h2></div>'; 
       echo '<div>'.$data['Productitle'].'</div>'; 
      echo '<p><strong>Validation:</strong> if( $data['valide'] ==1 ){ echo "<img src="images/typo/cdok1.png" width:"24" />"; }else{ echo " <img src="images/typo/cdatt1.png" width:"26" />";} <p>'; 
      
       //la affichage des 0 et des 1 
      
      } 
      
      } 
      


      impossible de séparer pourtant ça devrait

      window XP
      0
      1. des erreurs, voir commentaires

        quel editeur utilises tu ?
        moi avec notepad++ j'ai vu des suite quelles lignes étaient mauvaises

        //récupération des id produit pour l'utilisateur
          $sql_rec = "SELECT id_produ FROM useprod WHERE id_user = '".$_SESSION["User"]."'";
          $req_rec = mysql_query($sql_rec);
        
         while ($data = mysql_fetch_array($req_rec)) 
        {
                     //echo "<pre>".$data['id_produ']."</pre>";
                    $sql_pro = "SELECT id, Productitle, users,  fini, valide, delivered FROM product WHERE id = '".$data['id_produ']."'";
                    $req_pro = mysql_query($sql_pro);
                    $dat_pro = mysql_fetch_array($req_pro);
        
            if($data['fini'] ==0)
            {
                echo '<div><h2>'.$data['users'].'</h2></div>';
                echo '<div>'.$data['Productitle'].'</div>';
               echo '<p><strong>Validation:</strong>&nbsp'; //il te manquait la ' a la fin de cette ligne
                 if( $data['valide'] ==1 ){
                    echo "<img src='images/typo/cdok2.png' width:'24' />"; 
                 }else{ 
                    echo " <img src='images/typo/cdatt2.png' width:'26' />";
                 } 
                 echo '<p>'; //la tu avait un <p> qui se baladait tout seul comme ça 
        
            //la aucun affichage
        
            }else if($data['fini'] ==1)
            {
                echo '<div><h2>'.$data['users'].'</h2></div>';
                echo '<div>'.$data['Productitle'].'</div>';
                echo '<p><strong>Validation:</strong>&nbsp';//il te manquait la ' a la fin de cette ligne
                if( $data['valide'] ==1 ){
                    echo "<img src='images/typo/cdok1.png' width:'24' />"; 
                }else
                { echo " <img src='images/typo/cdatt1.png' width:'26' />";} 
                echo '<p>'; //la tu avait un <p> qui se baladait tout seul comme ça 
        
            //la affichage des 0 et des 1
        
        }
        
        }


        tu pourrait aussi voir avec une seule requette et un petit AND dans la condition WHERE

        $sql_pro = "SELECT id, Productitle, users,  fini, valide, delivered FROM product WHERE d_user = '".$_SESSION["User"]."' AND id = '".$data['id_produ']."'";


        et mettre une boucle while si besoin uniquement sur le resultat de cette requette
        0