C'est idiot ^^
Tu explose ta chaîne séparée par des virgules, pour la recréer... séparée par des virgules aussi !!!
$tre = $_POST['saisie'];
echo "$tre";
$sql = "SELECT clic FROM devis_table where id IN ($tre) ";
$result = mysql_query( $sql) or die( "Erreur : " . mysql_error() );
C'est pas plus simple comme ça ?
Enfin ça dépend du format d'entrée de ta chaîne, si tu as une virgule finale ou pas.
Par contre, tu t'exposes à un gros problème d'injection SQL (c'est une technique de piratage)
Imagine qu'un utilisateur malveillant mette "DELETE FROM DEVIS_TABLE" comme valeur dans le formulaire 'saisie'.
Dans les deux solutions apportées, ta requête devient :
"SELECT clic FROM devis_table where id IN (DELETE FROM DEVIS_TABLE) ".
Je te laisse imagine le résultat ! Tu perds toutes tes données.
Suivant comment ton formulaire est fait, ce genre d'attaque est plus ou moins compliquée, mais n'est pas impossible.
Il me paraît indispensable de commencer par faire une vérification de la chaîne $tre.
Par exemple, une simple expression rationnelle peut te la valider.
Ton code devient alors :
$tre = $_POST['saisie'];
echo "$tre";
if (!preg_match("/^(([0-9]*)\s*,\s*)*([0-9]*\s*)$/", $tre))
{
die("La chaîne donnée, « $tre », n'est pas valide !")
}
$sql = "SELECT clic FROM devis_table where id IN ($tre) ";
$result = mysql_query( $sql) or die( "Erreur : " . mysql_error() ); Le bloc que j'ai rajouté signifie que la chaîne d'entrée doit être écrite sous la forme :
« chiffres suivis d'une virgule » autant de fois que souhaité, se terminant par des chiffres sans virgule, en autorisant des espaces entre les chiffres et les virgules.