Page 1 sur 2
Faire une Recherche en PHP
Posté : 17 déc. 2010, 14:44
par Sabrina tech
Salut tout le monde ,
J'ai un petit problème,
Je fais un site de bibliothèque et je veux faire un script de recherche (dont je vous affiche mon formulaire) veuillez m'aider à faire une recherche selon mes critères.
je vous explique : je veux faire une recherche dans ma base "biblio" selon la table sélectionné (Livres, Articles, ou diplomes) et selon le titre saisi, ou l'auteur et les mots clés saisis.
Voila mon formulaire :
<form method="post" action="recherche.php">
<p>Titre
<input type="text" name="titre" maxlength="200" size="50" />
<select name="categorie">
<option value="livre">Livre</option>
<option value="pub">Article</option>
<option value="these">Diplôme</option>
</select>
<br />
<br />
Mots Clés
<input type="text" name="motscles" maxlength="200" size="50" />
<br />
<br />
Auteur
<input type="text" name="auteur" size="50" />
<input type="submit" value="rechercher" name="rechercher" />
</p> </p>
</form>
Veuillez m'aider à faire ma recherche s'il vous plait, j'attends vos réponses c urgent.
Merci d'avance
Re: Faire une Recherche en PHP
Posté : 17 déc. 2010, 19:30
par dunbar
Salut,
Une idée de départ peut-être
<?php
$action = (iSset($_GET['action']) ? $_GET['action'] : NULL );
switch ($action)
{
case 'search':
/*
[titre] =>
[categorie] => livre
[motscles] =>
[auteur] =>
[rechercher] => rechercher
*/
$Where = array();
$Operateur = " OR ";
$table = (iSset($_POST['categorie']) ? mysql_real_escape_string($_POST['categorie']) : NULL );
if(!Empty($_POST['titre']))
{
$Where[] = "titre = '".mysql_real_escape_string($_POST['titre'])."'";
}
if(!Empty($_POST['motscles']))
{
$Where[] = "motscles = '".mysql_real_escape_string($_POST['motscles'])."'";
}
if(!Empty($_POST['auteur']))
{
$Where[] = "auteur = '".mysql_real_escape_string($_POST['auteur'])."'";
}
if(count($Where) != 0)
{
$sql_search = " WHERE ". implode($Operateur, $Where);
echo $SqlSearch = " SELECT * FROM $table " . $sql_search;
$result = mysql_query($SqlSearch) or die ('Erreur : '.mysql_error());
$total = mysql_num_rows($result);
}
else
{
echo 'Merci de choisir un critère de recherche.';
}
break;
default;
echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'?action=search">
<p>Titre
<input type="text" name="titre" maxlength="200" size="50" />
<select name="categorie">
<option value="livre">Livre</option>
<option value="pub">Article</option>
<option value="these">Diplôme</option>
</select>
Mots Clés
<input type="text" name="motscles" maxlength="200" size="50" />
Auteur
<input type="text" name="auteur" size="50" />
<input type="submit" value="rechercher" name="rechercher" />
</p> </p>
</form>';
break;
}
?>
Re: Faire une Recherche en PHP
Posté : 20 déc. 2010, 11:14
par Sabrina tech
Merci pour votre attention,
Mais ca n'as pas marché rien ne s'affiche veuillez m'expliquer de plus ?
Re: Faire une Recherche en PHP
Posté : 20 déc. 2010, 11:53
par moogli
cherche dans la doc de mysql
- like
- soundex
- match / against
@+
Re: Faire une Recherche en PHP
Posté : 20 déc. 2010, 13:13
par Sabrina tech
Merci mais c pas ca mon but et mon problème ,
j'arrive pas à faire ma recherche selon la catégorie (livre, diplome ou article) je sais pas comment le faire
S'il vous plait aider moi je dois trouver une solution le plus tot possible
merci
Re: Faire une Recherche en PHP
Posté : 20 déc. 2010, 13:31
par dunbar
Merci mais c pas ca mon but et mon problème ,
j'arrive pas à faire ma recherche selon la catégorie (livre, diplome ou article) je sais pas comment le faire
S'il vous plait aider moi je dois trouver une solution le plus tot possible
merci
Tu pourrais mettre la structure de ta/tes table(s)
Re: Faire une Recherche en PHP
Posté : 20 déc. 2010, 13:35
par Sabrina tech
ok mais pourrez vous me dire comment vous afficher la structure de ma table ???
Re: Faire une Recherche en PHP
Posté : 20 déc. 2010, 13:48
par dunbar
ok mais pourrez vous me dire comment vous afficher la structure de ma table ???
Ou simplement les champs de la tables alors !
Re: Faire une Recherche en PHP
Posté : 20 déc. 2010, 14:49
par moogli
utilise phpmyadmin pour faire un dump de la table, la commande describe si tu sais utiliser une console mysql.
@+
Re: Faire une Recherche en PHP
Posté : 20 déc. 2010, 15:12
par Sabrina tech
le logiciel que j'utilise pour créer mes bases est : phpMyAdmin
J'ai pas trouver la commande Describe
La base Biblio, contient 3 tables : Livres articles et Diplomes
Les champs de la base Livres sont : Titre, Auteur, Cote, Maison d edition, Date d edition, Lieu d edition, Page, Format, Inventaire, ISBN, Mots cles, resume, Image
Les champs de la base articles sont : Titre, Auteur, Laboratoire, Annee de parution, Langue,ISSN, Mots cles, resume, PDF
Les champs de la base Diplomes sont : Titre, Auteur, Genre, Cote, Inventaire, Mots cles, resume,
J'espère que c claire
Re: Faire une Recherche en PHP
Posté : 20 déc. 2010, 15:19
par Sabrina tech
Je vous decrit ce que je pense faire mais j'arrive pas à le faire :
Selon la catégorie : si catégorie = "livre" alors ma recherche se fais dans la table livres , si le titre ou l'auteur selectionné, ou les mots clés saisis existent dans la tables livres alors on affiche le résultats si non afficher un message d'erreur.
et de meme pour les autres tables Articles et Diplomes .
Pouvez vous m'aider à faire ce code ????
Re: Faire une Recherche en PHP
Posté : 20 déc. 2010, 15:22
par dunbar
Le code en exemple devrait fonctionner, mais a toi quand même d'écrire les noms des champs de TABLE de la même manière que ceux qui sont dans tes tables.
Re: Faire une Recherche en PHP
Posté : 20 déc. 2010, 15:33
par Sabrina tech
Ok je suis entrain de l'excuter mais j'ai pas compris que veux tu dire par : $action ???
$action = (iSset($_GET['action']) ? $_GET['action'] : NULL );
et aussi :
case 'search':
/*
[titre] =>
[categorie] => livre
[motscles] =>
[auteur] =>
[rechercher] => rechercher
*/
J'ai pas compris cette partie du code saisi
Re: Faire une Recherche en PHP
Posté : 20 déc. 2010, 15:43
par dunbar
Bon en gros Switch est une série d'instructions et chaque instruction est appeler via la variable $action.
Et le code entre */ /* est un commentaire que j'avais placé pour voir le nom des champs qui étais récupérable.
Re: Faire une Recherche en PHP
Posté : 20 déc. 2010, 15:48
par Sabrina tech
Bon ok j'ai fais l'insertion de ce code dans mon script mais j'ai rien recu comme résultat c à d quand je fais la recherche, rien ne s'affiche comme si il n'y a aucun enregistrement malgré que le titre que j'ai saisi existe déja dans la base