bonjour demande aide pour un moteur de recherche multi critère explication

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : bonjour demande aide pour un moteur de recherche multi critère explication

Merci

par MR73PHP » 25 mai 2008, 21:05

je vais mettre ca en pratique demain.

par cuisto44000 » 25 mai 2008, 20:20

if ($pseudo!="") cela veut dire si (le poseudo posté n'est pas null(vide))

pour que cette condition soit traitée, tu dois évidement nommer un de tes champs name="pseudo"...

et tu devra refaire cette requete pour chaque champ en changeant le $pseudo=$_POST['pseudo']; par $nom_de_ta_variable=$_POST['nom_de_ton_champ']; as tu compris cela?

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

dur dur

par MR73PHP » 25 mai 2008, 09:49

voila ou j' en suis maintenant
<html>
<head>
Bonjour et bienvenue sur votre espace recherche,

<p><font size="4" color="#800000"><b><u><i><br>Catégories:<br>
</i></u></b></font></p>
						  
<select name="choix?">         
         <option value="choix1">Nom  </option>
		 <option value="choix2">Prenom  </option>
		 <option value="choix3">Date de naissance </option>
		 <option value="choix4">Lieu de naissance  </option>
		 <option value="choix5">Departement  </option>
</select>	
<title>Moteur de recherche des fonctions PHP.</title>
</head>
<body>
    <p><font size="4" color="#800000"><b><u><i><br>
    Enfants recherché :Critères de sélèction<br>
    </i></u></b></font></p>    
    <form action="<? echo getenv('SCRIPT_NAME'); ?>" method="post">
     <p>Tapez le nom ou une partie du nom:
    <input type="text" name="fonction" size="25" maxlength="100"><br>
    <input type="submit" value="Chercher"></p>     
     <p>Tapez la date de naissance:
    <input type="text" name="fonction" size="25" maxlength="100"><br>
    <input type="submit" value="Chercher"></p>
	 <p>Tapez le lieu de naissance:
    <input type="text" name="fonction" size="25" maxlength="100"><br>
    <input type="submit" value="Chercher"></p>
	 <p>Tapez le Code postal:
    <input type="text" name="fonction" size="25" maxlength="100"><br>
    <input type="submit" value="Chercher"></p>
<?php
$jour = date("d");	
$mois = date("m");	
$annee = date("y");	

$heure =date("h");
$minute = date("i");	

echo "Nous sommes le $jour/$mois/$annee et il est $heure h $minute.";
?>
    </form>
	</head>

<?php
mysql_connect(localhost, root, ""); //LOGIN ET MOT DE PASSE
mysql_select_db(famille);      //connexion à la la basse de données

if (isset($_POST['rechercher'])) // si on a bien appelé cette page via le formulaire
              $requete = "SELECT * FROM famille WHERE Nom LIKE '%$recherche%' ORDER BY id"; // tape ta requete avec comme parametre ...WHERE pseudo='$pseudo'...
 {
    // C'est ici que tu redigera tes conditions par exemple :
 $pseudo=$_POST['pseudo']; // déclaration des paramètres postés //JE VOIS PAS A QUOI CA SERT CA??
 if ($pseudo!="")//JE VOIS PAS A QUOI CA SERT CA??
{
 $requete = "SELECT * FROM famille WHERE Nom LIKE '%$recherche%' ORDER BY id"; // tape ta requete avec comme parametre ...WHERE pseudo='$pseudo'...        
}
    else if ('gerard'=='jean_claude') // Biensure ne tape pas ça, c'est pour te montrer comment passer plusieurs conditions //JET UN COUP D 'OIEL AU SCRIPT 2
        {
        // autre requète avec les parametres adéquates
        }
    else // Tous les champs sont vides, alors on affiche un message d'erreur !
        echo 'Vous devez remplire au moins un champ pour que le requête s'effectue, merci !';
    }
else
    {
    echo 'Vous n' êtes pas autorisé à voir cette page'; //si cette page n'a pas étée appelée par le formulaire
    }

?>

par MR73PHP » 24 mai 2008, 01:48

merci

par cuisto44000 » 23 mai 2008, 17:25

avant de regarder php, commence par regarder html.

La construction d'un formulaire se fait d'abord en html, ensuite le traitement peut se faire en php.

quelques balises a etudier:

form
input
select

une fois que tu as construit ton formulaire on pourra t'aider ;)

un peu de lecture pour le week-end ;)
http://www.siteduzero.com/tuto-3-6-0-ap ... e-web.html
si il asimile tout ça en un WE ... :lol: ceci dit, les cours du site du zero sont les meilleurs du web selon moi, un peu longs certes, mais tellement complets et simples à comprendre ... ;) bonne lecture !

par steph29 » 23 mai 2008, 16:34

avant de regarder php, commence par regarder html.

La construction d'un formulaire se fait d'abord en html, ensuite le traitement peut se faire en php.

quelques balises a etudier:

form
input
select

une fois que tu as construit ton formulaire on pourra t'aider ;)

un peu de lecture pour le week-end ;)
http://www.siteduzero.com/tuto-3-6-0-ap ... e-web.html

par cuisto44000 » 23 mai 2008, 15:53

il va falloire jouer sur les conditions :
<?php

