Function tableau requete php
nathanael76
Messages postés
17
Date d'inscription
Statut
Membre
Dernière intervention
-
nathanael76 Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
nathanael76 Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'aimerais utiliser des fonctions pour optimiser un programme qui calcule les moyennes d'une "table liste".
Je vous remercie par avance, amicalement, Guy.
------------------------------------------------
"table alimliste" :
nom a b url
Abricot 20.000 30.000
banane 7.000 0.900 source1
banane 6.000 1.000 source5
pomme 3.000 9.000 source1
pomme 3.800 12.600
pomme 2.500 10.000 source3
--------------------------------------------------
"table alimmoy" (résultat)
nom a b
Abricot 20.000 30.000
banane 6.500 0.950
pomme 3.100 10.533
-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x
code source :
-----------------------------------------
calcul-moy (version 7)
<?php
$sql = mysql_connect('xxx', 'yyy', 'zzz');
$db = mysql_select_db('kkk', $sql);
$query = "SELECT * FROM alimliste ORDER BY 'nom'";
$query0='delete from alimmoy';
$requete0 = mysql_query($query0) or die( mysql_error() ) ;
//préparation des variables
//compteur darticle du meme nom
$compteur='1';
//nom precedant
$nomprec="0";
//$ta[] = tableau ou sont stoquees les valeurs de larticle en cours de lecture
//nom
$ta[0]=0;
//vitamine a
$ta[1]=0;
//vitamine b
$ta[2]=0;
//initialiser le tableau des cumuls "tc" des nutriments
//vitamine a
$tc[1]="0";
//vitamine b
$tc[2]="0";
//$mi[] = moyennes nutriments a inserer
//vitamine a
$mi[1]="0";
//vitamine b
$mi[2]="0";
// On exécute la requête
$resultat = mysql_query($query);
// Si la requête fonctionne
if ($resultat)
//debut des traitement lies a la requete qui fonctionne
{
while ($valeurs = mysql_fetch_assoc($resultat))
//debut de tant que de la requete qui fonctionne
{
$ta[0]=$valeurs['nom'];
$ta[1]=$valeurs['a'];
$ta[2]=$valeurs['b'];
//est ce que le nom en cours de lecture est-il = au nom precedant?
if ($ta[0]==$nomprec)
//oui donc le nom en cours de lecture = nom precedant
{
$compteur=$compteur+1;
$tc[1]=$tc[1]+$ta[1];
$tc[2]=$tc[2]+$ta[2];
}
//non donc le nom en cours de lecture <> nom precedant
else
{
$mi[1]=$tc[1]/$compteur;
$mi[2]=$tc[2]/$compteur;
$compteur=1;
//et avec le nom en cours de lecture <> nom precedant
//est ce qu en plus le nom en cours de lecture est il le premier de la table ?
if($nomprec=='0')
//oui le nom en cours de lecture <> nom precedant est aussi le premier de la table.
{
$tc[1]=$ta[1];
$tc[2]=$ta[2];
$nomprec=$ta[0];
}
//le nom en cours de lecture <> nom precedant mais n est pas le premier de la table
else
{
$a=$mi[1];
$b=$mi[2];
$query2= "INSERT INTO alimmoy (nom,a,b) VALUES ('$nomprec','$a','$b') " ;
$requete2 = mysql_query($query2) or die( mysql_error() ) ;
};
//une fois les traitements effectues on place le nom actuel dans nomprec
$nomprec=$ta[0];
//et on rempli le cumul des nutriments avec cette première valeur
$tc[1]=$ta[1];
$tc[2]=$ta[2];
//fin du test de comparaison entre le nom lu et le nom precedant.
};
//fin de tant que de la requete qui fonctionne
}
//$mi[1]=$tc[1]/$compteur;
//$a=$mi[1];
$a=$tc[1]/$compteur;
$b=$tc[2]/$compteur;
$query2= "INSERT INTO alimmoy (nom,a,b) VALUES ('$nomprec','$a','$b') " ;
$requete2 = mysql_query($query2) or die( mysql_error() ) ;
echo "<br><br>table des moyennes mise a jour ok";
//fin du traitement lie a la requete qui fonctionne
} else {echo 'Erreur : resultat';}
mysql_close();
?>
------------------------------------------------------------
J'aimerais utiliser des fonctions pour optimiser un programme qui calcule les moyennes d'une "table liste".
Je vous remercie par avance, amicalement, Guy.
------------------------------------------------
"table alimliste" :
nom a b url
Abricot 20.000 30.000
banane 7.000 0.900 source1
banane 6.000 1.000 source5
pomme 3.000 9.000 source1
pomme 3.800 12.600
pomme 2.500 10.000 source3
--------------------------------------------------
"table alimmoy" (résultat)
nom a b
Abricot 20.000 30.000
banane 6.500 0.950
pomme 3.100 10.533
-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x
code source :
-----------------------------------------
calcul-moy (version 7)
<?php
$sql = mysql_connect('xxx', 'yyy', 'zzz');
$db = mysql_select_db('kkk', $sql);
$query = "SELECT * FROM alimliste ORDER BY 'nom'";
$query0='delete from alimmoy';
$requete0 = mysql_query($query0) or die( mysql_error() ) ;
//préparation des variables
//compteur darticle du meme nom
$compteur='1';
//nom precedant
$nomprec="0";
//$ta[] = tableau ou sont stoquees les valeurs de larticle en cours de lecture
//nom
$ta[0]=0;
//vitamine a
$ta[1]=0;
//vitamine b
$ta[2]=0;
//initialiser le tableau des cumuls "tc" des nutriments
//vitamine a
$tc[1]="0";
//vitamine b
$tc[2]="0";
//$mi[] = moyennes nutriments a inserer
//vitamine a
$mi[1]="0";
//vitamine b
$mi[2]="0";
// On exécute la requête
$resultat = mysql_query($query);
// Si la requête fonctionne
if ($resultat)
//debut des traitement lies a la requete qui fonctionne
{
while ($valeurs = mysql_fetch_assoc($resultat))
//debut de tant que de la requete qui fonctionne
{
$ta[0]=$valeurs['nom'];
$ta[1]=$valeurs['a'];
$ta[2]=$valeurs['b'];
//est ce que le nom en cours de lecture est-il = au nom precedant?
if ($ta[0]==$nomprec)
//oui donc le nom en cours de lecture = nom precedant
{
$compteur=$compteur+1;
$tc[1]=$tc[1]+$ta[1];
$tc[2]=$tc[2]+$ta[2];
}
//non donc le nom en cours de lecture <> nom precedant
else
{
$mi[1]=$tc[1]/$compteur;
$mi[2]=$tc[2]/$compteur;
$compteur=1;
//et avec le nom en cours de lecture <> nom precedant
//est ce qu en plus le nom en cours de lecture est il le premier de la table ?
if($nomprec=='0')
//oui le nom en cours de lecture <> nom precedant est aussi le premier de la table.
{
$tc[1]=$ta[1];
$tc[2]=$ta[2];
$nomprec=$ta[0];
}
//le nom en cours de lecture <> nom precedant mais n est pas le premier de la table
else
{
$a=$mi[1];
$b=$mi[2];
$query2= "INSERT INTO alimmoy (nom,a,b) VALUES ('$nomprec','$a','$b') " ;
$requete2 = mysql_query($query2) or die( mysql_error() ) ;
};
//une fois les traitements effectues on place le nom actuel dans nomprec
$nomprec=$ta[0];
//et on rempli le cumul des nutriments avec cette première valeur
$tc[1]=$ta[1];
$tc[2]=$ta[2];
//fin du test de comparaison entre le nom lu et le nom precedant.
};
//fin de tant que de la requete qui fonctionne
}
//$mi[1]=$tc[1]/$compteur;
//$a=$mi[1];
$a=$tc[1]/$compteur;
$b=$tc[2]/$compteur;
$query2= "INSERT INTO alimmoy (nom,a,b) VALUES ('$nomprec','$a','$b') " ;
$requete2 = mysql_query($query2) or die( mysql_error() ) ;
echo "<br><br>table des moyennes mise a jour ok";
//fin du traitement lie a la requete qui fonctionne
} else {echo 'Erreur : resultat';}
mysql_close();
?>
------------------------------------------------------------
A voir également:
- Function tableau requete php
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Imprimer tableau excel sur une page - Guide
selon source 1 =
7 g de vitamine a
0.9g de vitamine b
selon source 5 =
6 g de vitamine a
1 g de vitamine b
on veut faire la moyenne par aliment et par nutriment :
la banane contien 6.5 g de a ,0.95 de b...
En te remerciant, amicalement, Guy.