Liste liées exception à ne pas afficher

Fermé
roy mustang Messages postés 110 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 2 juin 2009 - 22 avril 2009 à 01:12
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 22 avril 2009 à 09:05
Bonjour,
j'ai un code qui permet l'affichage de 2 listes liés une pour les matières premières et une autre pour les type matière première
par exemple on sélectionne dans la première liste (attribut des_mat_pre dans la table mysql) mousse
dans la seconde liste apparaissent tous les type matières mousse (attribut des_typ_mat_pre)
voici les 2 tableaux
voici la table matiere premiere
Code :
#
# Structure de la table `matiere_premiere`
CREATE TABLE matiere_premiere (
code_mat_pre int(20) NOT NULL auto_increment,
des_mat_pre varchar(20) NOT NULL default '',
PRIMARY KEY (code_mat_pre)
) TYPE=MyISAM;


et la table type matiere premiere
#
# Structure de la table `type_matiere_premiere`
Code :


CREATE TABLE type_matiere_premiere (
code_typ_mat_pre int(20) NOT NULL auto_increment,
code_four varchar(20) NOT NULL default '',
code_mat_pre varchar(20) NOT NULL default '',
couleur varchar(20) NOT NULL default '',
des_typ_mat_pre varchar(20) NOT NULL default '',
PRIMARY KEY (code_typ_mat_pre),
KEY code_four (code_four)
) TYPE=MyISAM


;
et voici le code script qui m'a permis de liés les 2 listes
Code :

<?
@$vcode_mat= $_REQUEST['mat_pre'];
@$vcode_typ_mat= $_REQUEST['code_typ_mat'];
 
?>
<body>
<form action="liste_deroulante3.php" method="post" name="form1">
<fieldset style="width: 500px">
<legend>Liste liées</legend>
<label>matiere premiere</label>
<select name='mat_pre' onChange="form1.submit()">
<option selected>----------------</option>
<?
$req = mysql_query("SELECT * FROM matiere_premiere ORDER BY des_mat_pre");
while($res = mysql_fetch_array($req)){
if (@$vcode_mat == $req[0])
$selected = "selected";
else
$selected = "";?>
<option value= <?= $res[0] ?> <?=$selected?> ><?php print ("$res[1]");?> </option>
<?php
}
?>
</select>
<p>
<label>type matière première</label>
<div id='des_typ_mat_pre' style='display:inline'>
<select name='code_typ_mat' onChange="form1.submit()">
<option >Choisir une matière première</option>
<?php
$req = mysql_query("SELECT * FROM type_matiere_premiere where code_mat_pre =$vcode_mat ");
while($res = mysql_fetch_array($req)){
if (@$vcode_typ_mat == $res[3])
$selected = "selected";
else
$selected = "";?>
<option value= <?= $res[3] ?> <?=$selected?> ><?php print ("$res[4]");?> </option>
<?php
}
?>

en effet ce que j'en ai besoin c'est de faire une exception sur un élément de ma liste déroulante matière première (des_mat_pre dans la table mysql)qui s'appelle tissus pour qu'elle ne s'affiche pas et une autre exception bien sure sur les type matiere première(des_typ_mat_pre) ayant comme nom de matière première tissus...
je bloque à fond la dessus parce que je suis débutant...
merci

1 réponse

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
22 avril 2009 à 09:05
Bonjour,

je suppose que pour ces exeptions par ex tissus tu n'as pas de valeurs dans la deuxième table

donc il suffit de teseter le nombre d'enr trouvés dans cette table pour le code_mat_pre


......
$req = mysql_query("SELECT * FROM type_matiere_premiere where code_mat_pre =$vcode_mat ");
if(mysql_num_rows($req) >0){
//cas avec deuxième liste
while($res = mysql_fetch_array($req)){
if (@$vcode_typ_mat == $res[3])
$selected = "selected";
else
$selected = "";?>
<option value= <?= $res[3] ?> <?=$selected?> ><?php print ("$res[4]");?> </option>
<?php
}


}else{
//cas sans deuxième liste

}

0