@ Mazarin
En faite en js j'envoie un tableau, qui se lit simplement comme un implode, d'ou mon châtiment, il a fallu directement faire un foreach et ça fonctionne
[javascript]var valeurs = [];
$checkbox.find('input:checked[name=dietary_types]').each(function() {
valeurs.push($(this).val());
});
$.ajax({
url: 'controleur.php',
type: 'POST',
data: { checkb:valeurs, productQuery:$productQuery, searchCity:$searchCity },
success: function(h) {
if (valeurs=='') {
$('#results').html('no result !');
}else{
$('#results').html(h);
$('#map_loading').hide();
}
},
error: function(XMLHttpRequest,textStatus, errorThrown){
alert(XMLHttpRequest, textStatus,errorThrown);
},[/javascript]
"Par contre tu peux simplifier ton code pour constituer $sqll :"
Oui et non, ma requête, dois commencer par un AND et ensuite par un OR.
Enfin je travaille dessus, parce que ce n'est pas encore ça, mais si tu as une idée pour la concision ou ma requête je suis preneur.
Pour le contexte de la requête, j'ai 9 checkbox, et je récupère à chaque changement la liste des checkbox coché, avec $().change(function()...
$varCheck=$_POST['checkb'];
//$varCheck=explode("'",$_POST['checkb']);
if (!empty($varCheck)) {
foreach ($varCheck as $key => $value) {
if($value=='Diabetique' AND $key==0)
$Diabetique= " AND repasPropose.dietaryOptions = 'Diabetique'";
else if($value=='Diabetique')
$Diabetique= " OR repasPropose.dietaryOptions = 'Diabetique'";
if($value=='Vegetarian' AND $key==0)
$Vegetarian= " AND repasPropose.dietaryOptions = 'Vegetarian'";
else if($value=='Vegetarian')
$Vegetarian= " OR repasPropose.dietaryOptions = 'Vegetarian'";
if($value=='Vegan' AND $key==0)
$Vegan= " AND repasPropose.dietaryOptions = 'Vegan'";
else if($value=='Vegan')
$Vegan= " OR repasPropose.dietaryOptions = 'Vegan'";
if($value=='No sugar' AND $key==0)
$NoSugar= " AND repasPropose.dietaryOptions = 'No sugar'";
else if($value=='No sugar')
$NoSugar= " OR repasPropose.dietaryOptions = 'No sugar'";
if($value=='100% organic' AND $key==0)
$Organic= " AND repasPropose.dietaryOptions = '100% organic'";
else if($value=='100% organic')
$Organic= " OR repasPropose.dietaryOptions = '100% organic'";
if($value=='No nuts' AND $key==0)
$NoNuts= " AND repasPropose.dietaryOptions = 'No nuts'";
else if($value=='No nuts')
$NoNuts= " OR repasPropose.dietaryOptions = 'No nuts'";
if($value=='Low fat' AND $key==0)
$LowFat= " AND repasPropose.dietaryOptions = 'Low fat'";
else if($value=='Low fat')
$LowFat= " OR repasPropose.dietaryOptions = 'Low fat'";
if($value=='Gluten free' AND $key==0)
$GlutenFree= " AND repasPropose.dietaryOptions = 'Gluten free'";
else if($value=='Gluten free')
$GlutenFree= " OR repasPropose.dietaryOptions = 'Gluten free'";
if($value=='No milk' AND $key==0)
$NoMilk= " AND repasPropose.dietaryOptions = 'No milk'";
else if($value=='No milk')
$NoMilk= " OR repasPropose.dietaryOptions = 'No milk'";
}
//echo $key;
}
$sql1=' ';
$Diab=(isset($Diabetique))?$sql1.=$Diabetique:'';
$Vege=(isset($Vegetarian))?$sql1.=$Vegetarian:'';
$Vega=(isset($Vegan))?$sql1.=$Vegan:'';
$NoSu=(isset($NoSugar))?$sql1.=$NoSugar:'';
$Orga=(isset($Organic))?$sql1.=$Organic:'';
$NoNu=(isset($NoNuts))?$sql1.=$NoNuts:'';
$LowF=(isset($LowFat))?$sql1.=$LowFat:'';
$Glut=(isset($GlutenFree))?$sql1.=$GlutenFree:'';
$NoMi=(isset($NoMilk))?$sql1.=$NoMilk:'';
$sql="SELECT *,repasPropose.id AS idRepas,repasPropose.description AS descriptionRepas
FROM repasPropose
JOIN compteUtilisateur ON repasPropose.idCompteUtilisateur=compteUtilisateur.id
WHERE compteUtilisateur.ville = '".$villeQuery."'
AND repasPropose.productType = ". $idProductQuery;
$sql=$sql.$sql1;
$result= $connection->select($sql);
$i=0;
foreach ($result as $key => $v)
{
$i++;
.....