Bonjour,

J'ai actuellement une requête préparée de recherche par titre et je l'améliore pour qu'elle puisse prendre plusieurs mots à la fois. Au final PHP me génère une variable qui contient mon like en string genre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
AND a.titre LIKE '%mot1%mot2%motx%'
Ensuite j'envoie la variable en question à ma fonction SQL qui la prend en paramètre. Dans ma requête je bind ma variable là où est censé être le LIKE...

Code : 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
$stmt = mysqli_prepare($conn, "
 
SELECT a.id, a.titre, a.texte, r.ss_titre, r.lieu_id, d.date1, d.date2, a.rubrique
FROM ARTICLES a
LEFT JOIN RENSEIGNEMENTS r ON a.id = r.article_id
LEFT JOIN DATES d ON r.date_id = d.id
WHERE a.edition IN ('NANCY', 'NANCY-METZ', 'NANCY-METZ-STRASB', 'NANCY-METZ-STR-DIJON', 'TTES EDITIONS')
AND ( 
   d.date1 = ( SELECT MIN( d1.date1 ) 			
   FROM ARTICLES a1
   LEFT JOIN RENSEIGNEMENTS r1 ON a1.id = r1.article_id
   LEFT JOIN DATES d1 ON r1.date_id = d1.id
   WHERE a1.titre = a.titre )
  OR r.article_id IS NULL
   )
   ?
   GROUP BY a.titre
   ORDER BY COALESCE(d.date1, '2050-12-31')
");
 
mysqli_stmt_bind_param($stmt, "s", $like);
Le problème c'est que la requête foire, et j'ai du mal à trouver d'où ça vient sans afficher la requête envoyée. Donc ma question est : Est-ce que c'est possible ou "I'm doing it wrong" ?

Merci