Rechercher nb d'occurences ds un champs SQL

Résolu/Fermé
djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 - 27 mars 2008 à 00:06
 hibout - 15 juil. 2011 à 09:29
Bonjour,

Je cherche actuellement à créer une fonction de recherche, qui irait chercher un mot dans un champs d'une table SQL.

J'ai vu qu'on pouvait effectuer une recherche du nombre de champs qui contient la requete, mais je n'arrive pas à trouver le nombre de mots occurrents dans un champs donné ... Faut il faire une requete récursive pour cela, ou existe t il bien une fonction php pour cela ?

	$nb_resultats = mysql_query("SELECT COUNT(*) FROM sites WHERE valid='0' AND description LIKE '%$search%' ORDER BY id DESC");
	
		if (mysql_result($nb_resultats,0)) {
		echo '<br><span class="texte">Il y\'a <strong>'.mysql_result($nb_resultats,0).'</strong> résultats qui correspondent à votre recherche';
		if (mysql_result($nb_resultats,0)>15)
		echo ' - Affichage des 15 premiers résultats uniquement :';
		echo '</span><br><br>';
		} else {
		echo '<br><br><br><br><br><p class="texte" align="center"><strong>Désolé mais il n\'y aucun résultat pour votre recherche.</strong></p>';
		}
		
	$action = mysql_query(" SELECT * FROM sites WHERE valid='0' AND description LIKE '%$search%' ORDER BY out_c DESC LIMIT 15 ");



J'aimerai classer donc les résultats par nombre de mots trouvés dans le champs description ; subroutine à faire ou pas ... ?
A voir également:

6 réponses

Pour ceux que ca pourraient intéresser :

mysql_query(" SELECT * , MATCH (description) AGAINST ('%$search%') FROM sites WHERE valid='0' AND MATCH (description) AGAINST ('%$search%') LIMIT 30");

MATCH et AGAINST permets de faire des recherches d'occurences d'une expression dans une ou plusieurs tables d'une base (en mode fulltext), en triant les réponses dans l'ordre chronologique.
2
Enax Messages postés 203 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 16 mars 2010 145
27 mars 2008 à 00:44
La fonction substr_count() permet de compter le nombre d'occurences d'une chaîne dans une chaîne.

Je ne crois pas qu'il soit possible de faire ça directement en SQL.
1
http://php.net/manual/fr/function.substr-count.php
le lien ver la fonction substr_count()
0
djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 94
29 mars 2008 à 01:05
Je relance ma demande ... Meme un peu à une heure tardive :)
1
djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 94
27 mars 2008 à 00:47
Oui mais le problème c'est que ca vas me donner des informations supplémentaires, mais ca ne permettra pas de faire le 'ORDER BY' en gros ... C'est ce que je recherche en fait :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 94
27 mars 2008 à 11:30
Un petit up au passage si quelqu'un à une idée ... ?
0
djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 94
1 oct. 2008 à 20:48
Comme je peux pas éditer, je corriges : chronologique par "nombre d'occurrences" décroissante. Désolé.
0