par
ynx » 25 sept. 2015, 11:09
Salut,
L'erreur vient de l'espace après SUM, il ne doit pas y en avoir.
Si tu veux chercher les clés adhérent dans un liste d'éléments, il faut utiliser l'opérateur IN à la place de = :
$requet = 'SELECT SUM(fcd) AS somme1 FROM bdd_cotisation WHERE cle_adherent IN ('.$chaine.') ';
Edit: puisque les éléments à comparer sont des chaines, il faut les entourer de quotes. Dans l'idéal il faut également utiliser la méthode mysqli::real_escape_string pour éviter les injections sql. Ce qui donne :
$options = array_map(array($mysqli, 'real_escape_string'), $_POST['options']); // sécurise les données post
$chaine= "'" . implode("','", $options) . "'"; // conversion du tableau en chaines entourées de quote
$requet = 'SELECT SUM (fcd) AS somme1 FROM bdd_cotisation WHERE cle_adherent = ('.$chaine.') ';
$result = $mysqli->query($requet) or die ('Erreur '.$requet.' '.$mysqli->error);
Bonne journée
Salut,
L'erreur vient de l'espace après SUM, il ne doit pas y en avoir.
Si tu veux chercher les clés adhérent dans un liste d'éléments, il faut utiliser l'opérateur IN à la place de = :
[php]$requet = 'SELECT SUM(fcd) AS somme1 FROM bdd_cotisation WHERE cle_adherent IN ('.$chaine.') ';[/php]
Edit: puisque les éléments à comparer sont des chaines, il faut les entourer de quotes. Dans l'idéal il faut également utiliser la méthode mysqli::real_escape_string pour éviter les injections sql. Ce qui donne :
[php]$options = array_map(array($mysqli, 'real_escape_string'), $_POST['options']); // sécurise les données post
$chaine= "'" . implode("','", $options) . "'"; // conversion du tableau en chaines entourées de quote
$requet = 'SELECT SUM (fcd) AS somme1 FROM bdd_cotisation WHERE cle_adherent = ('.$chaine.') ';
$result = $mysqli->query($requet) or die ('Erreur '.$requet.' '.$mysqli->error);[/php]
Bonne journée