Addition montant variable PHP
Kiricouille
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Je suis débutant en PHP, et j'aimerais ajouter un solde saisi à l'écran, à un autre solde déjà présent dans la base de donnée. Merci d'avance pour vos réponses.
Voici mon code :
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.
.
Je suis débutant en PHP, et j'aimerais ajouter un solde saisi à l'écran, à un autre solde déjà présent dans la base de donnée. Merci d'avance pour vos réponses.
Voici mon code :
<?php // on teste si les variables du formulaire sont déclarées if (isset($_POST['solde']) && isset($_POST['pseudo'])) { $req = 'SELECT $solde+.$solde. FROM utilisateurs WHERE pseudo = "'.$pseudo.'"'; // lancement de la requête $sql = 'UPDATE utilisateurs SET solde="'.$_POST['solde'].'+'.$req.'" WHERE pseudo="'.$_POST['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 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'; } ?>
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.
.
A voir également:
- Addition montant variable PHP
- Addition excel - Guide
- Easy php - Télécharger - Divers Web & Internet
- Le montant du salaire doit être numérique - Forum Bureautique
- Le montant du salaire doit être numérique. - Forum Excel
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
3 réponses
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.
.
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.