PBS REQUETE PREPARE PDO

WRInaute discret
Bonjour,

Je veux appeler la même requête deux fois, Au prémier lieu sans limit et après sans lIMIT, mais j'ai un erreur qui s'afficher.

Quelqu'un peut m'aider svp ? je suis débutant dans le PDO.


REQUETE :

$vetrin = $connexion->prepare("SELECT * FROM ACCESSOIRE where id=:ID AND name=:NAME GROUP BY LIMIT :LimitStart , :LimitEnd ");
$vetrin->bindValue(':ID', 12 );
$vetrin->bindValue(':NAME', 1 );
$vetrin->bindValue(':LimitStart', 0, PDO::pARAM_INT);
//$vetrin->bindValue(':LimitEnd', 0, PDO::pARAM_INT );
$vetrin->execute();



Bon , le prémiser appel de requête consiste à afficher le nombres total des offres trouvés.
$nb_offeres = $vetrin->rowCount();


Maintenant tjs dans la même page , je veux réexecuter la même réquete pour afficher les offres par 10, voila le code:
$vetrin->bindValue(':ID', 12 );
$vetrin->bindValue(':NAME', 1 );
$vetrin->bindValue(':LimitStart', 0, PDO::pARAM_INT);
//$vetrin->bindValue(':LimitEnd', 100, PDO::pARAM_INT );
$vetrin->execute();
while(.........)

{

ect.................
}

Le problème est tjs au niveau de premier exécution qui affiche 0 résultat.Comment sélectionner tout avec limit ?


Cdt.
 
WRInaute passionné
Le meilleur moyen, avec PHP est non seulement de consulter la doc (bon, ça ... c'est sur), mais de ne jamais oublier les commentaires en bas qui donnent des tas d'astuces.

D'ailleurs, la doc de PHP, je n'y vais que pour les commentaires des gens.
Il y a 100% de chances qu'un code source te convienne dans les commentaires.

Pour PDO, soit la homepage, http://php.net/manual/fr/book.pdo.php , soit une des fonctions.
 
WRInaute discret
DadouDuck a dit:
C'est assez simple, les bindparam ne peuvent contenir les infos du LIMIT

Bonjour,

Merci pour vos réponses.

Bon, je reformule mon pbs.

On suppose que je veux utiliser la même requête en l'appelant deux fois comme dans l'exemple ci dessous:

$reqs=$dbd->prepare("select * from article where :pRIX");


Prémier appel: Je veux afficher les offres dont le prix est <300

donc je dois écrire :

$reqs->execute(array(":pRIX"=>"prix<".300));

est ce que cette écriture est correcte ?

Deuxième appel: Afficher les offres dont le prix BETWEEN 300, 700

$reqs->execute(array(":pRIX"=>"prix BETWEEN 300 AND 700"));


Donc j'ai déclaré le requête un seul fois et j'ai fais l'appel deux fois.

Est ce que cette écriture est correcte sachant que si j'exécute se code je n'obtient aucun résultat et aucun erreur.


Cdt.
 
WRInaute impliqué
mikaweb2011 a dit:
On suppose que je veux utiliser la même requête en l'appelant deux fois comme dans l'exemple ci dessous:

$reqs=$dbd->prepare("select * from article where :pRIX");


Prémier appel: Je veux afficher les offres dont le prix est <300

donc je dois écrire :

$reqs->execute(array(":pRIX"=>"prix<".300));

est ce que cette écriture est correcte ?

Non tu dois écrire

Code:
$reqs=$dbd->prepare("select * from article where  prix < :PRIX");

et

Code:
$reqs->execute(array(":PRIX"=>300));


mikaweb2011 a dit:
Deuxième appel: Afficher les offres dont le prix BETWEEN 300, 700


$reqs->execute(array(":pRIX"=>"prix BETWEEN 300 AND 700"));

Et re-non

Code:
$reqs=$dbd->prepare("select * from article where  prix BETWEEN :DEBUT AND :FIN);

et

Code:
$reqs->execute(array(":DEBUT"=>300, ":FIN" => 700));


mikaweb2011 a dit:
Donc j'ai déclaré le requête un seul fois et j'ai fais l'appel deux fois.

Est ce que cette écriture est correcte sachant que si j'exécute se code je n'obtient aucun résultat et aucun erreur.

Non tes requêtes sont totalement différentes, les requêtes préparées ne servent pas du tout a ce que tu souhaites faire, les mots clés SQL NE PEUVENT PAS ETRE MIS EN BINDPARAM
 
Discussions similaires
Haut