Recherche par plusieurs mots clé

Résolu
lonewolfs Messages postés 51 Date d'inscription samedi 2 juin 2007 Statut Membre Dernière intervention 17 octobre 2009 - 4 oct. 2008 à 14:47
lonewolfs Messages postés 51 Date d'inscription samedi 2 juin 2007 Statut Membre Dernière intervention 17 octobre 2009 - 4 oct. 2008 à 17:11
Bonjour a tous,


J'ai crée une base de donnée pour l'entretien des machines de mon parc.


et j'ai fait une page php pour effectuer mes recherches plus facilement.


Cette page permet de faire des recherches sur plusieurs plan et en
particulier sur des symptomes qui ont engagé une intervention.


Mon script fonctionne mais que sur un seul mot clé dans ma recherche
sur les symptomes et je souhaiterais pouvoir affiner mes recherches en
permettant plusieurs mots clés dans la case symptomes mais j'avoue que
la ca dépasse mes capacités en php.


Je viens donc vers vous, vous demander de l'aide.


Voci mon code :
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>

<!-- Mise en place du formulaire de recherche -->

<form method="post">

Rechercher par :

Machine : -

Utilisateur : -

Lieu : -

Symptômes :

</form>

<center>Date,

Lieu,

Machine,

Utilisateur,

Symptômes,

Intervention,

<?php

//récupération des variables

$Machine=$_POST['Machine'];

$Utilisateur=$_POST['Utilisateur'];

$Lieu=$_POST['Lieu'];

$Symptomes=$_POST['Symptomes'];

//Requêtes

mysql_connect(\"localhost\", \"root\", \"\") or die (\"Pas de connexion à la base de données\"); // Connexion à MySQL

mysql_select_db(\"Entretien\") or die (\"Pas de connexion à la base\"); // Sélection de la base coursphp

// Si seul Machine est rempli

if ((!empty($Machine)) and (empty($Utilisateur)) and (empty($Lieu)) and (empty($Symptomes)))

{

$reponse = mysql_query(\"SELECT * FROM intervention WHERE `Machine`='$Machine'\"); // Requête SQL

}

//Si seul Utilisateur est rempli

if ((empty($Machine)) and (!empty($Utilisateur)) and (empty($Lieu)) and (empty($Symptomes)))

{

$reponse = mysql_query(\"SELECT * FROM intervention WHERE `Utilisateur`='$Utilisateur'\"); // Requête SQL

}

//Si seul Lieu est rempli

if ((empty($Machine)) and (empty($Utilisateur)) and (!empty($Lieu)) and (empty($Symptomes)))

{

$reponse = mysql_query(\"SELECT * FROM intervention WHERE `Lieu`='$Lieu'\"); // Requête SQL

}

//Si seul Symptome est rempli ***************************************************************************************

if ((empty($Machine)) and (empty($Utilisateur)) and (empty($Lieu)) and (!empty($Symptomes)))

{

$reponse = mysql_query(\"SELECT * FROM intervention WHERE `Symptomes` LIKE '%$Symptomes%'\"); // Requête SQL

}

//****************************************************************************************************************

//Si Machine et Utilisateur sont rempli

if ((!empty($Machine)) and (!empty($Utilisateur)) and (empty($Lieu)) and (empty($Symptomes)))

{

$reponse = mysql_query(\"SELECT * FROM intervention WHERE `Machine`='$Machine' and `Utilisateur`='$Utilisateur'\"); // Requête SQL

}

//Si Machine, Utilisateur e t Lieu sont rempli

if ((!empty($Machine)) and (!empty($Utilisateur)) and (!empty($Lieu)) and (empty($Symptomes)))

{

$reponse = mysql_query(\"SELECT * FROM intervention WHERE `Machine`='$Machine' and `Utilisateur`='$Utilisateur' and `Lieu`='$Lieu'\"); // Requête SQL

}

// Si tous les champs sont remplis

if ((!empty($Machine)) and (!empty($Utilisateur)) and (!empty($Lieu)) and (!empty($Symptomes)))

{

$reponse = mysql_query(\"SELECT * FROM intervention WHERE `Machine`='$Machine' and `Utilisateur`='$Utilisateur' and `Lieu`='$Lieu' and `Symptomes` LIKE '%$Symptomes%'\"); // Requête SQL

}

//*******************************************************************************************

//Si Utilisateur et Lieu sont rempli

if ((empty($Machine)) and (!empty($Utilisateur)) and (!empty($Lieu)) and (empty($Symptomes)))

{

$reponse = mysql_query(\"SELECT * FROM intervention WHERE `Utilisateur`='$Utilisateur' and `Lieu`='$Lieu'\"); // Requête SQL

}

//Si utilisateur et Symptomes sont rempli

if ((empty($Machine)) and (!empty($Utilisateur)) and (empty($Lieu)) and (!empty($Symptomes)))

{

$reponse = mysql_query(\"SELECT * FROM intervention WHERE `Utilisateur`='$Utilisateur'and `Symptomes` LIKE '%$Symptomes%'\"); // Requête SQL

}

//Si Lieu et Symptomes sont rempli

if ((empty($Machine)) and (empty($Utilisateur)) and (!empty($Lieu)) and (!empty($Symptomes)))

{

$reponse = mysql_query(\"SELECT * FROM intervention WHERE `Lieu`='$lieu' and `Symptomes` LIKE '%$Symptomes%'\"); // Requête SQL

}

//Si Machine et lieu sont rempli

if ((!empty($Machine )) and (empty($Utilisateur)) and (!empty($Lieu)) and (empty($Symptomes)))

{

$reponse = mysql_query(\"SELECT * FROM intervention WHERE `Machine`='$Machine' and `Lieu`='$Lieu'\"); // Requête SQL

}

//Si Machine et Symptomes sont rempli

if ((!empty($Machine)) and (empty($Utilisateur)) and (empty($Lieu)) and (!empty($Symptomes)))

{

$reponse = mysql_query(\"SELECT * FROM intervention WHERE `Machine`='$Machine' and `Symptomes` LIKE '%$Symptomes%'\"); // Requête SQL

}

// On fait une boucle pour lister tout ce que contient la table :

while ($donnees = mysql_fetch_array($reponse) )

{

?>

----

<center><?php echo $donnees['Date']; ?></center>,

<center><?php echo $donnees['Lieu']; ?></center>,

<center><?php echo $donnees['Machine']; ?></center>,

<center><?php echo $donnees['Utilisateur']; ?></center>,

<center><?php echo $donnees['Symptomes']; ?></center>,

<center><?php echo $donnees['Intervention']; ?></center>,

<?php

}

mysql_close(); // Déconnexion de MySQL

?>
</center>


Si vous pouvez me donner une piste, un lien, une aide, je suis preneur de tout ce qui peut me faire avancer.


Merci par avance


Lonewolf

1 réponse

lonewolfs Messages postés 51 Date d'inscription samedi 2 juin 2007 Statut Membre Dernière intervention 17 octobre 2009
4 oct. 2008 à 17:11
C'est bon j'ai trouvé.

La solution :

$Symptomes = str_replace(" ", "%' AND Symptomes LIKE '%", $Symptomes);

Merci a tous

Amicalement

Lonewolf
3
Rejoignez-nous