Somme de chiffres sur 7 jours consécutifs

GrifOli Messages postés 2223 Statut Membre -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour à vous!

Je travaille sur un site internet en php et je possède une base de données MySQL. Voici la situation: j'ai une table de données qui se nomme manches_lanceurs avec 3 colonnes: id, date et manches. Je souhaiterais développer un code php qui me permet de vérifier si la somme de la colonne manche est plus grande ou égale à 6 lors de 7 jours consécutifs ou moins.

Voici un exemple:

Date Manches
2015-01-01 3
2015-01-05 2
2015-01-08 3
2015-01-09 4
2015-01-19 1

Dans cet exemple, si j'exécutais mon code php, on me retournerait un cas où cela est vrai, soit du 2015-01-05 au 2015-01-09 (sur 5 jours consécutifs, la somme des manches est égale à 9).

Est-ce quelque chose de bien compliquer à développer? Je ne sais juste pas comment trop m'y prendre pour faire la requête, ni pour faire exactement ce que je désire. Merci d'avance !

2 réponses

  1. luckydu43 Messages postés 4497 Date d'inscription   Statut Membre Dernière intervention   1 177
     
    Bonjour !

    La requête SQL pour compter les valeurs est :
    SELECT manches
    FROM manches_lanceurs
    WHERE date > 2015-01-01 (à vérifier pour le format).

    Dans ton code PHP, il te reste à faire une boucle type :
    /* Ligne où tu remplis le tableau manches via la BDD. Je ne connais pas l'équivalent Java/PHP */
    int[] manches = requete(....) 
    int compteur = 0;
    for (int i = 0 ; i < manches.length() ; i++ ) {
          compteur = compteur + manches[i];
    }
    boolean verifManches = false;
    if (compteur >= 6) {
        verifManches = true;
    }
    
    return verifManches;
    

    Je ne peux donner que l'équivalent Java ;-)

    Bonne continuation !
    Les 3 plus grands mensonges du dev : 1. La doc ? On la fera plus tard... 2. Le programme a été testé et ne comporte aucun bug... 3. Les spécifications techniques arrivent...
    0
  2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Bonjour,

    Pas sûr de bien avoir compris ce que tu voulais ... mais à tout hasard.. testes ceci :

    SI le but est de connaitre la "somme" des manches sur les 7 derniers jours.. tu peux utiliser :
    SELECT sum(coalesce(Manches,0)) as total
    FROM manches_lanceurs
    where Date<= NOW()
    and Date>= Date_add(Now(),interval - 7 day)
    group by Date
    ;
    
    


    Sinon la solution de Lucky semble correspondre à tes besoins.
    0