Requête + soustraction UPDATE

Résolu/Fermé
baldwim Messages postés 16 Date d'inscription vendredi 16 décembre 2011 Statut Membre Dernière intervention 14 octobre 2012 - 20 déc. 2011 à 09:50
baldwim Messages postés 16 Date d'inscription vendredi 16 décembre 2011 Statut Membre Dernière intervention 14 octobre 2012 - 22 déc. 2011 à 16:24
Bonjour,

Je fait deux requêtes et je récupère deux variables pour en faire la soustraction cependant en fesant 1000 - 100 j'obtiens toujours 1000.

Est ce que le problème vien de ma requête ou de mes variables ?

un peu d'aide serait la bienvenue ^^



<?
session_start();

$base = mysql_connect ('sql3.cluster1.easy-hebergement.net', 'payetontezhl2', 'nimes00');
mysql_select_db ('payetontezhl2', $base);

$query = "SELECT * FROM membre WHERE login='$_SESSION[login]'";
$result = mysql_query($query);
$nombre = mysql_fetch_array($result);

$query2 = 'SELECT * FROM heros where id="'.mysql_escape_string($_GET['id']).'"';
$result2 = mysql_query($query2);
$nombre2 = mysql_fetch_array($result2);

$depart = $nombre[5] ;

$prix = $nombre2[7] ;

$restant = $depart - $prix ;

$query3= "UPDATE membre SET gold='$restant' WHERE login='$_SESSION[login]'";
$result3 = mysql_query($query3);


echo $restant ;
?>


7 réponses

j'ai essayer la méthode de stringman, et j'obtiens toujours 1000
Comme j'avais dit que je m'y attendais...

Pourquoi soupçonnes-tu que ça vient de l'appel de ta deuxième variable, alors que tu écrivais à 2h18 que tu avais bien vérifié qu'il y avait 1000 et 100 ?

Mais tu as raison, cette variable est certainement à 0. Tu t'es peut-être trompé en comptant tes champs, pourquoi n'écris-tu pas $prix = $nombre2['nomduchamp'] ; au lieu de $prix = $nombre2[7] ; ? Ça réduit les causes d'erreur

Affiche VRAIMENT $depart et $prix, tu verras bien
1
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
20 déc. 2011 à 10:50
Salut,
As tu fais l'affichage de tes requêtes ? as tu ce que tu souhaites ?
Ensuite pourquoi ne pas faire cela en une seule requête ?
As tu un lien entre la table "membre" et la table "heros" ?
0
baldwim Messages postés 16 Date d'inscription vendredi 16 décembre 2011 Statut Membre Dernière intervention 14 octobre 2012
20 déc. 2011 à 18:27
Non car quand je fait :

$depart = $nombre[5] ;

$prix = $nombre2[7] ;

$restant = $depart - $prix ;

j'obtiens 1000 alors que je devrais avoir 900 .

1000-100

0
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
21 déc. 2011 à 08:44
Tu peux répondre aux questions quand même...
$prix te donne 1000 ? et $restant te donne 100 ?
0
baldwim Messages postés 16 Date d'inscription vendredi 16 décembre 2011 Statut Membre Dernière intervention 14 octobre 2012
21 déc. 2011 à 18:18
j'obtiens 1000 alors que je devrais avoir 900 .

ce n'est pas une réponse ?
0
Stringman621 Messages postés 1305 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 septembre 2012 334
Modifié par Stringman621 le 21/12/2011 à 18:20
Non ce n'est pas la réponse demandé e

Dans ton code fait ça :
echo $depart; 
echo $prix; 


et vois si tu as bien tes 1000 et 100.

Le problème peux venir de là
0
baldwim Messages postés 16 Date d'inscription vendredi 16 décembre 2011 Statut Membre Dernière intervention 14 octobre 2012
22 déc. 2011 à 02:18
Oui j'ai bien les 1000 et les 100 .

:/
0
Stringman621 Messages postés 1305 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 septembre 2012 334
22 déc. 2011 à 09:39
essaie de faire ça :
$restant = intval($depart) - intval($prix)


c'est peut être un problème de conversion de caractère en entier
0
Bonjour

