effectivement merci de la remarque j'avais tout confondu !
melangé le titre des colone avec le contenu
bref !
j'ai tout rearanger et pour le
$nbmax = count($_POST);
j'ai ameliorer le truc parce que en fesant un count il me compte même les valeur null
du coup ma boucle pour compter le nombre de champs remplis ressemble a ça
foreach($_POST as $element)
{
if($element!="")
{
$nbmax=$nbmax+1;
}
}
(mieux) et ma requette SQL ressemble a ça
SELECT * FROM vinyles WHERE artiste LIKE %:artiste% AND date LIKE %:date%
c'qui est beaucoup mieux
j'ai changé de technique pour créer l'array des valeur j'ai fait un truc du genre
$reqsql = 'SELECT * FROM vinyles WHERE ';
$table_valeur= ' ';
foreach($_POST AS $clef => $valeur)
{
if($valeur!="")
{
if($i<$nbmax)
{
echo $i.' '.$nbmax. ' <br/>';
echo ' clef'.$i. ' ' .$clef. ' <br/>';
echo ' valeur'.$i. ' ' .$valeur. ' <br/>';
$reqsql = $reqsql.' ' .$clef. ' LIKE %:' .$clef. '% AND ';
$table_valeur=$table_valeur. ' \''.$clef. '\' => \''.$valeur.'\' , ';
}
else
{
echo $i.' '.$nbmax. ' <br/>';
echo ' clef'.$i. ' ' .$clef. ' <br/>';
echo ' valeur'.$i. ' ' .$valeur. ' <br/>';
$reqsql= $reqsql. ' ' .$clef . ' LIKE %:' .$clef. '% ';
$table_valeur=$table_valeur. ' \''.$clef. '\' => \''.$valeur.'\' ';
}
$i=$i+1;
}
}
echo $table_valeur. '<br/>';
echo $reqsql. '<br/>';
$reponse = $bdd->prepare($reqsql);
$reponse->execute(array($table_valeur))or die(print_r($bdd->errorInfo()));
c'est déjà mieu le pb c'est que j'ai toujours la même erreur
alors que cette fois j'ai deux parrametre et j'ai bien defini ces 2 paramettre j'ai l'impression qu'il en veux trois ...
puisque en erreur j'ai
Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in C:\wamp\www\test\resultats.php on line 121
Array ( [0] => 00000 [1] => [2] => ) 1
là ligne 121 etant l'execute ...
merci en tout cas pour ces reponse
on avance !