Bonjour,
Je reviens vers PHP après une longue période (1+an) d'abstinence et je coince sur un problème surement très basique, mais je coince:
J'ai un tableau de ce type:
Et je veux implode la liste des 'champ' dans une requete SQL:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 $tableau array[5] [0] array[1] [champ] string "Ma_donnee_1" [1] array[1] [champ] string "Ma_donnee_2" [2] array[1] [champ] string "variable_1" [3] array[1] [champ] string "variable_2" [4] array[1] [champ] string "Ma_donnee_3"
Je pense que j'utilise bien le array_filter, puisque lorsque je debug, mon $var contient bien les array[1] contenant "champ", mais la requete finale donne ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $sql="SELECT * FROM table_champs WHERE champ IN(".implode(",",array_filter($tableau, function($var){ if(array_key_exists("champ", $var)) return $var['champ']; })).") ";
au lieu du contenu de "champ".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 (string) Select DISTINCT(table_gestion) from ref_donnees_variables where donnee IN(Array,Array,Array,Array,Array)
J'ai même tenté de return $var[0]['champ'], mais le IN est carrément vide avec ça.
Qu'est-ce qui peut être faux dans mon array_filter?
D'avance merci.
Vincent.
Partager