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

PHP & Base de données Discussion :

ajouter du php dans un select [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Homme Profil pro
    sans emploi
    Inscrit en
    Février 2014
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2014
    Messages : 365
    Points : 131
    Points
    131
    Par défaut ajouter du php dans un select
    bonjour

    je veux faire la somme de toutes les valeurs numériques de ma table phpmyadmin
    c'est à dire la somme des colonnes ( an_1960+an_1960+an_1962+...+an_2014)
    avez vous une astuce pour rédiger cette requête?

    c'est pas bon ... mais un peu du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = 'SELECT' for ($i = 1960; $i <= 2014; $i++){echo ('SUM(an_' . $i;} 'AS total FROM table';
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
    include_once('./connexion.php');
     
    //Preparer la requete
     
    $sql = 'SELECT SUM(an_1960)+SUM(an_1961)+SUM(an_1962)+SUM(an_1963)+SUM(an_1964)+SUM(an_1965)+SUM(an_1966)+SUM(an_1967)+SUM(an_1968)+SUM(an_1969)+SUM(an_1970)+SUM(an_1971)+SUM(an_1972)+SUM(an_1973)+SUM(an_1974)+SUM(an_1975)+SUM(an_1976)+SUM(an_1977)+SUM(an_1978)+SUM(an_1979)+SUM(an_1980)+SUM(an_1981)+SUM(an_1982)+SUM(an_1983)+SUM(an_1984)+SUM(an_1985)+SUM(an_1986)+SUM(an_1987)+SUM(an_1988)+SUM(an_1989)+SUM(an_1990)+SUM(an_1991)+SUM(an_1992)+SUM(an_1993)+SUM(an_1994)+SUM(an_1995)+SUM(an_1996)+SUM(an_1997)+SUM(an_1998)+SUM(an_1999)+SUM(an_2000)+SUM(an_2001)+SUM(an_2002)+SUM(an_2003)+SUM(an_2004)+SUM(an_2005)+SUM(an_2006)+SUM(an_2007)+SUM(an_2008)+SUM(an_2009)+SUM(an_2010)+SUM(an_2011)+SUM(an_2012)+SUM(an_2013)+SUM(an_2014) AS total FROM 3_economy_growth';
    $requete1 = $connexion_bdd ->prepare($sql);
    //Compiler et executer la requete
    $requete1->execute();
    //Recuperer toutes les donnees retournees
    foreach($requete1->fetchAll() as $donnee)
    	{
    	echo $donnee['total'];
    	}
    //Clore la requete preparee
    $requete1 -> closeCursor();
    $requete1 = NULL;
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Comme tu t'en rends compte maintenant, avoir une colonne par année, n'est pas une structure viable.
    Il faut avoir une colonne année contenant l'année.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $SUM_ans = array();
    for ($i = 1960; $i <= 2014; $i++){
    	$SUM_ans[] = 'SUM(an_' . $i . ')';
    }
    $sql = "SELECT (" . implode( ' + ', $SUM_ans ) . ") AS total FROM table;";

    Cela dit, je suis d'accord avec sabotage.

  4. #4
    Membre habitué
    Homme Profil pro
    sans emploi
    Inscrit en
    Février 2014
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2014
    Messages : 365
    Points : 131
    Points
    131
    Par défaut
    Merci pour votre aide

    Pour mettre les années en ligne je m'y prend de la façon suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    structure de la table anne_en_colonne:
    id1, country_name, country_code, indicator_name, indicator_code, an_1960, an_1961, an_1962, ..., an_2014
    
    structure de la table annee_en_ligne:
    id2, country_name, country_code, indicator_name, indicator_code,  annee, valeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
    for ($i = 1960; $i <= 2014; $i++){
    include_once('./connexion.php');
    //Preparer la requete
    $sql =	"INSERT INTO annee_en_ligne (country_name, country_code, indicator_name, indicator_code, annee, valeur) 
    		SELECT country_name, country_code, indicator_name, indicator_code, ?, an_" . $i . " FROM anne_en_colonne";
    $requete2 = $connexion_bdd ->prepare($sql);
    //Associer des valeurs aux place holders
    $requete2->bindValue(1, $i, PDO::PARAM_STR);
    //Compiler et executer la requete
    $requete2->execute();
    //Recuperer toutes les donnees retournees
     
    //Clore la requete preparee
    $requete2 -> closeCursor();
    $requete2 = NULL;
    }
    ?>
    D'habitude j'exporte une table vers OpenOfficeCalc pour vérifier que les résultats sont cohérents
    Le souci c'est que j'ai tellement de lignes que l'exportation vers OpenOfficeCalc de la table est trop longue et l'ordinateur plante
    Aussi, pouvez vous me dire si cette écriture est correcte? Y a il une commande sql (ou une autre méthode) permettant de simplifier cette écriture?

    Cordialement

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

Discussions similaires

  1. [MySQL] est ce qu'on peut ajouter du php dans la balise <a>
    Par hichamdeb dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/04/2009, 09h09
  2. [DOM] Ajout d'option dans un select : sous IE6
    Par ShadowSama dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/03/2009, 22h00
  3. Accélérer l'exécution d'ajout d'éléments dans un select
    Par licorne dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/07/2007, 10h18
  4. comment ajouter un surlignage dans un select
    Par amatollah dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 05/10/2006, 08h51
  5. evenement à l'ajout de données dans un select
    Par mohican13 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/03/2006, 15h10

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