Page 1 sur 1

requête substr et plusieurs champs

Posté : 15 mars 2017, 08:14
par petite fée
Bonjour à tous !

Je crée un petit moteur de recherche sur mon site, et je veux afficher les résultats sous forme d'extrait contenant le mot recherché.
j'y arrive comme ceci :

Code : Tout sélectionner

require_once('Connections/client.php'); $resultat1=$client->query("SELECT SUBSTR(nom_champ, INSTR(nom_champ, 'occurrence' ) -20, CHAR_LENGTH( 'occurrence' ) +30 ) AS resultat FROM table WHERE nom_champ LIKE '%occurrence%'"); // $news=$resultat1->fetch_assoc(); while($news=$resultat1->fetch_assoc()) { $tab = explode(" ", $news['resultat']); //on découpe le résultat et le stock dans un tableau $tab = array_splice($tab, 1); //on enlève le premier mot $tab = array_splice($tab, 0,sizeof($tab)-1); //on enlève le dernier mot $tab = str_replace ( 'occurrence' , '<b>occurrence</b>' , $tab ); // on met le mot en gras echo "...".implode(" ", $tab)."..."; //on retranscrit le tableau dans une chaine }
j'étais toute contente de moi, mais je viens de me rendre compte que je ne récupérais pas l'id de l'enregistrement... Du coup je ne peux pas mettre un lien pour afficher l'enregistrement complet.
Etant donné que le résultat est stocké dans "resultat", je n'en ai qu'un...
Est-ce que cette requête peut être modifiée pour récupérer le champ id, ou vaut-il mieux que je trouve une autre solution pour afficher les résultats sous forme d'extrait après ma requête ?

Merci de vos éclairages,

PF

Re: requête substr et plusieurs champs

Posté : 15 mars 2017, 10:10
par Spols
pas de soucis, modifier la requète est aisé.
$resultat1=$client->query("SELECT SUBSTR(nom_champ,
              INSTR(nom_champ, 'occurrence' ) -20,
              CHAR_LENGTH( 'occurrence' ) +30
              ) AS resultat, id
FROM table
WHERE nom_champ LIKE '%occurrence%'");
pour autant que ton champs se nomme bien id, tu récupèrera la valeur dans ta boucle avec $news['id']

Re: requête substr et plusieurs champs

Posté : 15 mars 2017, 11:40
par petite fée
Oh super !!!!

Merci beaucoup,

PF