Liste déroulante n'affiche qu'une ligne php [Résolu/Fermé]

Signaler
Messages postés
206
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
6 décembre 2011
-
Messages postés
206
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
6 décembre 2011
-
Bonjour,

J'ai une liste déroulante dans ma page, quand je fait un choix cela ne m'affiche qu'une ligne alors qu'il devrait en avoir plusieurs...

voici mon code pour la liste déroulante :
<form name="service" method="post" action="index.php?idpage=3">
<select name="service" onchange="submit" >
<option selected> Choisissez un service</option>
<?php
$requete = "SELECT uf,service FROM services order by service";
$req = mysql_query($requete) or die( mysql_error() ) ;

while ($donnees=mysql_fetch_array($req))
{
$uf = $donnees['uf'];
$service = $donnees['service'];
?>
<!-- affichage de la liste déroulante -->
<option value="<?php echo $service ?>" <?php if ($service == $v_service) { echo 'Selected' ; } ?> ><?php echo $uf." ".$service?></option>
<?php
}
?>
</select>
<input type="submit" value="Rechercher" />
</form>

Cela marche très bien..
C'est la deuxième partie qui pose problème
code affichage du choix
<?php
if ( isset($_POST['service'])) { $service = $_POST['service'];

$requete2 = "SELECT COUNT(uf) AS nb,uf,service,cartouche,sortie_stock,date_sortie FROM servcart WHERE uf='$uf' group by uf,service,cartouche,sortie_stock,date_sortie";
$req2 = mysql_query($requete2) or die( mysql_error() ) ;

while ($donnees2=mysql_fetch_array($req2))
{
?>
<tr>
<td><?php echo $donnees2 ['uf']; ?></td>
<td><?php echo $donnees2 ['service']; ?></td>
<td><?php echo $donnees2 ['cartouche']; ?></td>
<td><?php echo $donnees2 ['date_sortie']; ?></td>
<td><?php echo $donnees2 ['sortie_stock']; ?></td>
</tr>

<?php
}
}
?>
Ma requête pour le deuxième code, je l'ai testé sous mysql et cela me renvoye bien ex: uf='4517' me donne bien 5 lignes...
Merci par avance pour votre aide.

3 réponses

