begin process at 2010 02 10 00:46:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

MySQL

 > 

Requêtes

 > 

filtrage d'une table sql a l'aide de listes déroulantes


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

filtrage d'une table sql a l'aide de listes déroulantes

mercredi 8 octobre 2008 à 12:05:27 | filtrage d'une table sql a l'aide de listes déroulantes

saltwater08

Bonjour, je vais essayer d'etre bref et precis
Voila j'ai une table Table1 avec des champs : champ1,champ2,champ3,date
le but est de récuperer les différantes valeur possible des champs dans une liste déroulante et avoir deux zone de texte ou je peu metre des dates a fin de pouvoir filtrer les valeurs des champs qui m'interessent enntre deux dates:
Exemple1: la liste déroulante champ1 récupere les différantes valeurs possible de champ1, une fois que je selectionne la valeur qui m'interesse et que je fait soumetre
j'ai une variable $requete =  ' champ1="valeur selectionné"'
la requete finale ressemblera a "Select  * from table1 where.$requete"
Exemple2: la liste champ2 récupere les différantes valeurs possible, une fois que je selectionne la valeur qui m'interesse je saisi deux dates et je fait soumetre,
ma variable $requete = ' champ2="valeur selectionn" and date between "datechoisi1" and "datechoisi2"'
pareil la requete finale ressemblera a "Select  * from table1 where.$requet"  donc la requete finale sera Select * from table1 where 'champ2="valeur selection" and date between "datechoisi1" and "datechoisi2"'

jusqu'a present j'ai réussi a récuperer les différante valeurs des champs mais quand je click sur soumetre ma variable y'a que les champs dates qui envoi leur valeur voila mon code
dans mon code les champs sont kind, state, period  (ici je ne vais afficher que la partie qui recupere les valeurs de kind puisque pour state et period c pareil)

//requet pour récuperer les différent valeur de kind avec mysqli
$result_kind=$mysqli->query("Select distinct kind FROM $table ");

//recuperation des valeurs pour les metre dans ma liste (ici pour le champ kind)
echo "Filtrage de la table";
echo "<form action='Admin_test.php' method='POST' name=\"frm\">";
echo "<table><tr><td>Kind : ";
echo "<select name='Kind'>";
echo'<option selected="selected">Null</option>';
while ($row = $result_kind->fetch_object()) {
echo"<option >$row->kind</option>";
}
echo"</select></td>";

//champ pour enter les dates et le bouton soumetre

echo"<td>Date debut : ";
echo '<input type="text" name="date1" /></td>';
echo"<td>Date fin : ";
echo '<input type="text" name="date2" /></td>';
// soumetre le formulaire
echo '<td><input type="submit" name="Filtrer" value="Filtrer" onclick=" form1.submit();"></td>';
echo"</table></form>";



//recuperation des valeur des differente listes déroulantes
$whereClause = "";
if(isset($_POST["Kind"]) && $_POST['kind']!="Null")$whereClause.=' and kind="'.$_POST["kind"].'"';
if(isset($_POST["states"])&& $_POST['state']!="Null")$whereClause.=' and state="'.$_POST["state"].'"';
if(isset($_POST["periodes"])&& $_POST['period']!="Null")$whereClause.=' and period="'.$_POST["period"].'"';
if(isset($_POST["date1"]) && (!isset($_POST["date2"])))$whereClause.=' and date1 >="'.$_POST["date1"].'"';
if(isset($_POST["date2"]) && (!isset($_POST["date1"])))$whereClause.=' and date2 <="'.$_POST["date2"].'"';
if(isset($_POST["date1"]) && (isset($_POST["date2"])))$whereClause.=' and date_crea between '.$_POST["date1"].' and '.$_POST["date2"].'';


$requete_filtre ="SELECT * from $table  ".($whereClause?' WHERE '.$whereClause:'');

//test de la variable $whereclause
echo $whereclause
ca marche que pour les dates ca ne recupere pas le valeur de kind

mercredi 8 octobre 2008 à 13:58:33 | Re : filtrage d'une table sql a l'aide de listes déroulantes

nhervagault

Administrateur CodeS-SourceS
Salut,

Il semble que ta requete generée est fausse

j'ai l'impression que ta requete resemble à WHERE AND KIND

Pour éviter cela je mettrais

$requete_filtre ="SELECT * from $table  ".($whereClause?' WHERE 1=1 '.$whereClause:'');
Dans ton code à la place de
$requete_filtre ="SELECT * from $table  ".($whereClause?' WHERE '.$whereClause:'');
mercredi 8 octobre 2008 à 15:02:37 | Re : filtrage d'une table sql a l'aide de listes déroulantes

