Addition montant variable PHP
Fermé
Kiricouille
-
Modifié par jordane45 le 14/06/2015 à 02:09
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 - 15 juin 2015 à 00:25
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 - 15 juin 2015 à 00:25
A voir également:
- Addition montant variable PHP
- Formule excel addition - Guide
- Easy php - Télécharger - Divers Web & Internet
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
- Montant en arabe - Forum Programmation
3 réponses
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
Modifié par jordane45 le 14/06/2015 à 02:19
Modifié par jordane45 le 14/06/2015 à 02:19
Bonjour,
Tu dois récupérer le montant présent dans ta BDD via une requête SELECT
Une fois le montant récupérer ... tu fais l'addition en PHP.
Puis.. pour finir .. tu mets à jour le montant dans ta BDD
Cordialement,
Jordane
Tu dois récupérer le montant présent dans ta BDD via une requête SELECT
// on récupère les variables $pseudo = isset($_POST['pseudo'])?$_POST['pseudo']:NULL; $solde = isset($_POST['solde'])?$_POST['solde']:0; // on cherche l'ancien solde $req = 'SELECT solde FROM utilisateurs WHERE pseudo = "'.$pseudo.'"'; $result = mysql_query($req) or die('Erreur SQL !'.$req.'<br />'.mysql_error()); if($result ){ $row = mysql_fetch_row($result); $ancienSolde = $row['solde']; }else{ $ancienSolde = 0; }
Une fois le montant récupérer ... tu fais l'addition en PHP.
$nouveauSolde = $ancienSolde + $solde ;
Puis.. pour finir .. tu mets à jour le montant dans ta BDD
// lancement de la requête $sql = 'UPDATE utilisateurs SET solde="'.$nouveauSolde .'" WHERE pseudo="'.$pseudo.'"'; // on exécute la requête (mysql_query) et on affiche un message au cas où la requête ne se passait pas bien (or die) mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
Cordialement,
Jordane
Salut Jordane 45,
Merci beaucoup de ta réponse Jordane, malheureusement, je n'ai pas le résultat escompté sur ma base de donnée. J'ai enlevé mon code précédent et l'ai remplacé par le tien. Quand je tape un nombre, mettons 9, ça me le met dans la base de donnée, mais quand la seconde d'après, je retape un autre numéro, mettons 7, ça m'affiche 7, et non 9 + 7, soit 16.
Pour l'information, je te donne mon code complet ;), mon problème se trouve à rechargement.php :
Site.php :
register.php :
Login.php :
logout.php :
recharge.php :
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser dans tes prochains messages.
.
Merci beaucoup de ta réponse Jordane, malheureusement, je n'ai pas le résultat escompté sur ma base de donnée. J'ai enlevé mon code précédent et l'ai remplacé par le tien. Quand je tape un nombre, mettons 9, ça me le met dans la base de donnée, mais quand la seconde d'après, je retape un autre numéro, mettons 7, ça m'affiche 7, et non 9 + 7, soit 16.
Pour l'information, je te donne mon code complet ;), mon problème se trouve à rechargement.php :
Site.php :
<!DOCTYPE html> <html lang='fr'> <head> <meta charset='utf-8'> <title>Site de rechargement</title> </head> <body> <h2> Bienvenue dans l'ebauche de notre site de paiement sans contact</h2> <form> <ul> <li><a href="http://localhost:8000/login.php">Se connecter</a></li> <li><a href="http://localhost:8000/register.php">S'enregistrer</a></li> </ul> </form> </body> </html>
register.php :
<?php include'fonctions.php'; include'config.php'; ?> <!DOCTYPE html> <html lang='fr'> <head> <meta charset='utf-8'> <title>Formulaire d'enregistrement</title> </head> <body> <h2> Formulaire d'enregistrement</h2> <form action='' method='post'> <input type='text' name='pseudo'/> Votre pseudo <br/> <input type='text' name='mail'/> Votre E-mail <br/> <input type='password' name='mot_passe'/> Votre mot de passe <br/> <input type='password' name='mot_passe2'/> Retaper votre mot de passe <br/> <input type='submit' value="S'inscrire"/> </form> <?php if (isset($_POST)){ if(!empty($_POST['pseudo'])){ if(!empty($_POST['mot_passe'])){ extract($_POST); $req2 = mysql_query('SELECT pseudo FROM utilisateurs WHERE pseudo = "'.$pseudo.'"'); $info_utilisateurs = mysql_fetch_array($req2); if(!isset($info_utilisateurs['pseudo'])){ if($mot_passe==$mot_passe2){ connexion_db(); $today = date("d.m.y"); $mail=mysql_real_escape_string($mail); $pseudo=mysql_real_escape_string($pseudo); $mot_passe_crypte=crypter($mot_passe); $inserer="INSERT INTO utilisateurs (id,pseudo,mot_passe,mail,dateinscription,solde) VALUES ('','$pseudo','$mot_passe_crypte','$mail','$today','$solde')"; $req=mysql_query($inserer) or die('Erreur requête insertion : '.mysql_error()); if($req) echo'Inscription effectué. Vos identifiants sont désormais : <strong>'.$pseudo.'</strong> et Mot de passe : <strong>'.$mot_passe.'</strong>'; else echo"Echec inscription"; }else echo"Mot de confirmation erronné"; }else echo"Le pseudo existe deja"; }else echo"Mot de passe requis"; }else echo"Pseudo requis"; } ?> <br/><br/><a href="login.php" />Se connecter</a><br/> <a href="register.php" />S'inscrire</a> </body> </html>
Login.php :
<?php include'fonctions.php'; include'config.php'; ?> <?php if(isset($_POST['envoyer'])) { if(isset($_POST['pseudo']) AND !empty($_POST['pseudo']) AND isset($_POST['mot_passe']) AND !empty($_POST['mot_passe'])){ //Tout les champs ont été remplis $pseudo = mysql_escape_string($_POST['pseudo']); $motdepasse = mysql_escape_string(md5($_POST['mot_passe'])); $req1 = mysql_query('SELECT * FROM utilisateurs WHERE pseudo ="'.$pseudo.'"'); $info_membre = mysql_fetch_array($req1); if(isset($info_membre['pseudo'])) { if($motdepasse == $info_membre['mot_passe']) { $_SESSION['pseudo'] = $pseudo; $succes = 'Connexion reussie'; } else { $erreur = 'Le pseudo ou mot de passe entre sont incorrect,'; } } else { $erreur = 'Le pseudo n\'existe pas'; } } else { $erreur = 'Tout les champs sont obligatoires.'; } } ?> <h1 style="text-align: center;">Connexion</h1> <hr> <?php if(isset($erreur)) { echo $erreur; } ?> <?php if(isset($succes)) { echo $succes; } ?> <hr> <form action="index.php" method="post"> Pseudo : <input type="text" name="pseudo" value="<?php if(isset($_POST['pseudo'])) { echo $_POST['pseudo']; } ?>"><br> Mot de passe : <input type="password" name="mot_passe" value="<?php if(isset($_POST['mot_passe'])) { echo $_POST['mot_passe']; } ?>"><br> <input type="submit" name="envoyer" value="Se connecter"> </form> index.php : <?php include'fonctions.php'; include'config.php'; ?> <?php if(isset($_SESSION['pseudo'])) { ?> <p> Vous etes connecte, <?php echo $_SESSION['pseudo']; ?>. Tu peux sur cette page recharger tes credits<br/> <a href="recharge.php" />Rechargez vos credits</a><br/> <a href="logout.php" />Se deconnecter</a><br/> <?php } else {?> <p> Vous n'etes pas connecte.<br/> <a href="login.php" />Se connecter</a><br/> <a href="register.php" />S'inscrire</a> </p> <?php } ?> fonctions.php : <?php ini_set('display_errors','off'); function connexion_db(){ mysql_connect('127.0.0.1','root','') or die('Erreur Seveur : '.mysql_error()); mysql_select_db('base') or die('Erreur base de données : '.mysql_error()); echo'Connexion à la base de données réussie. '; } function crypter($passe){ $passe=md5($passe); return $passe; } ?> <br> config.php : <?php session_start(); mysql_connect('127.0.0.1','root',''); mysql_select_db('base'); ?>
logout.php :
<?php include('includes/config.php'); session_destroy(); header('Location: register.php'); ?>
recharge.php :
<?php include'fonctions.php'; include'config.php'; ?> <!DOCTYPE html> <html lang='fr'> <head> <meta charset='utf-8'> <title>Formulaire d'enregistrement</title> </head> <body> <h2> Formulaire d'enregistrement</h2> <form action='' method='post'> <input type='text' name='pseudo'/> Votre pseudo <br/> <input type='number' name='solde'/> Votre solde <br/> <input type='submit' value="Valider"/> </form> <?php // on teste si les variables du formulaire sont déclarées if (isset($_POST['solde']) && isset($_POST['pseudo'])) { $pseudo = isset($_POST['pseudo'])?$_POST['pseudo']:NULL; $solde = isset($_POST['solde'])?$_POST['solde']:0; // on cherche l'ancien solde $req = 'SELECT solde FROM utilisateurs WHERE pseudo = "'.$pseudo.'"'; $result = mysql_query($req) or die('Erreur SQL !'.$req.'<br />'.mysql_error()); if($result ){ $row = mysql_fetch_row($result); $ancienSolde = $row['solde']; }else{ $ancienSolde = 0; } $nouveauSolde = $ancienSolde + $solde ; // lancement de la requête $sql = 'UPDATE utilisateurs SET solde="'.$nouveauSolde .'" WHERE pseudo="'.$pseudo.'"'; // on exécute la requête (mysql_query) et on affiche un message au cas où la requête ne se passait pas bien (or die) mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); // on exécute la requête (mysql_query) et on affiche un message au cas où la requête ne se passait pas bien (or die) mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); // on ferme la connexion à la base mysql_close(); // un petit message permettant de se rendre compte de la modification effectuée echo 'Le nouveau solde est de '.$_POST['solde'].'.'; } else { echo 'Les variables du formulaire ne sont pas déclarées'; } ?> <br/><br/><a href="recharge.php" />Se connecter</a><br/> <a href="register.php" />S'inscrire</a> </body> </html>
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser dans tes prochains messages.
.
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
15 juin 2015 à 00:25
15 juin 2015 à 00:25
Déjà .
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Ensuite...
Pourquoi me mettre TOUTES tes pages... alors que ton souci ne concerne que la page recharge.php
Après.... Pourquoi mettre tes infos de connexion à la BDD un peu partout dans ton code ???
il serait préférable de le mettre dans un fichier à part ...et de l'inclure au début de tes pages....
Puis...
dans la page recharge.php .. pourquoi avoir deux fois le même code:
et enfin...
Le nouveau solde n'est pas contenu dans la variable post .. mais dans la variable nouveausolde..
donc :
est à remplacer par :
.Commence par faire ces corrections... et reviens nous les montrer avant que l'on ne continue.
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Ensuite...
Pourquoi me mettre TOUTES tes pages... alors que ton souci ne concerne que la page recharge.php
Après.... Pourquoi mettre tes infos de connexion à la BDD un peu partout dans ton code ???
il serait préférable de le mettre dans un fichier à part ...et de l'inclure au début de tes pages....
Puis...
dans la page recharge.php .. pourquoi avoir deux fois le même code:
// on exécute la requête (mysql_query) et on affiche un message au cas où la requête ne se passait pas bien (or die) mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); // on exécute la requête (mysql_query) et on affiche un message au cas où la requête ne se passait pas bien (or die) mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); // on ferme la connexion à la base mysql_close();
et enfin...
Le nouveau solde n'est pas contenu dans la variable post .. mais dans la variable nouveausolde..
donc :
// un petit message permettant de se rendre compte de la modification effectuée echo 'Le nouveau solde est de '.$_POST['solde'].'.';
est à remplacer par :
// un petit message permettant de se rendre compte de la modification effectuée echo 'Le nouveau solde est de '.$nouveauSolde;
.Commence par faire ces corrections... et reviens nous les montrer avant que l'on ne continue.