Tu es en train de nous dire que
echo $depart; 
echo $prix; 
$restant = $depart - $prix ;
$query3= "UPDATE membre SET gold='$restant' WHERE login='$_SESSION[login]'";
$result3 = mysql_query($query3);
echo $restant ; 
ça t'affiche 10001001000 ?
J'ai beaucoup, beaucoup de mal à te croire. Peux-tu redonner la fin de ton script avec ses echo et ce qu'il affiche ?
0
baldwim Messages postés 16 Date d'inscription vendredi 16 décembre 2011 Statut Membre Dernière intervention 14 octobre 2012
22 déc. 2011 à 15:04
<?
session_start();

$base = mysql_connect ('sql3.cluster1.easy-hebergement.net', 'payetontezhl2', 'nimes00');
mysql_select_db ('payetontezhl2', $base);

$query = "SELECT * FROM membre WHERE login='$_SESSION[login]'"; 
$result = mysql_query($query);
$nombre = mysql_fetch_array($result);

$query2 = 'SELECT * FROM heros where id="'.mysql_escape_string($_GET['id']).'"'; 
$result2 = mysql_query($query2);
$nombre2 = mysql_fetch_array($result2);

$depart = $nombre[5] ;

$prix = $nombre2[7] ;

$restant = $depart - $prix ;

$query3= "UPDATE membre SET gold='$restant' WHERE login='$_SESSION[login]'";
$result3 = mysql_query($query3);


echo $restant ;
?>



Non ça m'affiche 1000 et pas le calcul de $depart - $ prix

c'est pas difficile a comprendre si on prend le temps de lire correctement le post de départ.

1000 - 100 j'obtiens toujours 1000.

Lorsque je demande echo $restant ; pour savoir le résultat j'obtiens le nombre 1000 alors que je devrais avoir 900. C'est pas compliqué c'est une simple soustraction mais je n'arrive pas à la faire.
0
Stringman621 Messages postés 1305 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 septembre 2012 334
22 déc. 2011 à 15:12
Comme je t'expliquais au dessus, c'est peut être les résultats qui sont considérés comme des caractère, donc essaie ça :
$restant = intval($depart) - intval($prix)

echo $restant;
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
C'est pas difficile à comprendre...
Je te demandais le code avec echo $depart et echo $prix car je suis prêt à parier que ces valeurs ne sont pas celles que tu crois.
Je sais bien que tu n'obtiens pas le résultat voulu, mais je suis persuadé que c'est parce que les données ne sont pas celles que tu crois.

-> Stringman621 : je ne crois pas que le problème vienne du fait que les résultats soient considérés comme des caractères, car il suffit de faire echo "1000" - "100"; pour voir s'afficher 900
0
baldwim Messages postés 16 Date d'inscription vendredi 16 décembre 2011 Statut Membre Dernière intervention 14 octobre 2012
22 déc. 2011 à 15:42
Alors j'ai essayer la méthode de stringman, et j'obtiens toujours 1000 ... je crois que mon problème viens de l'appel de ma deuxième variable.


$query2 = 'SELECT * FROM heros where id="'.mysql_escape_string($_GET['id']).'"'; 
$result2 = mysql_query($query2); 
$nombre2 = mysql_fetch_array($result2); 


$prix = $nombre2[7] ; 



Le problème doit venir de ici :/

0
baldwim Messages postés 16 Date d'inscription vendredi 16 décembre 2011 Statut Membre Dernière intervention 14 octobre 2012
22 déc. 2011 à 16:24
J'ai enfin résolu mon problème ....
Je vous explique dans ma Page Verif.php je demandais la variable PRIX et la variable TOTALDUCOMPTE. Cependant il ne me trouvais pas Prix car je demandais un GET qui n'existait pas étant donné que mon formulaire sur la page d'avant était un POST.

J'ai donc rajouter un imput dans mon formulaire page d'avant pour récupérer le prix de l'objet en questions. Rajouter $hero = $_POST['hero']; en haut de ma page pour faire passer la requête.

Et enfin tout marche ! je vous remercie tous et désolé si j'ai mal posté ma question.

amicalement

Baldwim

0