saltwater08

Merci pour ta réponse j'ai fait
$requete_filtre ="SELECT * from $table  ".($whereClause?' WHERE '.substr($whereClause,5):''); ce qui enleve sistématiquement les 5 premier caractere de la chaie $whereClause;
pour le problem c'etait juste une erreur dans les variables j'ai oublier les "s" a la fin lol des fois c'est tout bete. et j'avai pas mi de else if dans les dates
//nouveau code

whereClause = "";
if(isset($_POST["Kind"]) && $_POST['Kind'])$whereClause.=' and kind="'.$_POST["Kind"].'"';
if(isset($_POST["States"])&& $_POST['States'])$whereClause.=' and state="'.$_POST["States"].'"';
if(isset($_POST["Periodes"])&& $_POST['Periodes'])$whereClause.=' and period="'.$_POST["Periodes"].'"';
if($_POST["date1"] && !$_POST["date2"])$whereClause.=' and date_crea >= "'.profil::_cleanDate($_POST["date1"]).'"';
elseif($_POST["date2"] && !$_POST["date1"])$whereClause.=' and date_crea <= "'.profil::_cleanDate($_POST["date2"]).'"';
elseif($_POST["date1"] && $_POST["date2"])$whereClause.=' and date_crea between "'.profil::_cleanDate($_POST["date1"]).'" and "'.profil::_cleanDate($_POST["date2"]).'"';

j'aurai besoin d'une fonction qui filtre une chaine de caractere pour la transformer en date lisible pour une requete sql. j'utilise une class que j'avai mais elle ne fait pas bien le boulo pour les seconde elle ne formate que les jours mois et année, mais j'ai besoin de plus de précision si quelqu'un connais une fonction qui formate tout en employant les seconde genre "2008 04 30 20 18 05" - 2008-04-30 20:18:05
ou bien une fonction qui separe la date en deux partie les jour mois année seron traité par ma classe et le reste par une fonction qui va faire la convertion pour je concat le resultat,
Merci encor





Cette discussion est classée dans : valeur, and, post, echo, kind


Répondre à ce message

Sujets en rapport avec ce message

requete SQL aider mois SVP [ par spoque ] Bonjour Voici mon problème: $valeur= odbc_exec( $cnx, "(SELECT (COUNT (ID)*10) FROM Users WHE TVA sur ma requete [ par spoque ] bonjour à tous,comment faire pour rajouter la TVA (7,6%) sur cette requete?Merci d'avance(select sum(compte) from (SELECT (COUNT (ID)*10) as compte FR deux chiffre aprèla virgule [ par spoque ] Hello toujour pas trouvé une solution pour ma requete j'aimerais deux chiffres après la virgule.Cordialementselect sum(compte) from (SELECT (COUNT (ID select replace [ par yan_j ] bonjour,je cherche a savoir comment faire pour lorsque je passe une requete select sur une table qu'il me retourne 0 lorsque la valeur et M et 1 lorsq probleme avec requete selection? [ par firas_tn ] Salut a tous :)j'ai une table ou il ya deux champs le 1er NE et le 2eme est ospf, le probleme c'est que je n'ai pas trouvé de requete pour me sélectio Comment mettre une valeur cachée ligne par ligne [ par dpfort ] Bonsoir, Je cherche à mettre une valeur cachée en mise à jour, ligne par ligne en fonction du N°d'identifiant. C'est à dire je ne donne pas la possibi retourner une valeur par defaut [ par Balbrolock ] Boujour,voila j'ai un petit probleme, je suis sous access 97 et il ne semble pas possible d'utiliser les fonctions "IF..." ou "CASE ... THEN..."et du Problème Format date dans requete [ par phantom_2005 ] Voici ma requete sous Access 2000: SELECT DISTINCTROW [SCMPEH].[LINNUM], [SCMLIN].[LINNAM], Format$([SCMPEH].[PEHDAT], "jj/mm/aaaa") AS [PEHDAT par jo problème de Date lorsque l'intervalle est à cheval sur 2 mois... [ par nico_ayci ] salut à tous ! j'ai une fonctionnalité de recherche qui donne la possibilité de trouver des enregistrements selon leur date, à plus ou moins X jours. LIKE [ par elog29 ] Bonjour,Je cherche a utiliser like sur 1 champ entre 2 tables, voici ma requete, elle ne me retourne pas d'erreur mais ne m'affiche pas de resultat<FO


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales