Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme code php

Ou est le probleme ?

Sujet résolu
    25 avril 2007 à 18:32:25

    Bonjour,
    Voila quand j'execute ma page cron_ressources, je me retrouve avec des résultats ne correpondant pas, voici le code de cron_ressources.php

    <?php

    include("mysqlopen.php");


    $joueurs = 0;
    $reponse = mysql_query("SELECT * FROM players");



    while ($donnees = mysql_fetch_array($reponse) )
    {

    include("coutcron.php");

    $actuelfer = ($donnees['actuelfer'] + $productionfer);
    $actuelor = ($donnees['actuelor'] + $productionor);
    $actuelplut = ($donnees['actuelplut'] + $productionplut);
    $actuelenergie = (($productionsol + $productionfusion + $productioneolienne) - ($consofer + $consoor + $consoplut));




    if ($actuelenergie < 0)
    {
    $actuelfer = ($actuelfer - ($productionfer / 2));
    $actuelplut = ($actuelplut - ($productionplut / 2));
    $actuelor = ($actuelor - ($productionor / 2));
    }
    echo "".$donnees['pseudo']." :fer $productionfer or $productionor plut $productionplut<br>";
    mysql_query("UPDATE players SET actuelfer='$actuelfer', actuelor='$actuelor', actuelplut='$actuelplut', actuelenergie='$actuelenergie' WHERE pseudo='".$donnees['pseudo']."'");
    $joueurs = $joueurs + 1;
    }
    echo "$joueurs effectues";
    mysql_close();
    ?>


    Voici le code de coutcron.php

    <?php
    session_start();

    if ($donnees['nivfer'] == 0)
    {
    $coutferfer = 100;
    $coutorfer = 50;
    $coutplutfer = 0;
    $productionfer = 20;
    $consofer = 30;
    }
    else
    {
    $level = 1;

    while($donnees['nivfer'] >= $level)
    {
    $coef = 1800;
    $coutferfer = (($coef) * ($level) + ($coutferfer));

    $coef = 1000;
    $coutorfer = (($coef) * ($level) + ($coutorfer));

    $coef = 0;
    $coutplutfer = (($coef) * ($level) + ($coutplutfer));

    $coef = 90;
    $productionfer = (($coef) * ($level) + ($productionfer));

    $coef = 20;
    $consofer = (($coef) * ($level) + ($consofer));

    $level = ($level + 1);
    }
    }

    if ($donnees['nivor'] == 0 )
    {
    $coutferor = 100;
    $coutoror = 50;
    $coutplutor = 0;
    $productionor = 20;
    $consoor = 30;
    }
    else
    {
    $level = 1;


    while($donnees['nivor'] >= $level )
    {
    $coef = 1800;
    $coutferor = (($coef) * ($level) + ($coutferor));

    $coef = 1000;
    $coutoror = (($coef) * ($level) + ($coutoror));

    $coef = 0;
    $coutplutor = (($coef) * ($level) + ($coutplutor));

    $coef = 90;
    $productionor = (($coef) * ($level) + ($productionor));

    $coef = 20;
    $consoor = (($coef) * ($level) + ($consoor));

    $level = ($level + 1);
    }
    }


    if ($donnees['nivplut'] == 0 )
    {
    $coutferplut = 100;
    $coutorplut = 50;
    $coutplutplut = 0;
    $productionplut = 20;
    $consoplut = 30;
    }
    else
    {
    $level = 1;


    while($donnees['nivplut'] >= $level )
    {
    $coef = 1800;
    $coutferplut = (($coef) * ($level) + ($coutferplut));

    $coef = 1000;
    $coutorplut = (($coef) * ($level) + ($coutorplut));

    $coef = 0;
    $coutplutplut = (($coef) * ($level) + ($coutplutplut));

    $coef = 90;
    $productionplut = (($coef) * ($level) + ($productionplut));

    $coef = 20;
    $consoplut = (($coef) * ($level) + ($consoplut));

    $level = ($level + 1);
    }
    }

    if ($donnees['nivsol'] == 0)
    {
    $coutfersol = 100;
    $coutorsol = 50;
    $coutplutsol = 0;
    $productionsol = 20;
    $consosol = 30;
    }
    else
    {

    $level = 1;

    while($donnees['nivsol'] >= $level)
    {
    $coef = 1800;
    $coutfersol = (($coef) * ($level) + ($coutfersol));

    $coef = 1000;
    $coutorsol = (($coef) * ($level) + ($coutorsol));

    $coef = 0;
    $coutplutsol = (($coef) * ($level) + ($coutplutsol));

    $coef = 90;
    $productionsol = (($coef) * ($level) + ($productionsol));

    $coef = 20;
    $consosol = (($coef) * ($level) + ($consosol));

    $level = ($level + 1);
    }
    }

    EDIT : oups 2 fois le meme code ^^

    Le probleme c'est que quand le batiment est au niveau 0, il produit bien ce qui lui est demandé, mais par contre dès qu'il est au niveau 1, il produit LA VALEUR DE LA PRODUCTION DU JOUEUR PRECEDENT DANS LA TABLE + LA VALEUR DE SA PRODUCTION.

    The big question is donc pourquoi ?

    Si vous avez des idées n'hésitez pas
    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      25 avril 2007 à 19:38:32

      Salut

      echo "$joueurs effectues";
      Ca t'affiche quoi ca?
      Ca ne serait pas plutot :
      echo $joueurs." effectues";
      ??

      Sinon, il me semble (j'ai pas lu tout le code) qu'il manque des conditions à l'intérieur de tes whiles ;) (if, else if)
      • Partager sur Facebook
      • Partager sur Twitter
      Only limits are ours...
        26 avril 2007 à 8:27:58

        $joueurs m'affiche 3, puisqu'il y a 3 joueurs dans la table, il n'y a pas de probleme de ce coté la.

        Par contre pour ce qui est des if/else je ne voit pas les manquantes, peut tu m'éclairer ? merci
        • Partager sur Facebook
        • Partager sur Twitter
          26 avril 2007 à 9:32:28

          il faut que tu remette cela également dans tes else :
          $coutferfer = 100;
          $coutorfer = 50;
          $coutplutfer = 0;
          $productionfer = 20;
          $consofer = 30;

          car sinon il garde les valeurs des variables du joueur d'avant ;)
          • Partager sur Facebook
          • Partager sur Twitter
            26 avril 2007 à 12:50:15

            Sa a l'air de marcher, merci a toi ! :)
            resolu
            • Partager sur Facebook
            • Partager sur Twitter

            Probleme code php

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown