begin process at 2012 02 08 22:05:49
  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 afficher une base [ par lilyy59 ] Bonjour, J'ai fait un code en cour qui marchait très bien, mais je ne sais pas pourquoi chez moi il ne marche pas. [code=php]$bi = new boxint($connex probléme d'insertion des données dans 3tables !! [ par goldray ] Bonjour, Salut à tous les membres, j'ai un problème au niveau de l'insertion de données dans 3tables avec MYSQL ...un petit résumé de mes 3tables : u recherche de valeur mini et retour des lignes correspondantes [ par foincs ] Bonjour, J'ai une table Client, CA, Ville, Code_postal. Chaque Client est présent dans plusieurs villes ou il a sont chiffre d'affaire. Je souhaite é Traiter des données en doubles, en triples dans un même requête [ par juliaLRJ75 ] Bonjour, Après maintes recherches je ne trouve pas la simplification miracle de mes requêtes, donc si quelqu'un a une idée... Voilà je récupére dans Retrouver l'ID d'une clé étrangère sur l'ensemble d'une base Oracle [ par amundain ] Bonjour à tous, Je me pose une question à laquelle je ne suis pas encore parvenu à trouver de réponse, je me tourne donc vers la communauté... J'uti Procedure stockée avec IN [ par backdraf ] Bonjour, J'ai une procedure stockée qui ne correspond pas a ce que je voudrais comme resultat. j'utilise la commande "IN" pour recuperer le resultat d Ne plus afficher l'erreur "Impossible d'attribuer une valeur à cet objet" [ par delphy76 ] Bonjour, Je suis sous Microsoft Access 2003, et j'ai créé un formulaire permettant de modifier la base de données. Pour cela, il y a des champs texte une ligne par valeurs [ par nitho ] Bonjour à tous, voilà je cherche à faire une requête qui me renvoie la première ligne de chaque valeur d'un champ. c'est à dire que j'ai disons une t sélectionner les enregistrements pour la valeur max d'un champ d'une table liée [ par rlapt ] Bonjour, Je souhaite faire une requête SQL à partir d'excel, dans une base Access. J'ai deux tables liées par des champs d'index : Table 1 -> Nro


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 1,170 sec (4)

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