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 :

Calculs sur des tableaux [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 8
    Par défaut Calculs sur des tableaux
    bonjour a tous

    comme l'indique le titre de mon message, je suis débutant et je patauge un peu.
    j'ai effectuer quelques recherches sur le net et je ne trouve pas mon bonheur.

    je vous explique,

    ma table:



    -calcul 1

    Mean = x ¯ = (Egg+C1+C2+C3)/(n=Nombre Total de plots)

    Ex. pour la table présentée ci-dessus :

    Mean = ((2+0+0+2)+(2+2+0+0)+(2+0+0+0)+(0+1+1+1))/4

    -calcul 2

    En clair:
    Faire pour chaque ligne du tableau la somme de Egg+C1+C2+C3 = x
    Soustraire à x la moyenne x ¯ (calcul1) et multiplier le résultat par lui-même (au carré), appelons le résultat final y.
    On aura donc pour chaque ligne un y
    Additionner tous les y entre eux et diviser le résultat par (n-1) c-à-d le nombre total de plots moins 1 (il faut donc compter le nombre de lignes du tableau pour avoir n)
    On prend ensuite la racine carrée de cette division pour avoir l’ « erreur standard » s .

    voila ce que j ai fait php, mysql

    pour le calcul 1

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    /* Calcul  Mean*/
    $Requete = mysql_query("SELECT SUM(egg+C1+C2+C3)/COUNT(id) FROM ps_brno"); 
    $Result = mysql_result($Requete,0);
    echo $Result

    je sais pas si c'est réellement correct, mais sa me donne a priori le résultat voulu.

    pour le calcul 2

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    /* Calcul  Y*/
    $Requete = mysql_query("SELECT (egg+C1chick+C2chick+C3chick)-($Result) FROM ps_brno");
    $Result2 = mysql_result($Requete,0);
    $Requete = mysql_query("SELECT SUM($Result2)*($Result2)");
    $Result3 = mysql_result($Requete,0);
    echo $Result3

    c'est ce que j ai réussi a faire en me débrouillant, mais je bloque.

    comment appliquer le calcul2 a toutes les lignes, pour pouvoir Additionner tous les y entre eux et diviser le résultat par (n-1) c-à-d le nombre total de plots moins 1 (il faut donc compter le nombre de lignes du tableau pour avoir n)
    On prend ensuite la racine carrée de cette division.


    voila, je ne sais pas si j'ai été clair, si vous avez besoin d'autre infos, je suis a votre disposition.

    merci d'avance pour votre aide.

  2. #2
    Membre expérimenté
    Avatar de sweetasnz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2012
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Zélande

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 212
    Par défaut
    As tu des résultats à proposer à partir de ton code ?
    j'ai un peu du mal avec le x et y dans ton explication...

    bref, pour commencer, as tu vu qu'il existe une fonction "stdev" native sous mysql:

    (penser à vérifier si cette fonction est non-biaisée (division par N-1) ou pas (division par N) sur un petit jeu de données :

    voici un exemple:
    http://www.java2s.com/Tutorial/MySQL...tionofexpr.htm

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 8
    Par défaut details
    bonjour et merci de ton aide,

    je vais essayer de détailler les opérations.

    ma table:


    -calcul 1

    Mean = x ¯ = (Egg+C1+C2+C3)/(n=Nombre Total de plots)

    Ex. pour la table présentée ci-dessus :

    Mean = ((2+0+0+2)+(2+2+0+0)+(2+0+0+0)+(0+1+1+1))/4

    ici on additionne toutes les lignes de la table:

    1er ligne 2+0+0+2=4
    2e ligne 2+2+0+0=4
    3e ligne 2+0+0+0=2
    4e ligne 0+1+1+1=3

    on additionne tout les résultats et on divise par le nombres d entrées
    (ici 4 entrées, il aurait pu y en avoir plus.)

    ce qui nous donne 13/4=3.25
    donc x ¯ = 3.25

    suite du calcul:

    ensuite, a faire pour chaque ligne du tableau la somme de Egg+C1+C2+C3 = x

    exemple pour la ligne1 : 2+0+0+2=4 donc x=4
    pour la ligne2 : 2+0+0+2=4 donc x=4
    pour la ligne3 : 2+0+0+0=4 donc x=2
    pour la ligne4 : 0+1+1+1=3 donc x=3


    Soustraire à x la moyenne x ¯ : x ¯=3.25 (résultat du calcul1 ci-dessus),

    donc: pour ligne 1, 4-3.25= 0.75
    pour ligne 2, 4-3.25= 0.75
    pour ligne 3, 2-3.25= -1.25
    pour ligne 4, 3-3.25= -0.25

    et multiplier le résultat par lui-même (au carré), appelons le résultat final y


    Donc ligne 1 y= 0.75*0.75 = 0.5625
    Ligne 2 y= 0.5625
    Ligne 3 y= 1.5625
    Ligne 4 y= 0.0625

    Additionner tous les y entre eux

    donc: (0.5625) + (0.5625) + ( 1.5625) + (0.0625) = 2.75

    diviser le résultat par (n-1) c-à-d le nombre total de plots moins 1 (il faut donc compter le nombre de lignes du tableau pour avoir n)

    n=4 (nombre de lignes du tableau)

    donc: 4-1=3

    ce qui nous donne 2.75/3 = 0.961667

    On prend ensuite la racine carrée de cette division pour avoir l’ « erreur standard »

    Donc Erreur standard = 0.95743


    cordialement.

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 8
    Par défaut je coince
    en fait j en suis la avec mon rapport,



    mon probleme :

    Donc ligne 1 y= 0.75*0.75 = 0.5625

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    $Requete = mysql_query("SELECT SUM(egg+C1chick+C2chick+C3chick) FROM ps_brno"); 
    $Result = mysql_result($Requete,0); 
     
    $Requete = mysql_query("SELECT COUNT(id) FROM ps_brno"); 
    $Result2 = mysql_result($Requete,0); 
     
    $Requete = mysql_query("SELECT SUM($Result)/($Result2)");
    $Result3 = mysql_result($Requete,0); 
     
    $Requete = mysql_query("SELECT egg+C1chick+C2chick+C3chick FROM ps_brno"); 
    $Result4 = mysql_result($Requete,0);
     
    $Requete = mysql_query("SELECT SUM($Result4)-($Result3)");
    $Result5 = mysql_result($Requete,0);
     
    $Requete = mysql_query("SELECT SUM($Result5)*($Result5)");
    $Result6 = mysql_result($Requete,0);
     
    ?>
     
    <head>
    </head>
     
    <table>
    	<tr>
    	<td><img alt="" src="mean-calcul.png"/></td>
    	</tr>
    	<tr>
    		<td style="width: 441px">Calcul somme totale de egg+C1+C2+C3</td>
    		<td style="width: 160px"><?php echo $Result;?></td>
    	</tr>
    	<tr>
    		<td style="width: 441px">Calcul le nombre de plots entree</td>
    		<td style="width: 160px"><?php echo $Result2;?></td>
    	</tr>
    	<tr>
    		<td style="width: 441px">Mean = X</td>
    		<td style="width: 160px"><?php echo $Result3;?></td>
    	</tr>
    	<tr>
    	<td><img alt="" src="deviation-calcul.png"/></td>
    	</tr>
    	<tr>
    		<td style="width: 441px">Calcul somme de egg+C1+C2+C3 = 'x'</td>
    		<td style="width: 160px"><?php echo $Result4;?></td>
    	</tr>
    	<tr>
    		<td style="width: 441px">Calcul soustraire a 'x' la moyenne 'X' = F</td>
    		<td style="width: 160px"><?php echo $Result5;?></td>
    	</tr>
    	<tr>
    		<td style="width: 441px">multiplier F par lui meme = Y</td>
    		<td style="width: 160px"><?php echo $Result6;?></td>
    	</tr>
    </table>
    comment appliquer ce calcul a toutes les lignes pour trouver leur Y, afin de finaliser mon calcul.
    a ce moment, je n arrive qu'a calculer la ligne1.

    cordialement.

  5. #5
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Par défaut
    Salam ; voila coté mysql y'a des fonctions par exemple pour calculer la moyenne on utilise AVG...
    http://dev.mysql.com/doc/refman/5.0/...functions.html
    ensuite tu, peut utilisé les groupe by.....
    dans le cas des calcule compliqué , je crois qu'il faut passer par des tableaux pour stocker tes variables c'est une idée ensuite lancer les calcule avec des commande javascript.

  6. #6
    Membre expérimenté
    Avatar de sweetasnz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2012
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Zélande

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 212
    Par défaut
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    <html>
    <head>
    <title>TEST MYSQL</title>
    </head>
     
    <body>
    <form>
    <fieldset style="width: 500px">
    <legend>MEAN VALUE </legend>
     
    <?php
    $link = mysql_connect('localhost', 'root', ''); 
    if (!$link) {
    die('Connexion impossible : ' . mysql_error());
    }
    $db = mysql_select_db('mybase');
     
    /* requete BDD : tu calcules ce dont tu as besoin ...*/
    $col = "(col1+col2)/2 as MEAN";
    $tab = "tab1";
     
    $req = "SELECT " .$col. " FROM " .$tab;
     
    $result = mysql_query($req);
     
    /* affichage */
    while($row = mysql_fetch_array($result)){
    echo "MEAN = ".$row[MEAN]."<BR>";
    }
    mysql_close($link);
    ?>
    </fieldset>
    </form>
    </body>
    </html>
    résultat sur mon jeu de données :
    MEAN VALUE
    MEAN = 3.5000
    MEAN = 4.5000
    MEAN = 5.5000
    MEAN = 6.5000
    MEAN = 9.5000
    MEAN = 16.5000

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

Discussions similaires

  1. Calcul sur des tableaux
    Par whitearrow38 dans le forum VBScript
    Réponses: 0
    Dernier message: 07/07/2010, 18h23
  2. [Tableaux] calculs sur des vecteurs
    Par fAdoua123 dans le forum Langage
    Réponses: 5
    Dernier message: 12/02/2008, 13h13
  3. Réponses: 2
    Dernier message: 19/08/2003, 18h04
  4. free sur des tableaux "a moitié dynamiques"
    Par barthelv dans le forum C
    Réponses: 4
    Dernier message: 31/07/2003, 15h30
  5. Réponses: 4
    Dernier message: 15/12/2002, 04h19

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