Recherche moyenne
Mystic1812
Messages postés
10
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Les requetes SQL dans mon script sont justes mais ca ne m'affiche rien comme résultat meme pas ou se situe le probleme. :(
<?
$host = 'localhost';
$user = 'root';
$bdd = 'stage';
$passwd = '';
mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur");
mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");
$req1="SELECT max(weborange) ,max (iphone), max(keypro) , max(keygp) , max(flyboxgp) ,
max(mms), max (blackberry) FROM kpi_ggsn";
$res1 = mysql_query($req1);
while($row = mysql_fetch_row($res1)){
$Weborange = $row[0];
$Iphone= $raw[1];
$Keypro = $row[2];
$Keygp= $row [3]
$Flybox=$row [4];
$MMS= $row [5];
$Blackberry = $row [6];
}
$req2="SELECT weborange ,iphone, keypro, keygp, flyboxgp ,mms, blackberry FROM kpi_max" ;
$res2 = mysql_query($req2);
while($row1 = mysql_fetch_row($res1)){
$MaxWeborange = $row1[0];
$MaxIphone= $raw1[1];
$MaxKeypro = $row2[2];
$MaxKeygp= $row3 [3]
$MaxFlybox=$row4 [4];
$MaxMMS= $row5 [5];
$MaxBlackberry = $row6 [6];
}
$resultat1=$Weborange/$MaxWeborange;
$resultat2=$Iphone/$MaxIphone;
$resultat3=$Keypro/$MaxKeypro;
$resultat4=$Keygp/$MaxKeygp;
$resultat5=$Flybox/$MaxFlybox;
$resultat6=$MMS/$MaxMMS;
$resultat7=$Blackberry/$MaxBlackberry;
echo $resultat1;
echo $resultat2;
echo $resultat3;
echo $resultat4;
echo $resultat5;
echo $resultat6;
echo $resultat7;
mysql_close();
?>
Les requetes SQL dans mon script sont justes mais ca ne m'affiche rien comme résultat meme pas ou se situe le probleme. :(
<?
$host = 'localhost';
$user = 'root';
$bdd = 'stage';
$passwd = '';
mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur");
mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");
$req1="SELECT max(weborange) ,max (iphone), max(keypro) , max(keygp) , max(flyboxgp) ,
max(mms), max (blackberry) FROM kpi_ggsn";
$res1 = mysql_query($req1);
while($row = mysql_fetch_row($res1)){
$Weborange = $row[0];
$Iphone= $raw[1];
$Keypro = $row[2];
$Keygp= $row [3]
$Flybox=$row [4];
$MMS= $row [5];
$Blackberry = $row [6];
}
$req2="SELECT weborange ,iphone, keypro, keygp, flyboxgp ,mms, blackberry FROM kpi_max" ;
$res2 = mysql_query($req2);
while($row1 = mysql_fetch_row($res1)){
$MaxWeborange = $row1[0];
$MaxIphone= $raw1[1];
$MaxKeypro = $row2[2];
$MaxKeygp= $row3 [3]
$MaxFlybox=$row4 [4];
$MaxMMS= $row5 [5];
$MaxBlackberry = $row6 [6];
}
$resultat1=$Weborange/$MaxWeborange;
$resultat2=$Iphone/$MaxIphone;
$resultat3=$Keypro/$MaxKeypro;
$resultat4=$Keygp/$MaxKeygp;
$resultat5=$Flybox/$MaxFlybox;
$resultat6=$MMS/$MaxMMS;
$resultat7=$Blackberry/$MaxBlackberry;
echo $resultat1;
echo $resultat2;
echo $resultat3;
echo $resultat4;
echo $resultat5;
echo $resultat6;
echo $resultat7;
mysql_close();
?>
A voir également:
- Recherche moyenne
- Excel moyenne - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
- Recherche photo - Guide
- Je recherche une chanson - Guide
3 réponses
salut,
ici : https://www.php.net/manual/fr/function.doubleval.php
tu verra :
faire des opération mathématiques sur des chaines de caractère est à éviter, autant travailler avec des doubles (vu que tu fais des divisions ... )
(avec du int tu aura des arrondis)
naga
ici : https://www.php.net/manual/fr/function.doubleval.php
tu verra :
<?php $mynumstr = "100,000,000.75"; $mynum = doubleval(str_replace(",","",$mynumstr)); echo "Normal Value:".number_format($mynumstr); ?>
faire des opération mathématiques sur des chaines de caractère est à éviter, autant travailler avec des doubles (vu que tu fais des divisions ... )
(avec du int tu aura des arrondis)
naga
BOnjouuur,
Merci mais j'ai pas bien saisi ce que je dois faire :D
Merci mais j'ai pas bien saisi ce que je dois faire :D
bah en gros :
ne devrait rien donner
mais :
devrait afficher 1
et si tu fais :
tu auras ici 1 aussi
dans ton cas tu récupère des valeurs de requetes, soit des chaines de caractères. Il faut les convertir en entier pour faire des calculs. De plus tu risque fortement de te retrouver avec des valeurs à virgules vu que tu effectue des divisions (dans mon cas j'ai fais exprès d'utiliser le fonction pour convertir en entier, je vais pas tout mâcher ^^).
DONC : convertir tes varibles de types chaines (récupérées grâce à ta requête) vers un type entier ou double (double sera mieux je pense), et afficher le résultat de la division.
Note : effectuer une opération sur des entiers génèrera un résultat entier (sauf si tu cast comme il faut) ensuite, le père à fait de bonnes remarques, surtout la 3&4 qui pose de gros problème (concrètement faire un while sur un résultat unique fonctionnera mais c'est inutile)
$a = "100"; $b = "10"; echo $a / $b;
ne devrait rien donner
mais :
$a = 100; $b = 10; echo $a / $b;
devrait afficher 1
et si tu fais :
$a = "100"; $b = "10"; echo intval($a) / intval($b);
tu auras ici 1 aussi
dans ton cas tu récupère des valeurs de requetes, soit des chaines de caractères. Il faut les convertir en entier pour faire des calculs. De plus tu risque fortement de te retrouver avec des valeurs à virgules vu que tu effectue des divisions (dans mon cas j'ai fais exprès d'utiliser le fonction pour convertir en entier, je vais pas tout mâcher ^^).
DONC : convertir tes varibles de types chaines (récupérées grâce à ta requête) vers un type entier ou double (double sera mieux je pense), et afficher le résultat de la division.
Note : effectuer une opération sur des entiers génèrera un résultat entier (sauf si tu cast comme il faut) ensuite, le père à fait de bonnes remarques, surtout la 3&4 qui pose de gros problème (concrètement faire un while sur un résultat unique fonctionnera mais c'est inutile)
$a = "100";
$b = "10";
echo $a / $b;
ne devrait rien donner
Bien sûr que si ça marche. Ça donne bien 10
$a = 100;
$b = 10;
echo $a / $b;
devrait afficher 1
et si tu fais :
$a = "100";
$b = "10";
echo intval($a) / intval($b);
tu auras ici 1 aussi
Non, ça affiche 10 et non pas 1.
Il est parfaitement inutile de convertir les chaînes en nombres pour effectuer des calculs, php s'en charge tout seul
$b = "10";
echo $a / $b;
ne devrait rien donner
Bien sûr que si ça marche. Ça donne bien 10
$a = 100;
$b = 10;
echo $a / $b;
devrait afficher 1
et si tu fais :
$a = "100";
$b = "10";
echo intval($a) / intval($b);
tu auras ici 1 aussi
Non, ça affiche 10 et non pas 1.
Il est parfaitement inutile de convertir les chaînes en nombres pour effectuer des calculs, php s'en charge tout seul
ah oui ca fait 10 xD
mais la conversion peu être utile car si le cast automatique récupère la valeur du caractère les résultats risquent d'être sympas ... (il y a des languages d'assistés, comme windev, qui le font pas trop mal, mais même là on a parfois des surprises).
si les données sont bien typées dans sa base, il peu aussi faire une seule requête qui effectuera les calcul
mais la conversion peu être utile car si le cast automatique récupère la valeur du caractère les résultats risquent d'être sympas ... (il y a des languages d'assistés, comme windev, qui le font pas trop mal, mais même là on a parfois des surprises).
si les données sont bien typées dans sa base, il peu aussi faire une seule requête qui effectuera les calcul
Bonjour
1 - <?
Ça commence mal. Normalement c'est <?php, sauf si tu as configuré ton php pour accepter les balises courtes.
2 - while($row...
Pourquoi faire une boucle alors que cette requête ne rend qu'une seule ligne ???
3 - while($row1 = mysql_fetch_row($res1)
Tu viens de faire une requête dont le résulta est dans $res2, pourquoi faire un mysql_fetch_row sur $row1 ?
4 - Pourquoi ta variable $row s'appelle-t-elle subitement $raw[1] ? Et pourquoi ta variable $row1 donne-t-elle aussi $raw1[1] mais de plus $row2[2], $row3[3]...
5 - Es-tu conscient avec ta deuxième requête que quand tu fais tes calculs, tu es sorti de la boucle et donc, tu ne travailles que sur la dernière ligne de résultats
Voilà pour la première lecture. Bon courage !
1 - <?
Ça commence mal. Normalement c'est <?php, sauf si tu as configuré ton php pour accepter les balises courtes.
2 - while($row...
Pourquoi faire une boucle alors que cette requête ne rend qu'une seule ligne ???
3 - while($row1 = mysql_fetch_row($res1)
Tu viens de faire une requête dont le résulta est dans $res2, pourquoi faire un mysql_fetch_row sur $row1 ?
4 - Pourquoi ta variable $row s'appelle-t-elle subitement $raw[1] ? Et pourquoi ta variable $row1 donne-t-elle aussi $raw1[1] mais de plus $row2[2], $row3[3]...
5 - Es-tu conscient avec ta deuxième requête que quand tu fais tes calculs, tu es sorti de la boucle et donc, tu ne travailles que sur la dernière ligne de résultats
Voilà pour la première lecture. Bon courage !