IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

Une variable en lieu et place de la valeur LIMIT


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 24
    Par défaut Une variable en lieu et place de la valeur LIMIT
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DECLARE session_count INTEGER DEFAULT 0; 
    DECLARE pourc INTEGER DEFAULT 0; 
     
    SELECT COUNT(id) INTO session_count FROM FC_poster F;
     
    SET pourc = (session_count * 20) / 100;
     
    UPDATE FC_poster F SET access=1 ORDER BY F.dater DESC LIMIT pourc;
    Mon soucie, c'est que j'ai ma variable 'pourc' qui me génère une erreur quand je l'utilise pour définir ma LIMIT.

    Alors que si je l'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE FC_poster F SET access=pourc ORDER BY F.dater DESC LIMIT 10;
    La variable est bien reconnu à cette place.

    Y a t'il des limitations dans l'utilisation d'une variable pour définir le LIMIT?

  2. #2
    Membre chevronné Avatar de Soutou
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 328
    Par défaut
    LIMIT n'accepte que des arguments qui doivent être des entiers constants.
    Donc pas de variable...

  3. #3
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 24
    Par défaut
    Pour info voilà la solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT COUNT(id) INTO session_count FROM FC_poster F;
     
    SET @pourc = (session_count * 30) / 100;
    PREPARE STMT FROM 'UPDATE FC_poster F SET access=1 ORDER BY F.dater DESC LIMIT ?';
    EXECUTE STMT USING @pourc;

  4. #4
    Membre chevronné Avatar de Soutou
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 328
    Par défaut
    Voilà, en dynamique c'est possible, en statique pas.
    Résolu !

Discussions similaires

  1. recharger une page en lieu et place d'un framset
    Par jeromeSERRE dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 31/12/2008, 10h44
  2. [1.x] Récupération dans une variable au lieu d'affichage
    Par Naeh dans le forum Symfony
    Réponses: 4
    Dernier message: 30/10/2007, 14h30
  3. [TinyXml] Charger une variable au lieu d'un fichier
    Par ktsys dans le forum Bibliothèques
    Réponses: 3
    Dernier message: 14/03/2007, 16h42
  4. Réponses: 2
    Dernier message: 13/02/2007, 17h40
  5. Utiliser une variable au lieu de perdre du temp?
    Par mejrs dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 22/10/2006, 11h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo