LIMIT AVEC PARAMETRES
Fermé
zakri-04
Messages postés
23
Date d'inscription
dimanche 15 novembre 2020
Statut
Membre
Dernière intervention
9 août 2023
-
1 juin 2021 à 15:59
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 16 juin 2021 à 17:38
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 16 juin 2021 à 17:38
A voir également:
- LIMIT AVEC PARAMETRES
- Ouvrir paramètres - Guide
- Le bon coin mon compte parametres - Guide
- Les paramètres d’autorisation propres à l’application n’accordent pas l’autorisation local activation pour l’application serveur com avec le clsid ✓ - Forum Windows 10
- Paramètres dns - Guide
- Paramètres de confidentialité - Guide
2 réponses
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
Modifié le 1 juin 2021 à 16:11
Modifié le 1 juin 2021 à 16:11
Bonjour,
Pour les "limit" et "offset" tu ne peux pas les passer directement dans le execute.
Il faut utiliser du BIND
et si tu veux les passer dans ta requête sans "sécurité", tu aurais pu faire :
Mais je serai toi, je resterai sur la première proposition.
NB:
Si tu n'obtiens pas de résultats, fais un echo de la variable $sql ainsi que des variables $limitinfer et $limitsuper ... et teste la requête DIRECTEMENT en bdd ( via phpmyadmin par exemple ) pour voir ce qu'elle te retourne.
Pour les "limit" et "offset" tu ne peux pas les passer directement dans le execute.
Il faut utiliser du BIND
$sql = "SELECT id,titre,contenu,DATE(date_creation) AS dat,TIME(date_creation) AS tim FROM billets ORDER BY date_creation LIMIT :limit , :offset "; $stmt = $bdd->prepare($sql); $stmt->bindValue('limit', $limitinfer, PDO::PARAM_INT); $stmt->bindValue('offset', $limitsuper, PDO::PARAM_INT); $stmt->execute();
et si tu veux les passer dans ta requête sans "sécurité", tu aurais pu faire :
$sql = "SELECT id,titre,contenu,DATE(date_creation) AS dat,TIME(date_creation) AS tim FROM billets ORDER BY date_creation LIMIT $limitinfer , $limitsuper "; $stmt = $bdd->prepare($sql); $stmt->execute();
Mais je serai toi, je resterai sur la première proposition.
NB:
Si tu n'obtiens pas de résultats, fais un echo de la variable $sql ainsi que des variables $limitinfer et $limitsuper ... et teste la requête DIRECTEMENT en bdd ( via phpmyadmin par exemple ) pour voir ce qu'elle te retourne.
zakri-04
Messages postés
23
Date d'inscription
dimanche 15 novembre 2020
Statut
Membre
Dernière intervention
9 août 2023
2
16 juin 2021 à 16:52
16 juin 2021 à 16:52
ça marche pas, je sais pas pourquoi?
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
16 juin 2021 à 17:38
16 juin 2021 à 17:38
ça ne marche pas... c 'est à dire ...???
Quel code as tu utilisé ?
As tu des messages d'erreur ?
As tu activé l'affichage des erreurs PDO ? ( voir ici : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs)
As tu fais un ECHO de ta variable $sql pour voir ce qu'elle contient ?
Idem pour tes variables php : $limitinfer et $limitsuper ?
Quel code as tu utilisé ?
As tu des messages d'erreur ?
As tu activé l'affichage des erreurs PDO ? ( voir ici : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs)
As tu fais un ECHO de ta variable $sql pour voir ce qu'elle contient ?
Idem pour tes variables php : $limitinfer et $limitsuper ?