Rechercher nb d'occurences ds un champs SQL
Résolu
djflexlive
Messages postés
557
Date d'inscription
Statut
Membre
Dernière intervention
-
hibout -
hibout -
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 ?
J'aimerai classer donc les résultats par nombre de mots trouvés dans le champs description ; subroutine à faire ou pas ... ?
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:
- Rechercher nb d'occurences ds un champs SQL
- Rechercher ou entrer l'adresse - Guide
- Nb si en anglais - Guide
- Rechercher image - Guide
- Rechercher remplacer word - Guide
- Adresse IP locale : comment la trouver facilement - Guide
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.
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.
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.
Je ne crois pas qu'il soit possible de faire ça directement en SQL.
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 :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question