par
petite fée » 15 mars 2017, 08:14
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
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]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
}[/code]
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