Pourriez vous m'aider?
J'ai une fonction qui permet de matcher dans ma base une date en la décomposant, avec différents paramètres ex '1 à 4 mois' '2 semaines' les paramètres aussi.
J'ai une fonction pour matcher avec un nombre de paramètre qui varie, qui va chercher en base de données, mais cela ne fonctionne pas
Code : Tout sélectionner
public function getIdTermDateWp(array $terms) : int
{
try
{
$db = $this->db;
$params = array($this->taxonomies['category']);
// USE SLUG
$sql = "SELECT te.term_id FROM pu_wp_term_taxonomy as ta
INNER JOIN pu_wp_terms as te ON ta.term_taxonomy_id = te.term_id
WHERE ta.taxonomy = ? && te.slug LIKE '%";
foreach($terms as $term)
{
$sql .= '?%';
array_push($params, $term);
}
$sql .= "'"; // close like parameters
$stmt = $db->prepare($sql);
$stmt->execute(array_values($params));
$row = $stmt->fetch();
echo '<pre style="background-color:black;color:white;">';var_dump($sql, $params, $row);echo '</pre>';die;
return (!empty($row['term_id'])) ? $row['term_id'] : 0;
}
catch(PDOException $e)
{
echo 'getIdTerm term:' . $terms . ' error ' . $e->getMessage();
return 0;
}
}Code : Tout sélectionner
string(175) "string(175) "SELECT te.term_id FROM pu_wp_term_taxonomy as ta
INNER JOIN pu_wp_terms as te ON ta.term_taxonomy_id = te.term_id
WHERE ta.taxonomy = ? && te.slug LIKE '%?%?%?%'"
array(4) {
[0]=>
string(16) "listing_category"
[1]=>
string(1) "1"
[2]=>
string(1) "4"
[3]=>
string(4) "mois"
}
bool(false)Code : Tout sélectionner
SELECT te.term_id FROM pu_wp_term_taxonomy as ta INNER JOIN pu_wp_terms as te ON ta.term_taxonomy_id = te.term_id WHERE ta.taxonomy = 'listing_category' && te.slug LIKE '%1%4%mois%' Je pense que le problème vient des ?.
Auriez vous une piste?
Merci