Bonjour,
Je dois construire une base de données d'interviews et son moteur de recherche.
j'ai une table "témoignages" (id / nom_fichier / retranscription [qui contient le texte de la vidéo]), une table "témoins" (id / civilite / nom / prenom / qualite), et une table d'association (temoignage_id / temoin_id) car la relation est de plusieurs à plusieurs.
J'effectue une recherche par mot-clé sur la retranscription avec LIKE (une recherche facile de type fulltext mais qui me suffit du moins pour le moment).
J'arrive très bien à effectuer cette recherche sur la seule table "temoignages" et à récupérer par exemple les id ou les noms de fichiers des interviews correspondantes, C'est le code ci-dessous.
Mais ce dont j'ai besoin, c'est de récupérer les coordonnées des témoins qu'on trouve dedans, pour en afficher la liste ("le mot-clé que vous recherchez a été prononcé par Mr Untel" et en faire un lien vers la vidéo par la suite). Je ne parviens pas à écrire la requête utilisant la table d'association (ou en tout cas à en parcourir le résultat pour l'afficher).
Pouvez-vous m'éclairer ? merci d'avance
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 <?php if(isset($_POST['motscles']) && $_POST['motscles'] != NULL) { $requete = htmlspecialchars($_POST['motscles']); try { $bdd = new PDO('mysql:host=localhost;dbname=interviews;charset=utf8', 'root', ''); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } $reponse = $bdd->query("SELECT id FROM temoignages WHERE retranscription LIKE '%$requete%' "); if ($reponse->rowCount() == 0) { echo 'Aucun résultat'; } else{ while ($donnees = $reponse->fetch()) { ?> <p> <?php echo $donnees['id']; ?> </p> <?php } } $reponse->closeCursor(); // Termine le traitement de la requête } else {echo ' Veuillez taper un mot-clé<br /> <a href="recherche.php">Retour au formulaire de recherche</a> ' ;} ?>
Partager