C'est le script des 2 listes déroulantes de Cyrano en php :
http://www.phpfrance.com/forums/voir_sujet-4562.php
Le but est de savoir combien de ventes 1 commercial a réalisé dans une année.
J'ai un probleme de tri sur la 2eme liste.
Table commercial :
id_commercial en auto
commercial
Table millesime :
id_millesime en auto
millesime
Table vente :
idmillesime
idcommercial
Tous les millesimes s'affichent dans la 2eme liste même quand le commercial n'a aucunes ventes !
Le probléme est certainement dans la requéte de la 2eme liste...je l'ai tourné dans tous les sens et pas mieux ! une idée ? merci.
case 'millesime_commercial':
include("connexion.php");?>
<fieldset>
<legend><strong>Ventes par commercial et par année </strong></legend>
<br />
<table>
<tr>
<?php
/* On récupère si elle existe la valeur du commercial envoyée par le formulaire */
/* On récupère si elle existe la valeur du millesime envoyée par le formulaire */
$com_choisi = isset($_POST['commercial'])?$_POST['commercial']:null;
$millesime_choisi = isset($_POST['millesime'])?$_POST['millesime']:null;
if(isset($_POST['ok']) && isset($_POST['millesime']) && $_POST['millesime'] && isset($_POST['commercial']) && $_POST['commercial'] != "")
{
}
/*Création de la requete pour afficher les commerciaux*/
/*********************************************************************************/
{
$sql1 = "SELECT DISTINCT `id_commercial`, `commercial`".
" FROM `commercial`".
" ORDER BY `commercial` ASC";
$rech_commerciaux = mysql_query($sql1);
/* test du chemin de la requete mise en silence */
//echo $sql1;
$code_commercial = array();
$nom_commercial = array();
/* On active un compteur pour les commerciaux */
$nb_commerciaux = 0;
if($rech_commerciaux != false)
{
while($ligne = mysql_fetch_assoc($rech_commerciaux))
{
array_push($code_commercial, $ligne['id_commercial']);
array_push($nom_commercial, $ligne['commercial']);
/* On incrémente le compteur sur les commerciaux */
$nb_commerciaux++;
}
}
?>
<form action="<?php echo "#"; ?>" method="post" id="chgdept">
<?php
echo "<center>";
/*Liste déroulante des commerciaux*/
?>
<td><select name="commercial" id="commercial" onchange="document.forms['chgdept'].submit();">
<option value="-1">- - - Choisissez un commercial - - -</option>
<?php
for($i = 0; $i < $nb_commerciaux; $i++)
{
?>
<option value="<?php echo($code_commercial[$i]); ?>"<?php echo((isset($com_choisi) && $com_choisi == $code_commercial[$i])?" selected=\"selected\"":null); ?>><?php echo($nom_commercial[$i]); ?></option>
<?php
}
?>
</select>
<?php
mysql_free_result($rech_commerciaux);
/*********************************************************************************/
/* On commence par vérifier si on a envoyé un numéro de commercial et le cas échéant s'il est différent de -1 */
if(isset($com_choisi) && $com_choisi != -1)
{
/* Création de la requête pour avoir les millesimes de ce commercial */
$sql2 = "SELECT DISTINCT `millesime`,`id_millesime`,`idcommercial`".
" FROM `millesime`,`vente`".
" WHERE `idcommercial` = ". $com_choisi ."".
" GROUP BY `millesime` ASC";
{
$rech_millesime = mysql_query($sql2);
/*Test d'affichage du chemin de la requete*/
//echo $sql2;
/* Un petit compteur pour les millesimes */
$nd = 0;
/* On crée 2 tableaux pour les millesimes */
$code_millesime = array();
$nom_millesime = array();
/* On va mettre les millesimes et id dans les deux tableaux */
while($ligne_millesime = mysql_fetch_assoc($rech_millesime))
{
array_push($code_millesime, $ligne_millesime['id_millesime']);
array_push($nom_millesime, $ligne_millesime['millesime']);
$nd++;
}
/* Maintenant on peut construire la liste déroulante des millesimes*/
?>
<select name="millesime" id="millesime" onChange="document.forms['chgdept'].submit();">
<option value="-1">---Choisissez une année---</option>
<?php
for($m = 0; $m<$nd; $m++)
{
?>
<option value="<?php echo($code_millesime[$m]); ?>"<?php echo((isset($millesime_choisi) && $millesime_choisi == $code_millesime[$m])?" selected=\"selected\"":null); ?>><center> Année <?php echo($nom_millesime[$m]); ?></center></option>
<?php
}
?>
</select>
<?php
}
/* Un petit coup de balai */
mysql_free_result($rech_millesime);
}
/*********************************************************************************/
if(isset($com_choisi))
if(isset($millesime_choisi))
{ ?>
<input type="button" name="ok" class="bouton" value="Envoyer" onClick="window.navigate('index.php?liste=recherche_millesime_commercial&choix=millesime_commercial&commercial=<?php echo $com_choisi; ?>&millesime=<?php echo $millesime_choisi; ?>')" >
<? } ?> </td>
</form>
<?php
} ?>
</tr>
</table>
<br />
</fieldset>
<?php
break;