if (isset($_POST['formulaire'])) // si on a bien appelé cette page via le formulaire
    {
    // C'est ici que tu redigera tes conditions par exemple :
    $pseudo=$_POST['pseudo']; // déclaration des paramètres postés
    if ($pseudo!="")
        {
         // tape ta requete avec comme parametre ...WHERE pseudo='$pseudo'...
        }
    else if ('gerard'=='jean_claude') // Biensure ne tape pas ça, c'est pour te montrer comment passer plusieurs conditions
        {
        // autre requète avec les parametres adéquates
        }
    else // Tous les champs sont vides, alors on affiche un message d'erreur !
        echo 'Vous devez remplire au moins un champ pour que le requête s'effectue, merci !';
    }
else
    {
    echo 'Vous n' êtes pas autorisé à voir cette page'; //si cette page n'a pas étée appelée par le formulaire
    }

?>

Besoin de plus d'explications ? je te conseil de lire les tutoriels du http://siteduzero.com qui sont assez longs, mais qui te permettrons de tres tres bien comprendre le fonctionnement de php .

Enjoy ;)

re aide

par MR73PHP » 23 mai 2008, 14:55

tu c' est je suis sur ca depuis le début du mois, j' en dort trés mal la nuit enfin j' ai essayé plusieurs choses mais ca foire à chaque fois ..
Merci .

par animithra » 23 mai 2008, 14:45

C'est bizarre, mon petit doigt me dit que si j'ai écrit l'algorithme sous cette forme c'est pour que tu cherches un minimum par toi même, on est ici pour t'aider, non pour faire le boulot à ta place normalement.

Essai de chercher un peu, si ce soir tu n'as pas trouvé la solution je posterai une aide supplémentaire, mais je te recommande chaudement un détour par phpdebutant, le site est bien construit et apportera les réponses à tes questions.

Bonne progra !

par MR73PHP » 23 mai 2008, 13:50

super merci mais ca ddonnerai quoi ca en lagage php et en requete en esperant pas trop abusé merci quand meme.

par animithra » 23 mai 2008, 13:42

j' ai creer une base de donnéés :NOM DE LA BASE : "recherche"
NOM de la table :"famille"
avec des champs: "Nom,pren,om,date,lieu,cp"
Ce que je voulais dire c'est que tu n'as pas de champ civil dans ta table donc cette partie de ton formulaire ne sert pas vraiment.

Pour le reste tu procèdes ainsi :

Code : Tout sélectionner

ecriture d'une requete de base : selection de tous les éléments de la table famille si l'utilisateur a renseigné un nom alors on ajoute "où le nom est comme '%nomSaisi%'" à la requête de base finsi si l'utilisateur a renseigné un prénom alors on ajoute "où le prénom est comme '%prénomSaisi%'" à la requête de base finsi et de même pour chaque paramètre
bonne progra !

par MR73PHP » 23 mai 2008, 13:31

Le parmètre de la sélection "Mme/Mlle/Mr" sert justement à un champ civil
mais pour avoir une réponse l' utlisateur dois remplir un autre champ de recherche pour avoir la ou les réponse(s).

Merci encore pour ton aide..

par animithra » 23 mai 2008, 13:17

Question : à quoi sert la sélection Mme/Mlle/M si tu n'as pas une interprétation vis-à-vis de la base de données (un champ civilité par exemple) ?

Pour le reste, ce que j'ai répondu suffit :
tu récupères chaque paramètre (voir variables $_POST) et tu ajoutes ça aux conditions de ta requête (je te conseille de passer sur phpdebutant.org et de voir la rubrique sur les conditions dans les requêtes).

Bonne progra !

par MR73PHP » 23 mai 2008, 13:08

Merci de ta réponse mais pour que je sois claire dans ma demande et que sois soit compris:

Mon 1er choix:
Ton champ "rechercher par :c'est un menu déroulant on commence par selection :MR MRS MELLE.

et ensuite il faut que l' utlisateur écrive dans une des recherdches si dessous:


RECHERCHER PAR NOM :[===============] /rechercher/

RECHERCHER PAR Prenom: [=============] /rechercher/

RECHERCHER PAR Date: [===============] /rechercher/

RECHERCHER PAR Lieu: [===============] /rechercher/

RECHERCHER PAR CP: (pour code postal):[====] /rechercher/

en réponse (donner le resultat intégrale exemple 'MR Dupont Georges 12/04/1972 PARIS' .

par animithra » 23 mai 2008, 12:41

Bonjour
Voila j'ai essayé plusieurs code source, mais le plus prés que j' ai pu trouver :j'ecrire dans ma cherche est en réponser je n' avais rien...
Tu m'excuseras mais je n'ai pas saisi ce que tu voulais dire exactement ?

Si ta question portait sur la manière de faire la requête de recherche de manière automatisée, voici ma réponse :

Ton champ "rechercher par :" doit être une liste ou un bouton radio.
Si on considère que tu as associé un champ de saisie pour que l'utilisateur saisisse le nom/prénom/cp qu'il souhaite rechercher, et que tu as donné à ce champ le nom motCle, alors il faut procéder de la manière suivante :

Code : Tout sélectionner

on récupère le champ de la table sur lequel s'effectue le trie (résultat de la liste ou du bouton radio) on récupère la valeur à comparer (résultat du champ de saisie motCle) on redige la requete sur le modele : selectionne l'ensemble des données de la table famille où le champ *champ sur lequel on trie* est '%*motCle*%'
Rappel : si tu dois passer des paramètres dans une requête, tu dois rédiger comme ceci :
$requete = "SELECT * FROM table WHERE champ = '".$param."' ";
En espérant avoir répondu à ta question, bonne progra !