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

Requêtes MySQL Discussion :

Calcul Vu/Jour en MySQL via Timestamp


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2003
    Messages : 37
    Par défaut Calcul Vu/Jour en MySQL via Timestamp
    Bonjour à tous, j'ai voulu améliorer mon système de classement des articles les plus lus en rajoutant l'essentiel "par jour" pour que le système ait un sens et là, patatra, ça ne fonctionne pas. Il m'ordonne encore mes résultats simplement par "Views".

    $listarticles2 = mysql_query("SELECT * FROM ".$extensionSQL."article ORDER BY (Views/DATEDIFF(NOW(),FROM_UNIXTIME(Timestamp))) DESC LIMIT 0,5")
    Dans le cas présent, Views est un champs qui s'incrémente à chaque fois que la page est consultée et Timestamp est un champs contenant le timestamp de création de l'article.
    J'ai été piocher dans quelques tutoriaux les fonctions DATEDIFF(),NOW() et FROM_UNIXTIME() que je n'avais jamais utilisé et le résultat est donc peu concluant.

    Après m'être tripoté pas mal la cervelle, je me suis résolu à demander l'aide de la communauté de developpez.net. Si quelqu'un a la gentillesse d'y jeter un oeil (voire deux) et de m'aider à comprendre ce qui ne va pas, je lui en serai reconnaissant

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 288
    Par défaut
    Timestamp est un mot réservé... si tu écrivais article.timestamp ?

    Si le problème n'est pas là, tu devrais regarder les éléments individuels de ton calcul pour comprendre le truc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT *, 
      (Views/DATEDIFF(NOW(),FROM_UNIXTIME(Timestamp))), 
      Views,
      article.timestamp,
      FROM_UNIXTIME(Timestamp),
      DATEDIFF(NOW(),FROM_UNIXTIME(Timestamp))
    FROM $extensionSQL.article 
    ORDER BY (Views/DATEDIFF(NOW(),FROM_UNIXTIME(Timestamp))) DESC 
    LIMIT 0,5

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2003
    Messages : 37
    Par défaut
    Aussi ridicule que ça puisse paraitre, mon code est bon mais je ne m'étais pas rendu compte que j'avais codé deux entrées pour les articles les plus lus à cause d'un hum... Problème de template. (oui, j'ai codé mon CMS moi-même et j'ai quand même fait des erreurs de compatibilité)

    Merci tout de même pour ta réponse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/08/2014, 13h12
  2. Réponses: 4
    Dernier message: 15/01/2008, 16h36
  3. Calcul des jours feriés
    Par obione dans le forum Langage
    Réponses: 5
    Dernier message: 07/11/2003, 12h36
  4. [JBuilder]connexion postgres ou mysql via DataExpress
    Par rebolon dans le forum JBuilder
    Réponses: 12
    Dernier message: 07/08/2003, 16h45
  5. [TP7] Calculer sin, cos, tan, sqrt via le FPU
    Par zdra dans le forum Assembleur
    Réponses: 8
    Dernier message: 25/11/2002, 04h09

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