Partage
  • Partager sur Facebook
  • Partager sur Twitter

compteur de vue (addition après un insert)

Sujet résolu
    24 juin 2021 à 13:44:42

    Bonjour je souhaite stocker en DB les vues réalisé tous les mois j'importe les vues realisé chaque jour.

    je souhaite rajouter après chaque insert dans la table additionner la valeur de vue du dernier insert + le insert avec les vues du jour mais je ne sais pas comment faire.

    j'ai commencé avec un trigger mais je ne sais pas si c'est la bonne solution

    drop trigger if exists compter_mounth;
    delimiter |
    CREATE TRIGGER compter_mounth AFTER INSERT ON number_views
    FOR EACH ROW
    BEGIN
        declare nbview int;
        select y_day_views into nbview from number_views order by id DESC limit 0,1;
    
        insert into number_views (mounth) values(nbview);
    
    END |
    delimiter ;



    -
    Edité par lcsaloon 24 juin 2021 à 13:45:44

    • Partager sur Facebook
    • Partager sur Twitter
      24 juin 2021 à 14:12:27

      Bonjour,

      Je ne comprends pas ton besoin ...

      En toute rigueur, on ne stocke pas en base le résultat d'un calcul, ici la somme du nombre de vues, puisque tu peux l'obtenir avec un SELECT SUM(...).

      Par ailleurs, qu'est sensé faire ton TRIGGER ? Dupliquer la dernière ligne insérée ?

      Peux-tu poster la structure exacte de la table number_views, avec un exemple de données de celle-ci ?

      Peux-tu poster un exemple du résultat attendu à partir de ces données d'exemple ?

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        24 juin 2021 à 16:09:06

        Bonjour merci pour ta réponse.

        Ma solution est pour l'instant très bancale. Je cherche à stocker un base de donnée le nombre de vues réalisé par jours, par mois et par années (afin de réaliser des statistiques sur celle-ci).

        Pour l'instant j'ai un compteur de vue qui stock dans un fichier txt le nombre de vue et l'envoie une fois une certaine heure dépassé en base de donné.

        Comme je n'envoie que le total de vue réalisé par jour je voulais un créer un trigger qui à chaque envoie ajoute le nombre de vue du jour à un nombre de vue du mois et idem pour année.

        Je ne pense pas que ma solution soit la meilleur, je suis donc ouvert à toutes solutions.

        • Partager sur Facebook
        • Partager sur Twitter
          24 juin 2021 à 16:25:24

          Alors si je devais critiquer ta solution je te dirais d'enregistrer directement en base les vues unitaires.

          A chaque fois qu'une page est vue sur ton site (ton application), tu insères un enregistrement unique dans une table sous la forme :

          vue ( id [pk], ip, date_heure, commentaire )

          • Un id en nombre entier positif auto incrémenté.
          • Une colonne date_heure en type DATETIME pour stocker la date et l'heure de la vue.
          • Une colonne ip si besoin pour stocker l'adresse IP de l'utilisateur.
          • Une colonne commentaire si besoin pour stocker des détails sur la vue.

          Ensuite, pour faire tes stats de vues :

          -- Vues par mois
          SELECT
              YEAR( date_heure ) AS annee,
              MONTH( date_heure ) AS mois,
              COUNT( * ) AS nb_vues
          FROM vue
          GROUP BY
              YEAR( date_heure ),
              MONTH( date_heure )
          ORDER BY annee, mois;
          
          -- Vues par année
          SELECT
              YEAR( date_heure ) AS annee
              COUNT( * ) AS nb_vues
          FROM vue
          GROUP BY YEAR( date_heure )
          ORDER BY annee;

          -
          Edité par Benzouye 24 juin 2021 à 16:26:09

          • Partager sur Facebook
          • Partager sur Twitter
          Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
            24 juin 2021 à 19:47:41

            merci beaucoup de ton aide je vais modifier tous ça.
            • Partager sur Facebook
            • Partager sur Twitter

            compteur de vue (addition après un insert)

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown