murrigane
Messages postés88Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention19 mai 2006
-
10 févr. 2006 à 09:56
asmaneffati
Messages postés3Date d'inscriptionmardi 29 mars 2011StatutMembreDernière intervention29 mars 2011
-
29 mars 2011 à 11:47
Bonjour,
J'essais de créer d'après un formulaire, une recherche sur un ou plusieurs critères :
Le champ 1 est une liste déroulante, le champ 2 c'est du texte, le champ 3 liste déroulante et le champ 4 liste déroulante également.
Je sais pas si ca peut vous être important de la savoir, mais bon je me suis dit que de le préciser serait pas mal.
Ensuite cette recherche s'effectue sur une table qui s'appel Client.
le champ 1 correspond à la région du client, le champ 2 au deux premières lettres du département, le champ 3 si il est professionnel ou particulier, le champ 4 le type d'envois (transporteur, la poste, etc...)
Donc voilà, alors théoriquement je vois à peu près comment faire, pour le champ 1 je fais dans la requête :
WHERE region=$_POST['champ1'] pour le champ 2 je fais un LIKE avec le % placé de façon à ne comparer que les deux première lettres du code postal et pour les deux autres champs je fais comme pour le champ1
Si je n'ais qu'un seul poste de passé, bon rien de bien compliqué, mais là où je n'arrive plus à gérer c'est quand 3 ou 4 champs sont passés. Je peux décomposé avec des if toutes les possibilités mais ca risque de faire quelque chose de pas très propre. J'ai regardé dans des codes sources, j'en ai trouvé un qui pourrait fonctionner mais comme je n'arrive pas à en comprendre le fonctionnement je préfère ne pas l'utiliser.
Quelqu'un aurait-il une solution assez simple à me proposer ?
Merci d'avance
A voir également:
Recherche dans une table avec un ou plusieurs critères
obcstaff
Messages postés147Date d'inscriptionmardi 15 novembre 2005StatutMembreDernière intervention28 janvier 2008 10 févr. 2006 à 10:31
Je te passe un moteur de recherche qui pourrait correspondre a tes
attentes. Il doit surement exister un moteur meilleur mais je ne suis
que debutant alors il n'est pas trés complexe mais correspondra a ce
que tu recherche. Ici mon code traite de 3 critere de recherche:
<?
//On regarde s'il y a quelques choses de poster:
if(extract($_POST))
{
//On assigne des variables aux post envoyé:
$num_fichier = $_POST['num'];
$nom_fichier = $_POST['nom'];
$jours = $_POST['jours'];
$mois = $_POST['mois'];
$annee = $_POST['annee'];
$date = $jours."-".$mois."-".$annee;
if(empty($num_fichier) AND empty($nom_fichier) AND ($jours 0 OR $mois 0 OR $annee == 0))
{
echo("Vous
n'avez pas entré de critére de recherche, vous allez être redirigé
automatiquement.");
elseif(($jours 0 OR $mois 0 OR $annee == 0) AND !empty($num_fichier) AND !empty($nom_fichier))
{
$sql = "SELECT
* FROM fichier, diffusion WHERE num_fichier = '$num_fichier' AND
nom_fichier LIKE '%$nom_fichier%' AND fichier.num_diffusion =
diffusion.num_diffusion";
$result = mysql_query($sql);
//affiche ton resultat
}
elseif(($jours 0 OR $mois 0 OR $annee == 0) AND empty($num_fichier) AND !empty($nom_fichier))
{
$sql = "SELECT
* FROM fichier, diffusion WHERE nom_fichier LIKE '%$nom_fichier%' AND
fichier.num_diffusion = diffusion.num_diffusion";
$result = mysql_query($sql);
//affiche ton resultat
}
elseif(($jours 0 OR $mois 0 OR $annee == 0) AND empty($nom_fichier) AND !empty($num_fichier))
{
$sql = "SELECT
* FROM fichier, diffusion WHERE nom_fichier = '$num_fichier' AND
fichier.num_diffusion = diffusion.num_diffusion";
$result = mysql_query($sql);
//affiche ton resultat
}
elseif($jours != 0 AND $mois != 0 AND $annee != 0 AND empty($nom_fichier) AND empty($num_fichier))
{
$sql = "SELECT
* FROM fichier, diffusion WHERE date_fichier = '$date' AND
fichier.num_diffusion = diffusion.num_diffusion";
$result = mysql_query($sql);
//affiche ton resultat
}
elseif($jours != 0 AND $mois != 0 AND $annee != 0 AND empty($nom_fichier) AND !empty($num_fichier))
{
$sql = "SELECT
* FROM fichier, diffusion WHERE date_fichier '$date' AND num_fichier
'$num_fichier' AND fichier.num_diffusion = diffusion.num_diffusion";
$result = mysql_query($sql);
//affiche ton resultat
}
elseif($jours != 0 AND $mois != 0 AND $annee != 0 AND empty($num_fichier) AND !empty($nom_fichier))
{
$sql = "SELECT
* FROM fichier, diffusion WHERE date_fichier = '$date' AND nom_fichier
LIKE '%$nom_fichier%' AND fichier.num_diffusion =
diffusion.num_diffusion";
$result = mysql_query($sql);
//affiche ton resultat
}
elseif($jours != 0 AND $mois != 0 AND $annee != 0 AND !empty($nom_fichier) AND !empty($num_fichier))
{
$sql = "SELECT
* FROM fichier, diffusion WHERE date_fichier '$date' AND num_fichier
'$num_fichier' AND nom_fichier LIKE '%$nom_fichier%' AND
fichier.num_diffusion = diffusion.num_diffusion";
$result = mysql_query($sql);
//affiche ton resultat
}
}
//S'il y a rien d'envoyé on affiche le formulaire:
else
{?>
Vous pouvez effectuer une recherche de fichier, d'archive, de note par les critéres suivant:
murrigane
Messages postés88Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention19 mai 2006 10 févr. 2006 à 11:15
Bonjour obcstaff !
Merci beaucoup de m'avoir répondu aussi vite c'est très sympa de ta part de me passer ton script qui m'a l'air compréhensible pour mon niveau !
Je vais le tester et essayer de l'adapter à mes besoins. Par conte si je peux me permettre je vais te faire une suggestion au niveau de ton extract, il faudrait que tu l'utilise comme ceci : extract($_POST,EXTR_SKIP)
J'avais posté une fois un bout de script sur le forum avec un extract($_POST) et quelqu'un m'avait dit qu'il ne fallait pas le faire, sinon cela créer un trou de sécurité a moin de l'écrire : extract($_POST,EXTR_SKIP)
Je vais tester ton code et reviens de suite pour raconter ce qu'il m'arrive
Vous n’avez pas trouvé la réponse que vous recherchez ?
murrigane
Messages postés88Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention19 mai 2006 10 févr. 2006 à 11:44
Désolée pour le texte écrit tout gros ...... C'était pas pour mettre mes trucs en évidence mais j'ai fait une mauvaise manip' avec la taille des caractères ...
obcstaff
Messages postés147Date d'inscriptionmardi 15 novembre 2005StatutMembreDernière intervention28 janvier 2008 10 févr. 2006 à 11:48
Je te retourne le remerciement car je suis moi meme débutant, alors toute suggestion est la bienvenue, ok pour le EXTRACT($_POST,EXTR_SKIP)
mais juste une question, qu'est ce que cela signifie le extr_skip? Peut tu me renseigner stp?
Merci et n'hésite pas a poser des questions sur mon code...et si tu
vois une autre suggestion, fais toi plaisir....lol ++
obcstaff
Messages postés147Date d'inscriptionmardi 15 novembre 2005StatutMembreDernière intervention28 janvier 2008 10 févr. 2006 à 11:49
Dsl également pour l'ecriture en gros mais je ne pense pas que ce soit
de notre faute car je n'ai fais aucune fausse manipulation.....ca ne
vient pas de nous en tout cas!!! looool
murrigane
Messages postés88Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention19 mai 2006 10 févr. 2006 à 13:27
EEeuu extract(extr_skip) ben ca veut dire, eeeeeeuuuu ...... Skip l'extraction et ne prends que le nom des variables
Honnetement je ne sais pas exactement ce que cela veut dire, par déduction j'ai supposé la définition plus haut, mais bon ce n'est pas parole d'évangile ! J'ai regardé dans ma bible ... J'avais rien à ce sujet !
Sinon pour les <? au lieu de <?php, oui c'est une erreur, d'ailleurs avec php5 si je ne me trompe pas si tu mets pas <?php aucune partie de ton code ne s'affiche ... .Mais là encore je peux me tromper. Pitetre qu'un spécialiste passera dans le coin et l'expliquera.
Bon je retourne me prendre la tête sur les elseif..... J'ai presque toutes mes différentes valeurs de recherche qui fonctionnent excéptés une seule ... C'est rageant !!
murrigane
Messages postés88Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention19 mai 2006 10 févr. 2006 à 16:27
Tu peux préciser un peu sidf ?? Je te remercie d'avance ! :)
obcstaff, finalement c'est bon j'ai pu me dépatouiller avec le code que tu m'as gentiment passé ! J'ai eu beaucoup de mal à gérer les elseif (que je n'utilise pour ainsi dire jamais ......)
Apparement maintenant cela fonctionne correctement (je dis apparement, parce qu'il y a une heure je pensais avoir réussi mais finalement j'avais un ensemble de $_POST qui n'étais pas traités !)
Merci beaucoup en tout cas, j'ai terminé de baver et je ne suis pas partie à l'hôpital psy du coin ! (devrais faire un pavillon exprès pour les developpeur et informaticiens dans les hôpitaux psychiatrique !! mdr)
asmaneffati
Messages postés3Date d'inscriptionmardi 29 mars 2011StatutMembreDernière intervention29 mars 2011 29 mars 2011 à 11:47
Bonjour,
J'essais de créer d'après un formulaire, une recherche sur un ou plusieurs critères :
Le champ 1 est un texte "nom", le champ 2 c'est du texte aussi "prenom", le champ 3 text "matricule"qui doit etre un entier et le champ 4 est un text "pseudo" et le champ 4 :"groupe" (le groupe qui lui appartien l'utulisateur)
Je sais pas si ca peut vous être important de la savoir, mais bon je me suis dit que de le préciser serait pas mal.
Ensuite cette recherche s'effectue sur une table qui s'appel "membre"
le champ 1 correspond au nom de l'untilisateur , le champ 2 au prenom, le champ 3 a son identifiant le champ 4 a son pseudo et le champt 5 a son groupe (liste de selection)
Si je n'ais qu'un seul poste de passé, bon rien de bien compliqué, mais là où je n'arrive plus à gérer c'est quand 3 ou 4 champs sont passés. Je peux décomposé avec des if toutes les possibilités mais ca risque de faire quelque chose de pas très propre.
Quelqu'un aurait-il une solution assez simple à me proposer ?
Merci d'avance