Messages postés
1405
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 mars 2013
78
Salut,
c'est re moi ;)
pour ta deuxième partie de code, rien ne s'affiche ?
Es tu sur de rentre dans les conditions de ton if (pour le savoir juste après l'accolade tu fais un echo bidon)
Messages postés
206
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
6 décembre 2011
1
coucou Melooo,
Si il m'affiche mais qu'une ligne dans mon tableau alors que c'est plus que je devrais avoir
Messages postés
1405
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 mars 2013
78
Es tu sur d'avoir 5 ligne pour ton numéro uf ?
Essayes de remplacer ca :
<td><?php echo $donnees2 ['uf']; ?></td> 

par :
<td><?php echo $donnees2[0]; ?></td> 

et pareil pour les autres, en rajoutant +1 à chaque fois
Messages postés
206
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
6 décembre 2011
1
j'ai fais un echo bonjour et cela s'affiche avec une ligne et en plus je viens de remarquer que quand je sélectionne ex archives dans la liste déroulantes cela m'affiche urgence ..SUPER ;-)
Messages postés
206
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
6 décembre 2011
1
bon je reprendrai demain..la nuit est bonne conseillère..bonne soiréé
Messages postés
206
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
6 décembre 2011
1
Bonjour,
J'ai réfléchi à tête reposée..je me demande si dans ma première partie du code ,il ne manque pas quelque chose.Je m'explique quand j'affiche ma liste déroulante et que je clic et que l'affichage se fait sur la même page, la boucle se fait mais quand elle arrive à la dernière ligne c'est celle là qui s'affiche dans mon tableau donc il doit surement manquer un $_POST ..?????
Messages postés
206
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
6 décembre 2011
1
J'ai un peu avancé,jai changé la deuxième partie du code que voici :
<?php 
	if ( isset($_POST['service'])
	){  $service = $_POST['service'];
           
		$requete2 = "SELECT uf,service,cartouche,sortie_stock,date_sortie FROM servcart WHERE service='$service' ";							   
	    $req2 = mysql_query($requete2) or die( mysql_error() ) ; 
		
			while ($donnees2=mysql_fetch_array($req2))
			{ 	   
	 ?>
		<tr>
		 <td><?php echo $donnees2['uf']; ?></td>
		 <td><?php echo $donnees2['service']; ?></td>
		 <td><?php echo $donnees2['cartouche']; ?></td>
         <td><?php echo $donnees2['date_sortie']; ?></td>
		 <td><?php echo $donnees2['sortie_stock']; ?></td>
		</tr>
              
       <?php           		          
		}
		}		 
?>


Ce qui est en gras est le changement maintenant il me renvoye bien le choix sélectionner mais ex :
"archives" me renvoye une ligne alors qu'il y en a 5 ou "christ" qui a 3 lignes je ne récupère que 2 et ainsi de suite ..étrange ???? où se trouve mon erreur ???
Messages postés
206
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
6 décembre 2011
1
Je viens de faire un petit test pour voir, j'ai testé sur myqsl la requête avec Code : WHERE service='$service'
il ne me renvoye aucune ligne et dans ma page m'affiche mon choix et j'ai changé le where en Code :
WHERE uf='$uf'

dans mysql il me renvoye toutes les lignes mais dans ma page web peu importe le choix il me renvoye toujours la dernière ligne de mon tableau..quelqu'un peu m'expliquer???
Messages postés
206
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
6 décembre 2011
1
j'ai trouvé la solution ,pour ceux que cela interesse :liste déroulante avec affichage dans un tableau
<?php

//gestion de la ligne selectionnée
	if (isset($_POST['service']))
		{$v_service=$_POST['service'];
		}
		else
		{$v_service="";}
				
	if (isset($_POST['date_sortie']))
		{$date_sortie=$_POST['date_sortie'];
		}
		else
		{$date_sortie="";}			
	
?>	

<table width="580" height="179" border="3">
 <tr>
  <td height="35" colspan="5" align="center"  style="font-size:24px" >Statistiques de consommation  
 <tr>
   <td height="32" colspan="5" align="left">
    <form  name="service" method="post" action="index.php?idpage=3">
      <select  name="service"  onchange="submit"> 
        <option selected> Choisissez un service</option>
        <?php
	  	    $requete = "SELECT distinct service FROM servcart order by service";
		    $req 	= mysql_query($requete) or die( mysql_error() ) ; 		
		
		     while ($donnees=mysql_fetch_array($req))
		        {			       
			     
				 $service = $donnees['service'];
		  ?>
        <!-- affichage de la liste déroulante -->
        <option value="<?php echo $service ?>" <?php if ($service == $v_service) { echo 'Selected' ; } ?> ><?php echo $service?></option>
        <?php
                   }
         ?>
      </select>      
      <input  type="submit"  value="Rechercher" />
    </form> 
  <tr>    
         <th width="52" height="36" bgcolor="#5ab9d8" scope="col">UF</th>
         <th width="158" bgcolor="#5ab9d8" scope="col">SERVICE</th>
         <th width="192"  bgcolor="#5ab9d8" scope="col">CARTOUCHE</th>
          <th width="77"  bgcolor="#5ab9d8" scope="col">DATE</th>
         <th width="63"  bgcolor="#5ab9d8" scope="col">SORTIE STOCK</th>
  </tr>
   
      <?php 
	if ( isset($_POST['service'])
	){  $service = $_POST['service'];
           
		$requete2 = "SELECT uf,service,cartouche,sortie_stock,date_sortie FROM servcart WHERE service='$service' ";							   
	    $req2 = mysql_query($requete2) or die( mysql_error() ) ; 
		
			while ($donnees2=mysql_fetch_array($req2))
			{ 	   
	 ?>
		<tr>
		 <td><?php echo $donnees2['uf']; ?></td>
		 <td><?php echo $donnees2['service']; ?></td>
		 <td><?php echo $donnees2['cartouche']; ?></td>
         <td><?php echo $donnees2['date_sortie']; ?></td>
		 <td><?php echo $donnees2['sortie_stock']; ?></td>
		</tr>
              
       <?php           		          
		}
		}		 
?>

     
</table>