Pages : 1
#1 Le 28/11/2007, à 09:58
- abeman
[RESOLU]fonction min en php
Bonjour,
j'ai un petit morceau de scrip qui ne marche pas.
Je veux tester quelle est la valeur la plus petite avec la fonction min()
$maxunitguerrier = min($maxble,$maxor,$maxpierre,$maxbois,$maxfer);
echo $maxunitguerrier;
LMon problème, c'est que script me renvoie 0 (j'ai bien sur tout déclarer les variable avant, c'est pas le problème...)
En fait, c'est pour lui demander la valeur la plus petite pour savoir combien d'objet je peux faire par example...
Merci
Dernière modification par abeman (Le 29/11/2007, à 10:57)
Un site de vulgarisation scientifique : http://www.etcomment.fr
"Il faut savoir prendre son temps pour aller vite"
Hors ligne
#2 Le 28/11/2007, à 10:57
- Martopioche
Re : [RESOLU]fonction min en php
A la lecture de ton post, et selon la doc PHP ( http://fr.php.net/manual/en/function.min.php ), je dirai que les raisons pour lesquelles tu a ce résultat, c'est que soit une de tes variables contient 0, soit qu'il s'agisse d'une valeur non numérique. Tu a testé avec des valeurs contrà´lées ?
Hors ligne
#3 Le 28/11/2007, à 11:34
- abeman
Re : [RESOLU]fonction min en php
comment sa des valeur non controlées?
il ne s'agit que de valeurs INT.
blé 2032 Or 1246 pierre1347 pierre 4 Or 1 500
ressource mini : 0
Dernière modification par abeman (Le 28/11/2007, à 11:34)
Un site de vulgarisation scientifique : http://www.etcomment.fr
"Il faut savoir prendre son temps pour aller vite"
Hors ligne
#4 Le 28/11/2007, à 12:38
- Martopioche
Re : [RESOLU]fonction min en php
Quand j'ai dit "variables contrà´lées", c'est dans une optique maà®trisée de tests afin de vérifier qu'en fonction de ce qui est envoyé, on obtient ce qu'on attend.
Je suis loin de maà®triser PHP, mais il me semble donc qu'on ne déclare pas le type de variables lors de leur déclaration. Ainsi, rien ne t'empêche de commencer ta partie avec $ble = 100;, d'augmenter ton capital grà¢ce à ta production et d'avoir $ble = $ble + 10; ( donc $ble = 110) puis de déclarer $ble = "martin";. Forcement, min($ble, 10, 100, 1000) te renvoi (ou plutà´t, d'après la doc, doit te renvoyer) alors 0.
Normalement, toujours en suivant la doc, si tu fait :
$maxble = 10;
$maxor = 100;
$maxpierre = 55;
$maxbois = 69;
$maxfer = 111500;
$maxunitguerrier = min($maxble,$maxor,$maxpierre,$maxbois,$maxfer);
echo $maxunitguerrier;
tu doit obtenir 10, non ? Si oui, je me pencherait sur la manière de créer tes variables.
Oui, c'est juste des remarques sur les étourderies possibles qui sont 80% des erreurs réalisées en code. Si ça fait avancer kékchose, tant mieux, sinon, moi je peux pas mieux.
Hors ligne
#5 Le 28/11/2007, à 13:10
- abeman
Re : [RESOLU]fonction min en php
Le truc, c'est que mes variable $maxquelquechose sont créées a partir de la base de donnée.
Donc il y a pas de soucis.
Sije fais des echo $variable; il m'affiche nikel les valeures pour TOUTE les variable.
Un site de vulgarisation scientifique : http://www.etcomment.fr
"Il faut savoir prendre son temps pour aller vite"
Hors ligne
#6 Le 28/11/2007, à 13:16
- abeman
Re : [RESOLU]fonction min en php
ha min, c'est en effet un problème de variable. Elle on beau etre bien déclarées, elle sont mise à zero pour 2 d'entre elle...
Pourquoi, la est la question.
Un site de vulgarisation scientifique : http://www.etcomment.fr
"Il faut savoir prendre son temps pour aller vite"
Hors ligne
#7 Le 28/11/2007, à 15:16
- Martopioche
Re : [RESOLU]fonction min en php
Héhé, voila voila...
Une info que tu n'avait pas donné : l'origine de la valeur de tes variables. Je m'attendais à ce que pour une raison miraculeuse, elles contiennent n'importe quoi. Comme quoi, malgré les certitudes, tu vois ce que j'appelle "maîtriser ses valeurs" D'où là, min ok mais accès BD à revoir.
Bon courage.
Hors ligne
#8 Le 29/11/2007, à 10:28
- abeman
Re : [RESOLU]fonction min en php
et oui, tu avaisréson.
Dis moi, j'ai un script d'info bulle a inserer dans la page PHP, je n'arriva pas, il ne veux pas marcehr. Tu peux me dire comment faire stp?
<?php
if ((!isset($_SESSION['login'])) || (empty($_SESSION['login'])))
{
// la variable 'login' de session est non déclaré ou vide
echo 'Vous n etes pas connecte';
exit();
}
$cestqui = $_SESSION['login'];
require 'connexion.php';
?>
<SCRIPT LANGUAGE="javascript" src=\"infobulle.js\"> </SCRIPT>
<?php
$ressources=mysql_query("SELECT * FROM ressources WHERE login='".$cestqui."'") or die(mysql_error()); // requête
while($row = mysql_fetch_row($ressources)){
$or = $row[1];
$pierre = $row[2];
$ble = $row[4];
$habitant = $row[3];
$bois = $row[6];
$fer = $row[7];
$temps_ancien = $row[5];
$temps_actuel = time();
$temps_ecoule = $temps_actuel - $temps_ancien;
}
?>
<table width="100%" border="0">
<tr>
<td onmouseover="montre('Ble');" onmouseout="cache();" width="16%"><img src="images/ble.jpg" alt="blé" width="35" height="35" title="ble" /> <?php echo $ble ?> </td>
<td onmouseover="montre('Or');" onmouseout="cache();" width="16%"><img src="images/PepiteDOr.JPG" alt="Or" width="35" height="35" title="or"/> <?php echo $or ?> </td>
<td onmouseover="montre('Pierre');" onmouseout="cache();" width="16%"><img src="images/pierre7nd.jpg" alt="pierre" width="35" height="35" title="pierre" /><?php echo $pierre ?></td>
<td onmouseover="montre('Fer');" onmouseout="cache();" width="16%"><img src="images/fer2.jpg" alt="pierre" width="35" height="35" title="fer"/> <?php echo $fer ?></td>
<td onmouseover="montre('Bois');" onmouseout="cache();" width="16%"><img src="images/bois_foret.jpg" alt="Or" width="35" height="35" title="bois"/> <?php echo $bois ?></td>
<td onmouseover="montre('Habitant');" onmouseout="cache();" width="16%"><img src="" alt="" name="habitant" width="35" height="35" id="habitant" title="habitant"/> <?php echo $habitant ?></td>
</tr>
</table>
<?php
//on defini notre nombre de mines
//or
$resultmineor =mysql_query("SELECT * FROM mineor WHERE login='".$cestqui."'") or die(mysql_error()); // requête
while($row = mysql_fetch_row($resultmineor)){
$or = $row[2];
$pierre = $row[3];
$ble = $row[4];
$habitant = $row[5];
$mineor = $row[6];
$bois = $row[7];
$fer = $row[8];
$temps_actuel = time();
$temps_ecoule = ($temps_actuel - $temps_ancien)/60;
}
$prod_or = (($mineor*1)*$temps_ecoule)/3;
//pierre
$resultminepierre =mysql_query("SELECT * FROM minepierre WHERE login='".$cestqui."'") or die(mysql_error()); // requête
while($row = mysql_fetch_row($resultminepierre)){
$or = $row[2];
$pierre = $row[3];
$ble = $row[4];
$habitant = $row[5];
$minepierre = $row[6];
$bois = $row[7];
$fer = $row[8];
$temps_actuel = time();
$temps_ecoule = ($temps_actuel - $temps_ancien)/60;
}
$prod_pierre = (($minepierre*1)*$temps_ecoule)/3;
//Bois
$resultbois =mysql_query("SELECT * FROM bucheron WHERE login='".$cestqui."'") or die(mysql_error()); // requête
while($row = mysql_fetch_row($resultbois)){
$nombre = $row[6];
$temps_actuel = time();
$temps_ecoule = ($temps_actuel - $temps_ancien)/60;
}
$prod_bois = (($nombre*1)*$temps_ecoule)/3;
//fer
$resultminefer =mysql_query("SELECT * FROM minefer WHERE login='".$cestqui."'") or die(mysql_error()); // requête
while($row = mysql_fetch_row($resultminefer)){
$or = $row[2];
$pierre = $row[3];
$ble = $row[4];
$habitant = $row[5];
$minefer = $row[6];
$bois = $row[7];
$fer = $row[8];
$temps_actuel = time();
$temps_ecoule = ($temps_actuel - $temps_ancien)/60;
}
$prod_fer = (($minefer*1)*$temps_ecoule)/3;
//ferme
$resultchamps =mysql_query("SELECT * FROM champs WHERE login='".$cestqui."'") or die(mysql_error()); // requête
while($row = mysql_fetch_row($resultchamps)){
$or = $row[1];
$pierre = $row[2];
$ble = $row[3];
$habitant = $row[4];
$nombre = $row[5];
$prod = $row[6];
$bois = $row[7];
$fer = $row[8];
$temps_actuel = time();
$temps_ecoule = ($temps_actuel - $temps_ancien)/60;
}
$prod_champs = (($nombre*$prod)*$temps_ecoule)/4;
?>
Vous avez produit <?php echo floor($prod_or);?> unites d or et <?php echo floor($prod_pierre);?> unites de pierre depuis le dernier rafraichissement et <?php echo floor($prod_champs);?> de ble et <?php echo floor($prod_bois);?> de bois et <?php echo floor($prod_fer);?> de fer
<?php
// Si vous souhaitez determiner la valeur par heure : (($mine*10)/3600)*$temps_ecoule;
//---------------M.A.J--------------
mysql_query("UPDATE ressources SET ors=ors+$prod_or, timestamp=$temps_actuel WHERE login='".$cestqui."'");
mysql_query("UPDATE ressources SET pierre=pierre+$prod_pierre, timestamp=$temps_actuel WHERE login='".$cestqui."'");
mysql_query("UPDATE ressources SET ble=ble+$prod_champs, timestamp=$temps_actuel WHERE login='".$cestqui."'");
mysql_query("UPDATE ressources SET bois=bois+$prod_bois, timestamp=$temps_actuel WHERE login='".$cestqui."'");
mysql_query("UPDATE ressources SET fer=fer+$prod_fer, timestamp=$temps_actuel WHERE login='".$cestqui."'");
// Déconnexion de MySQL
mysql_close();
?>
J'ai essayé plusieures syntaxe, rien ne passe :s
Merci encore
Un site de vulgarisation scientifique : http://www.etcomment.fr
"Il faut savoir prendre son temps pour aller vite"
Hors ligne
#9 Le 29/11/2007, à 10:51
- Sebcbi1
Re : [RESOLU]fonction min en php
pour ton probleme de min , essaye 'var_dump($or)' plutot que 'echo $or' avant l'appel a la fonction min.
cela t'affichera le type exact de te variable et sa valeur
pour le javascript , sans le contenu de infobulle.js ....
Hors ligne
#10 Le 29/11/2007, à 10:56
- abeman
Re : [RESOLU]fonction min en php
ok. j'ai trouvé pour le JS. il me suffisait d'un echo'...';
Bon, topic résolu grace a votre aide
Merci
Un site de vulgarisation scientifique : http://www.etcomment.fr
"Il faut savoir prendre son temps pour aller vite"
Hors ligne
Pages : 1