Requete php ac atribut selectioné dans liste
Fermé
drogba7213
Messages postés
1524
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
3 avril 2010
-
19 févr. 2009 à 15:42
IpIpIpIpOne Messages postés 436 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 24 mai 2009 - 19 févr. 2009 à 18:20
IpIpIpIpOne Messages postés 436 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 24 mai 2009 - 19 févr. 2009 à 18:20
A voir également:
- Requete php ac atribut selectioné dans liste
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Easy php - Télécharger - Divers Web & Internet
- Liste de diffusion whatsapp - Guide
- Gertrude a préparé la liste des affaires à prendre pour l'excursion. juliette a modifié cette liste en utilisant le mode suivi des modifications proposé par le traitement de texte. - Guide
8 réponses
drogba7213
Messages postés
1524
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
3 avril 2010
21
19 févr. 2009 à 16:46
19 févr. 2009 à 16:46
up
IpIpIpIpOne
Messages postés
436
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
24 mai 2009
116
19 févr. 2009 à 16:50
19 févr. 2009 à 16:50
Qu'est ce qui ne fonctionne pas ?
Lu comme ça rapidement, tu as l'air d'utiliser la bonne méthode
Lu comme ça rapidement, tu as l'air d'utiliser la bonne méthode
drogba7213
Messages postés
1524
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
3 avril 2010
21
19 févr. 2009 à 17:00
19 févr. 2009 à 17:00
Bah en fait je suppose que ce sont mes conditions qui sont fausse
vu que les listes prennent forcément une valeur du coup ca m'affiche rien
je sais pas si je si plus compréhensible dite moi
if (isset ($_POST['TYPE'])) { $TYPE = $_POST['TYPE']; } else { $TYPE = ''; }
vu que les listes prennent forcément une valeur du coup ca m'affiche rien
je sais pas si je si plus compréhensible dite moi
IpIpIpIpOne
Messages postés
436
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
24 mai 2009
116
19 févr. 2009 à 17:11
19 févr. 2009 à 17:11
En fait une champ select simple n'est jamais indéfini. (Un select multiple peut être indéfini si rien n'a été sélectionné.)
Donc, le mieux c'est à mon avis de mettre une première valeur vide dans tes select (<option value=""></option>) et d'utiliser "!empty" plutôt que "isset" :
$sql = "SELECT * FROM table ";
if(!empty($_POST['nom_de_ton_select'])) $sql .= ' WHERE champ=\''.$_POST['nom_de_ton_select'].'\'';
//etc ...
Pense aussi vérifier les valeurs passées par le formulaire avant de faire ta requête SQL et de nommer tes champs plutôt que d'utiliser le *
Donc, le mieux c'est à mon avis de mettre une première valeur vide dans tes select (<option value=""></option>) et d'utiliser "!empty" plutôt que "isset" :
$sql = "SELECT * FROM table ";
if(!empty($_POST['nom_de_ton_select'])) $sql .= ' WHERE champ=\''.$_POST['nom_de_ton_select'].'\'';
//etc ...
Pense aussi vérifier les valeurs passées par le formulaire avant de faire ta requête SQL et de nommer tes champs plutôt que d'utiliser le *
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
drogba7213
Messages postés
1524
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
3 avril 2010
21
19 févr. 2009 à 17:48
19 févr. 2009 à 17:48
je n'ai pas tout compris je sais que c'est culoter mais pouvez vous adapter votre solution a mon code svp?
la liste :
et pour les tris :
merci d'avance
la liste :
echo "<br><center>"; $sql = "SELECT DESIGNATION FROM TYPE"; $req = odbc_exec($conn,$sql) or die('Erreur SQL : <br />'.$sql); echo " <select name= 'TYPE' size=\"1\" onchange=\"active(this)\">"; while($data = odbc_fetch_array($req)) { if ($data["DESIGNATION"] == $_POST['TYPE']) { $selected = ' selected="selected" '; } else { $selected = ''; } echo "\n <option value=\"".$data["DESIGNATION"]."\" " . $selected . ">".$data["DESIGNATION"]."</option>"; } //echo "<option value='' selected='selected'> </option>"; //echo "<option value='' selected='selected'>Type</option>"; echo '</select>';
et pour les tris :
if (isset($_POST['d']) && isset($_POST['f'])) { $sql = "SELECT * FROM ARRET_CHAINE, PLAN_ACTION WHERE ARRET_CHAINE.NUMERO_PLAN_ACTION = PLAN_ACTION.NUMERO_PLAN_ACTION AND DEBUT BETWEEN #$date_deb# AND #$date_fin#" ; $rs = odbc_exec($conn,$sql) or die('<br><br><br><br><center>-------- Saisir une période -------- et cliquer sur OK --------<center/>'); $_SESSION['d'] = $_POST['d']; $_SESSION['f'] = $_POST['f']; if (isset ($_POST['TYPE'])) { $TYPE = $_POST['TYPE']; } else { $TYPE = ''; } if(isset($_POST['CONSTAT'])) { $CONSTAT = $_POST['CONSTAT']; } else { $CONSTAT = ''; } if (isset($_POST['DEMANDE'])) { $DEMANDE = $_POST['DEMANDE']; } else { $DEMANDE = ''; } if (isset($_POST['CAUSE'])) { $CAUSE = $_POST['CAUSE']; } else { $CAUSE = ''; } if (isset($_POST['IMPUTATION'])) { $IMPUTATION = $_POST['IMPUTATION']; } else { $IMPUTATION = ''; } $sql1 = " SELECT * FROM ARRET_CHAINE WHERE DEBUT BETWEEN #$date_deb# AND #$date_fin# AND TYPE = '$TYPE' AND CONSTAT = '$CONSTAT' AND DEMANDE = '$DEMANDE' AND CAUSE = '$CAUSE' AND IMPUTATION = '$IMPUTATION'"; $rs = odbc_exec($conn,$sql1) or die('<br><br><br><br><center>-------- Saisir une période -------- et cliquer sur OK --------<center/>'); }
merci d'avance
IpIpIpIpOne
Messages postés
436
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
24 mai 2009
116
19 févr. 2009 à 17:57
19 févr. 2009 à 17:57
Voilà, les quelques modifications sont en gras. Bien sur, j'ai adapté ton code uniquement pour le select "TYPE" ;)
----
echo "<br><center>";
$sql = "SELECT DESIGNATION FROM TYPE";
$req = odbc_exec($conn,$sql) or die('Erreur SQL : <br />'.$sql);
echo " <select name= 'TYPE' size=\"1\" onchange=\"active(this)\">";
echo '<option value=""></option>';
while($data = odbc_fetch_array($req))
{
if ($data["DESIGNATION"] == $_POST['TYPE'])
{
$selected = ' selected="selected" ';
}
else {
$selected = '';
}
echo "\n <option value=\"".$data["DESIGNATION"]."\" " . $selected . ">".$data["DESIGNATION"]."</option>";
}
//echo "<option value='' selected='selected'> </option>";
//echo "<option value='' selected='selected'>Type</option>";
echo '</select>';
et pour les tris :
if (isset($_POST['d']) && isset($_POST['f']))
{
$sql = "SELECT *
FROM ARRET_CHAINE, PLAN_ACTION
WHERE ARRET_CHAINE.NUMERO_PLAN_ACTION = PLAN_ACTION.NUMERO_PLAN_ACTION
AND DEBUT BETWEEN #$date_deb#
AND #$date_fin#" ;
$rs = odbc_exec($conn,$sql) or die('<br><br><br><br><center>-------- Saisir une période -------- et cliquer sur OK --------<center/>');
$_SESSION['d'] = $_POST['d'];
$_SESSION['f'] = $_POST['f'];
//if (isset ($_POST['TYPE']))
//{
if(!empty($_POST['TYPE'])){
$TYPE = $_POST['TYPE'];
}
else
{
$TYPE = '';
}
if(isset($_POST['CONSTAT']))
{
$CONSTAT = $_POST['CONSTAT'];
}
else
{
$CONSTAT = '';
}
if (isset($_POST['DEMANDE']))
{
$DEMANDE = $_POST['DEMANDE'];
}
else
{
$DEMANDE = '';
}
if (isset($_POST['CAUSE']))
{
$CAUSE = $_POST['CAUSE'];
}
else
{
$CAUSE = '';
}
if (isset($_POST['IMPUTATION']))
{
$IMPUTATION = $_POST['IMPUTATION'];
}
else
{
$IMPUTATION = '';
}
$sql1 = " SELECT *
FROM ARRET_CHAINE
WHERE DEBUT BETWEEN #$date_deb#
AND #$date_fin#";
if(!empty($TYPE)) $sql1.= "AND TYPE = '$TYPE'";
$sql1.= " AND CONSTAT = '$CONSTAT'
AND DEMANDE = '$DEMANDE'
AND CAUSE = '$CAUSE'
AND IMPUTATION = '$IMPUTATION'";
$rs = odbc_exec($conn,$sql1) or die('<br><br><br><br><center>-------- Saisir une période -------- et cliquer sur OK --------<center/>');
}
----
echo "<br><center>";
$sql = "SELECT DESIGNATION FROM TYPE";
$req = odbc_exec($conn,$sql) or die('Erreur SQL : <br />'.$sql);
echo " <select name= 'TYPE' size=\"1\" onchange=\"active(this)\">";
echo '<option value=""></option>';
while($data = odbc_fetch_array($req))
{
if ($data["DESIGNATION"] == $_POST['TYPE'])
{
$selected = ' selected="selected" ';
}
else {
$selected = '';
}
echo "\n <option value=\"".$data["DESIGNATION"]."\" " . $selected . ">".$data["DESIGNATION"]."</option>";
}
//echo "<option value='' selected='selected'> </option>";
//echo "<option value='' selected='selected'>Type</option>";
echo '</select>';
et pour les tris :
if (isset($_POST['d']) && isset($_POST['f']))
{
$sql = "SELECT *
FROM ARRET_CHAINE, PLAN_ACTION
WHERE ARRET_CHAINE.NUMERO_PLAN_ACTION = PLAN_ACTION.NUMERO_PLAN_ACTION
AND DEBUT BETWEEN #$date_deb#
AND #$date_fin#" ;
$rs = odbc_exec($conn,$sql) or die('<br><br><br><br><center>-------- Saisir une période -------- et cliquer sur OK --------<center/>');
$_SESSION['d'] = $_POST['d'];
$_SESSION['f'] = $_POST['f'];
//if (isset ($_POST['TYPE']))
//{
if(!empty($_POST['TYPE'])){
$TYPE = $_POST['TYPE'];
}
else
{
$TYPE = '';
}
if(isset($_POST['CONSTAT']))
{
$CONSTAT = $_POST['CONSTAT'];
}
else
{
$CONSTAT = '';
}
if (isset($_POST['DEMANDE']))
{
$DEMANDE = $_POST['DEMANDE'];
}
else
{
$DEMANDE = '';
}
if (isset($_POST['CAUSE']))
{
$CAUSE = $_POST['CAUSE'];
}
else
{
$CAUSE = '';
}
if (isset($_POST['IMPUTATION']))
{
$IMPUTATION = $_POST['IMPUTATION'];
}
else
{
$IMPUTATION = '';
}
$sql1 = " SELECT *
FROM ARRET_CHAINE
WHERE DEBUT BETWEEN #$date_deb#
AND #$date_fin#";
if(!empty($TYPE)) $sql1.= "AND TYPE = '$TYPE'";
$sql1.= " AND CONSTAT = '$CONSTAT'
AND DEMANDE = '$DEMANDE'
AND CAUSE = '$CAUSE'
AND IMPUTATION = '$IMPUTATION'";
$rs = odbc_exec($conn,$sql1) or die('<br><br><br><br><center>-------- Saisir une période -------- et cliquer sur OK --------<center/>');
}
drogba7213
Messages postés
1524
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
3 avril 2010
21
19 févr. 2009 à 18:17
19 févr. 2009 à 18:17
franchement merci beaucoup tu me sauve merci par contre saurais tu comment vider une variable session pas avec unset() ni destroy ou alors je l'ai place mal stp
IpIpIpIpOne
Messages postés
436
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
24 mai 2009
116
19 févr. 2009 à 18:20
19 févr. 2009 à 18:20
heu .. normalement avec unset ça devrait marcher ...
unset($_SESSION['a_supprimer']);
Je ne pense pas qu'il existe une autre méthode que celle là vu que la fonction unset est faite pour ça ...
ou si c juste pour la vider sans la supprimer ...
$_SESSION['a_vider'] = '';
?
unset($_SESSION['a_supprimer']);
Je ne pense pas qu'il existe une autre méthode que celle là vu que la fonction unset est faite pour ça ...
ou si c juste pour la vider sans la supprimer ...
$_SESSION['a_vider'] = '';
?