8797 sujets

Développement web côté serveur, CMS

Bonjour à tous et à toutes,
J'aurais bien aimé savoir comment faire une requête permettant de dire :"Bonjour MySQl, je voudrais que tu me dises quelle champs de table contiennent ces expressions".

Concrètement, il s'agit d'une fonction rechercher qui pigera ses informations dans la DB. Je ne suis capable de faire que des SELECT WHERE info='$info'"; et donc, je bloque puisque l'utilisateur inscrira fort probablement que des informations partielles dans le champ rechercher.

Champ rechercher : Lalancette et fils bleuets
Inscription base de données : entreprise Lalancette et fils bleuets en vrac inc.

Une idée ?

Merci
yan
Modifié par akinayotaka (03 Jun 2008 - 14:00)
J'ai trouvé cela ici http://www.phpsources.org/scripts98-PHP.htm

Qu'en pensez-vous ? Est-ce que c'est une alternative valable de qualitée ?

<html>
<form method="POST" action=""> 
Rechercher un mot : <input type="text" name="recherche">
<input type="SUBMIT" value="Search!"> 
</form>
</html> <?php

// Récupère la variable
$recherche = isset($_POST['recherche']) ? $_POST['recherche'] : '';
// la requete mysql
$sql = mysql_query("SELECT colonne1, colonne2 FROM votretable WHERE colonne1 LIKE %$recherche% OR colonne2 LIKE %$recherche%") or die (mysql_error());

// affichage du résultat
while(list($colonne1, $colonne2)=mysql_fetch_array($sql)){
echo 'Resultat de la recherche: '.$colonne1.', '.$colonne2.' <br />';
}

?>


Merci !
Salut

tu peux rechercher du coté des requêtes avec REGEX et LIKE. Ce qui ferais par exemple SELECT text WHERE text LIKE '%$info%'

edit :

nos messages se sont un peu croisés...

Par rapport à la qualité, des tests que j'ai fais c'est plutôt performant en comparaison avec la simplicité de la solution, par contre c'est sur que tu n'as pas de tris pas pertinence par exemple. Mais je crois que ce genre de subtilités ne s'obtiennent que par des système d'indexation.
Modifié par matmat (03 Jun 2008 - 00:09)
Merci Matmat,

j'ai terminé mes tests ce matin et je crois que tout est en ordre... Il s'agit là d'une fonction très utile et je suis bien heureux de la compter parmis celle que je puis utiliser !

Bonne journée à tout le monde !

Voici le code final si ca peut aider quelqu'un :

<?php
include "include/connect.php";
// Le formulaire:
?> 
	<html>
		<form method="POST" action="moteurRecherches.php"> 
		Yo recherche: <input type="text" name="recherche">
			<input type="SUBMIT" value="Yo dude"> 
		</form>
	</html> 
<?php

// Récupère la variable
$recherche = isset($_POST['recherche']) ? $_POST['recherche'] : '';
// Éffectue une sélection auprès de la DB si la variable recherche est existante
if ($recherche !="") {
//echo $recherche;
$moteur = 
			   "SELECT * 
			   FROM bottinentreprise 
			   WHERE nom LIKE '%$recherche%'";
			   
			   $resultat = mysql_query($moteur);
			   $ligne = mysql_fetch_array($resultat);
			   $go = $ligne["nom"];
// ligne de commande résultante pouvant bien sûr être modifiée au besoin pour une autre action
			   echo $go;
}
?>


Yan
Modifié par akinayotaka (03 Jun 2008 - 14:14)