Bonsoir tout le monde,
mon soucis est simple à expliquer, j'espère donc que la solution le sera aussi ...
J'ai une fonction stock_voitures , qui tel quelle ne fonctionne pas :
non fonctionelle
function stock_voitures($marque,$modele,$type,$debut,$nbMessages)
{
$param[":debut"]=$debut;
$param[":nbMessages"]=$nbMessages;
$sql='SELECT (marques.Nom) As "marque", (modeles.Nom) As "modele" ';
$sql.='FROM marques, modeles, stock ';
$sql.='WHERE marques.Id_Marque=modeles.Id_Marque AND stock.Id_Modele=modeles.Id_Modele ';
if ($marque!=-1)
{
$sql.='AND marques.Id_Marque= :marque ';
$param[":marque"]=$marque;
}
if ($modele!=-1)
{
$sql.='AND modeles.Id_Modele=:modele ';
$param[":modele"]=$modele;
}
if ($type!=-1)
{
$sql.='AND stock.Type=:type ';
$param[":type"]=$type;
}
$sql.='ORDER BY marque ASC ';
$sql.='LIMIT :debut ,:nbMessages';
$statement=$db->prepare($sql);
$statement->execute($param);
$result=$statement->fetchAll();
return $result;
}
Par contre si je fais ceci tout fonctionne :
Version fonctionnelle mais ne renvoie pas ce qui est désiré
function stock_voitures($marque,$modele,$type,$debut,$nbMessages)
{
$param[":debut"]=$debut;
$param[":nbMessages"]=$nbMessages;
$sql='SELECT (marques.Nom) As "marque", (modeles.Nom) As "modele" ';
$sql.='FROM marques, modeles, stock ';
$sql.='WHERE marques.Id_Marque=modeles.Id_Marque AND stock.Id_Modele=modeles.Id_Modele ';
if ($marque!=-1)
{
$sql.='AND marques.Id_Marque= :marque ';
$param[":marque"]=$marque;
}
if ($modele!=-1)
{
$sql.='AND modeles.Id_Modele=:modele ';
$param[":modele"]=$modele;
}
if ($type!=-1)
{
$sql.='AND stock.Type=:type ';
$param[":type"]=$type;
}
$sql.='ORDER BY marque ASC ';
//$sql.='LIMIT :debut ,:nbMessages'; -----------------------------MODIFICATION ICI
$statement=$db->prepare($sql);
$statement->execute($param);
$result=$statement->fetchAll();
return $result;
}
... au détail près que ça ne me renvoie pas ce que je veux ...
Ce que je voudrais c'est que ça ne me renvoie que les $nbMessagesréponses de ma requête.
Dans le premier cas, ma fonction ne me renvoie strictement rien ... Dans le deuxième cas elle me renvoie bien toute la table, j'en suppose donc que ma requête est valide ...
Mais alors où est le problème avec LIMIT ?
Par avence merci pour votre aide