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 :
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 AND a.titre LIKE '%mot1%mot2%motx%'
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" ?
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);
Merci
Partager