Bonjour,
Je suis en train de coder ma page de résultats pour mon petit moteur interne.
J'ai donc trois table pour gérer tout ça ( Merci à marcv pour ce schéma ):
Je vous met ma requête mysql avec jointures ( merci à Heyoan ):
voici la question que je me pose :
Par exemple si je tape "conte" dans le champ de recherche, il va bien me renvoyer dans la page resultat.php les articles avec leurs id repectives 1 et 2.
Si maitenant, je tape "conte j'aime", il ne va renvoyer dans la page resultat.php aucun résultat.
J'aimerais que la requête renvoie les articles associés au mot clé "conte", ceux associés au mot clé "j'aime", et éventuellement ceux associés au deux mots clés si ils existent.
J'espère que ma question est assez précise.
Merci d'avance à ceux qui pourront m'aider !
Modifié par frdiard (19 Apr 2009 - 16:15)
Je suis en train de coder ma page de résultats pour mon petit moteur interne.
J'ai donc trois table pour gérer tout ça ( Merci à marcv pour ce schéma ):
Article
+----+---------------------------------+----------------+
| id | titre | contenu |
+----+---------------------------------+----------------+
| 1 | Analyse du Petit Chaperon rouge | <ici le texte> |
| 2 | Mon avis sur Cendrillon | <ici le texte> |
| 3 | Une suite pour Millénium ? | <ici le texte> |
| 4 | abbr et acronym | <ici le texte> |
+----+---------------------------------+----------------+
Tag
+----+-------------+
| id | nom |
+----+-------------+
| 1 | conte |
| 2 | littérature |
| 3 | web |
| 4 | html |
| 5 | j'aime |
| 6 | j'aime pas |
+----+-------------+
Article_Tag
+------------+--------+
| id_article | id_tag |
+------------+--------+
| 1 | 1 |
| 1 | 2 |
| 1 | 5 |
| 2 | 1 |
| 2 | 2 |
| 2 | 6 |
| 3 | 2 |
| 3 | 5 |
| 4 | 3 |
| 4 | 4 |
| 4 | 5 |
+------------+--------+
Je vous met ma requête mysql avec jointures ( merci à Heyoan ):
$motcle = mysql_real_escape_string(htmlspecialchars($_POST['champ-texte']));
$sql = "SELECT distinct a.id, a.titre, a.contenu ,a.timestamp, t.nom
FROM article a, tag t, article_tag at
WHERE a.id = at.id_article and at.id_tag = t.id and t.nom like '%$motcle%'";
$reponse = mysql_query($sql);
while ( $donnees = mysql_fetch_array($reponse))
{
echo 'Titre : '.$donnees['titre'].'<br>
Contenu : '.$donnees['contenu'].'<br>
Date :' . date('d/m/Y à H\hi', $donnees['timestamp']) . '<br>
Mots clés associés : '.$donnees['nom'].'<br><br>';
}
}
voici la question que je me pose :
Par exemple si je tape "conte" dans le champ de recherche, il va bien me renvoyer dans la page resultat.php les articles avec leurs id repectives 1 et 2.
Si maitenant, je tape "conte j'aime", il ne va renvoyer dans la page resultat.php aucun résultat.
J'aimerais que la requête renvoie les articles associés au mot clé "conte", ceux associés au mot clé "j'aime", et éventuellement ceux associés au deux mots clés si ils existent.
J'espère que ma question est assez précise.
Merci d'avance à ceux qui pourront m'aider !
Modifié par frdiard (19 Apr 2009 - 16:15)