Comme convenu je poste mon script
Code PHP :
<?
session_start() ;
//Indentifiants de connexion à la base de données.
require("conf.inc.php");
//Connexion à mysql.
mysql_connect($host,$dblogin,$dbpass);
mysql_select_db($dbname);
//recupération des données sur les membres
$sqlmembres = 'SELECT * FROM donneesmembres WHERE id="'.$_SESSION['id'].'"' ;
$reqmembres = mysql_query($sqlmembres) ;
$datamembres = mysql_fetch_array($reqmembres) ;
//récupération des données de la table stockant la derniere mise à jour des ressources
$sqldernierajout = 'SELECT * FROM ajout WHERE id="'.$_SESSION['id'].'"' ;
$reqdernierajout = mysql_query($sqldernierajout) ;
$datadernierajout = mysql_fetch_array($reqdernierajout) ;
//calcul des productions en fonction des batiments
$prodbat1 = 25 * $datamembres['bat1'] * bcpow(1.1 ,$datamembres['bat1']) ;
$prodbat2 = 17 * $datamembres['bat2'] * bcpow(1.1 ,$datamembres['bat2']) ;
$prodbat3 = 8 * $datamembres['bat3'] * bcpow(1.1 ,$datamembres['bat3']) ;
//recupération du temps actuel
$time = time() ;
//calcul des temps écoulés depuis la dernière maj , $tempsprod
$timedernierajout1 = $datadernierajout['time1'] ;
$tempsprod1 = $time - $timedernierajout1 ;
$timedernierajout2 = $datadernierajout['time2'] ;
$tempsprod2 = $time - $timedernierajout2 ;
$timedernierajout3 = $datadernierajout['time3'] ;
$tempsprod3 = $time - $timedernierajout3 ;
//calcul de production pour 1 sec puis production totale depuis alderniere mise a jour
$prod1init = $prodbat1/3600 ;
$prod1 = $prod1init * $tempsprod1;
$prod2init = $prodbat2/3600 ;
$prod2 = $prod2init * $tempsprod2 ;
$prod3init = $prodbat3/3600 ;
$prod3 = $prod3init * $tempsprod3 ;
// $prod1final, n'est aps tout à fait final. on supprime les virgules, mais pour garder le temsp qui correspond à la partie décimale, il faut calculer a combien de sec correspond ce temps. resultat plus de virgule au prod et au temps.
$prod1final = floor($prod1) ;
$tempsconso1 = $prod1final / $prod1init ;
$tempsconso1 = floor($tempsconso1) ;
$timederniereaction1 = $tempsconso1 + $timedernierajout1 ;
$prod1final = $prod1init * $tempsconso1 ;
$prod2final = floor($prod2) ;
$tempsconso2 = $prod2final / $prod2init ;
$tempsconso2 = floor($tempsconso2) ;
$timederniereaction2 = $tempsconso2 + $timedernierajout2 ;
$prod2final = $prod2init * $tempsconso2 ;
$prod3final = floor($prod3) ;
$tempsconso3 = $prod3final / $prod3init ;
$tempsconso3 = floor($tempsconso3) ;
$timederniereaction3 = $tempsconso3 + $timedernierajout3 ;
$prod2final = $prod2init * $tempsconso2 ;
// on calcule l'heure de la mise a jour en deduisant le temps consommé pour obtenir le temsp non consommé et trouver le temps réel de la maj
$timenonconso1 = $time - $timederniereaction1 ;
$timeajout1 = $time - $timenonconso1 ;
$timenonconso2 = $time - $timederniereaction2 ;
$timeajout2 = $time - $timenonconso2 ;
$timenonconso3 = $time - $timederniereaction3 ;
$timeajout3 = $time - $timenonconso3 ;
//calcul des ressources
$res1 = $datamembres['res1'] + $prod1final ;
$res2 = $datamembres['res2'] + $prod2final ;
$res3 = $datamembres['res3'] + $prod3final ;
//requete sql
$sqlajouttime = 'UPDATE ajout SET time1="'.$timeajout1.'" , time2="'.$timeajout2.'" , time3="'.$timeajout3.'" WHERE id="1"';
$sqlajoutressource = 'UPDATE membres SET res1="'.$res1.'" , res2="'.$res2.'" , res3="'.$res3.'" WHERE id="'.$_SESSION['id'] . '"' ;
mysql_query($sqlajouttime) ;
mysql_query($sqlajoutressource) ;
?>
g pas mis de commentaires si vous ne comprennez absolument pas dites le moi,
beaucoup de truc ne sont aps focement utile mais on a aucun bug et aucun nombre décimaux à la sortie.
on eput gerer 3 ressources diférentes
g éditer