IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Calcul qui ne marche pas


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Par défaut Calcul qui ne marche pas
    Bonsoir,

    J'ai crée un script qui doit celon le resultat calculé modifier des donnees de ma BDD. Mais le souci c'est qu'il passe au Else.

    Voici le script en question:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    <?php
     
    session_start();
     
    require('config.php');
     
    if( isset($_SESSION['id']) )
    {
                    $id = intval($_SESSION['id']);
                    $sql = 'SELECT mine_or FROM batiment WHERE id=' . $id;
                    $req = mysql_query($sql) or die (mysql_error());                
                    $mine_or = mysql_result($req, 0, mine_or);       
     
                    $sql = 'SELECT titane, population FROM ressources WHERE id=' . $id;
                    $result = mysql_query($sql) or die(mysql_error());            
                    $titane = mysql_result($result, 0, titane);
                    $pop = mysql_result($result, 0, population);
     
                    $mult_cal1= ($mine_or * $mine_or) * $mine_or;
                    $mult_cal2= $mult_cal1 * 10;
                    $calcul= $mult_cal2 / 2;
                    $calcul1= $pop + 1 ;
                    $calcul2= $mult_cal1;
                    $level= $mine_or + 1 ;
     
                    if( isset($_SESSION['logged']) && $_SESSION['logged'] === true )
     
                    {
     
                                    if( $titane >= $calcul && $pop >= $calcul1)
                                    {
                                                    $sql = 'UPDATE ressources SET titane=titane-'.$calcul.', population=population-'.$calcul1.' WHERE id=' . $id;        
                                                    $req = mysql_query($sql) or die (mysql_error());
     
                                                    $sql = 'UPDATE batiment SET mine_or='.$level.' WHERE id=' . $id;
                                                   $req = mysql_query($sql) or die (mysql_error());
     
                                                   $sql = 'UPDATE membres SET points=points+'.$calcul2.' WHERE id=' . $id;
                                                   $req = mysql_query($sql) or die (mysql_error());
                                            echo '<p>Vous venez d\'ameliorer votre batiment.<br /><a href="../batiment.php">Cliquer ici pour retourner au site</a></p>';
                                    }
     
                                    else
                                    {
                                    echo' Vous n\'avez pas assez de ressources </br>
                                    <a href="index.php">Cliquer ici pour retourner au site</a>';
                                    }
                                    }
                                    }
                                    ?>
    Je voudrait donc savoir si mon bug vien de mon calcul où de mes variable (mauvaise utilisation). Et comment le resoudre.

    Merci d'avance

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    En faisant comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    <?php
     
    session_start();
     
    require('config.php');
     
    if( isset($_SESSION['id']) )
    {
                    $id = intval($_SESSION['id']);
                    $sql = 'SELECT mine_or FROM batiment WHERE id=' . $id;
                    $req = mysql_query($sql) or die (mysql_error());                
                    $row = mysql_fetch_array($req);
                    $mine_or = $row['mine_or'];       
                    
                    $sql = 'SELECT titane, population FROM ressources WHERE id=' . $id;
                    $result = mysql_query($sql) or die(mysql_error());            
                    $row = mysql_fetch_array($result);
                    $titane = $row['titane'];
                    $pop = $row['population'];
                    
                    $mult_cal1= ($mine_or * $mine_or) * $mine_or;
                    $mult_cal2= $mult_cal1 * 10;
                    $calcul= $mult_cal2 / 2;
                    $calcul1= $pop + 1 ;
                    $calcul2= $mult_cal1;
                    $level= $mine_or + 1 ;
                    
                    if( isset($_SESSION['logged']) && $_SESSION['logged'] === true )
                    
                    {
                    
                                    if( $titane >= $calcul && $pop >= $calcul1)
                                    {
                                                    $sql = 'UPDATE ressources SET titane=titane-'.$calcul.', population=population-'.$calcul1.' WHERE id=' . $id;        
                                                    $req = mysql_query($sql) or die (mysql_error());
                                    
                                                    $sql = 'UPDATE batiment SET mine_or='.$level.' WHERE id=' . $id;
                                                   $req = mysql_query($sql) or die (mysql_error());
                                                   
                                                   $sql = 'UPDATE membres SET points=points+'.$calcul2.' WHERE id=' . $id;
                                                   $req = mysql_query($sql) or die (mysql_error());
                                            echo '<p>Vous venez d\'ameliorer votre batiment.<br /><a href="../batiment.php">Cliquer ici pour retourner au site</a></p>';
                                    }
                                    
                                    else
                                    {
                                    echo' Vous n\'avez pas assez de ressources </br>
                                    <a href="index.php">Cliquer ici pour retourner au site</a>';
                                    }
                                    }
                                    }
                                    ?>

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Par défaut
    Ben je vois aucune difference entre ton script et le mien .

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    As-tu testé au moins ? La différence est entre la récupération des données depuis la bdd. Ce qui est le problème dans ton code à mon avis. Pour un test, gardes ta première version et fais un echo de, par exemple, $mine_or juste après la récupération.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Par défaut
    Il y a quelque chose car en faite celui ci est un test d'amelioration d'un script qui marche (et qui utilise les meme variable). C'est pour ca que je trouve bizarre que ca ne marche pas.

  6. #6
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Juste comme ca : comment une variable peut etre supérieur à une autre si tu la définis en inférieur. Je m'explique. Tu mets ceci :
    Et plus bas tu testes $pop >= $calcul c'est logiquement impossible

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requete avec champs calculés qui ne marche pas
    Par The_Super_Steph dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 05/06/2007, 14h39
  2. [SWING] KeyListener qui ne marche pas
    Par kindool dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 10/01/2005, 19h04
  3. Iptables configuration qui ne marche pas....
    Par The_Nail dans le forum Sécurité
    Réponses: 7
    Dernier message: 03/02/2004, 14h27
  4. Réponses: 3
    Dernier message: 08/09/2003, 15h06
  5. Réponses: 9
    Dernier message: 07/05/2003, 12h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo