Somme de valeurs en bdd

cadforma Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour !
J'ai un problème surement simple :
Je suis en train de créer un petit "jeu" sur mon site internet.
Le but serait de cliquer sur un bouton pour gagner 1 unité d'argent.

Je n'arrive pas à écrire en php -->
Quand le joueur clique sur le bouton tu change la valeur de 'solde' en ajoutant +1.

code :


<?php
session_start();
$bdd = new PDO('mysql:host=xxxxx;dbname=xxxx', 'xxxx', 'xxxx');
if(isset($_SESSION['id'])) {
   $requser = $bdd->prepare("SELECT * FROM membres WHERE id = ?");
   $requser->execute(array($_SESSION['id']));
   $user = $requser->fetch();
   $getid = intval($_GET['id']);
   $requser->execute(array($getid));
   $userinfo = $requser->fetch();
 
 if(isset($_POST['bouton'])){
  $erreur = "ok ca marche quand on clique";
  $newsolde = $bdd->prepare("UPDATE membres SET solde = ? WHERE id = ?");

//et la il faudrait trouver une solution XD

 }
?>

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Test jeu en php</title>
<link rel="stylesheet" type="text/css" href="css/jeu.css">
</head>

<body>
 
 <div class="banniere" align="center">
 <?php echo $userinfo['pseudo']; 
       echo $userinfo['solde'];
  ?>
 </div>
 
 <?php if(isset($erreur)) { echo $erreur; } ?>
 
 <div class="place_jeu" align="center">
 <form action="" method="post" name="travail">
 <input type="submit" name="bouton" class="bouton" value="Travailler">
 </form>  
 </div>
 
 
</body>
</html>

<?php   
}
else {
 $erreur = "id problem";
}
?>



Message modifié
par la modération

--->
Pour une lecture plus facile du code, vous devez utiliser
les balises de code (en y précisant le langage)


merci d'avance la communauté !

3 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour

UPDATE membres 
SET solde = solde + 1 
WHERE id = ?

0
cadforma Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Salut jordane45,
Merci pour t'as réponse, cependant tu l'intègre comment ?
Car j'ai essayé cette méthode mais ce n'est vraiment pas la bonne :

if(isset($_POST['bouton'])){
$newsolde = $bdd->execute("UPDATE membres
SET solde = solde + 1
WHERE id = ?");
}
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Déjà, merci d'utiliser correctement les balises de code.
il faut y indiquer le langage, tel qu'expliqué ici : https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code

Ensuite, vu que tu fais du PDO je t'invite à lire ( ET A APPLIQUER ) les conseils donnés ici :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

idem pour le lien suivant
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code


et enfin, tu as été capable de faire une requête SELECT en utilisant la "bonne" syntaxe... n'es tu pas capable de faire la même chose pour ta seconde requete ??
<?php
//démarrage session
session_start();

//affichage des erreurs php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);


//connexion à la bdd
try{
$bdd =new PDO('mysql:host=********; dbname=*****; charset=utf8', '*******', '*****');
// Activation des erreurs PDO
 $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
 $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch(PDOException $e) {
    die('Erreur : ' . $e->getMessage());
}

//récupération PROPRE des variables AVANT de les utiliser
$id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL;
$getid = !empty($_GET['id']) ? intval($_GET['id']) : NULL ;


if($getid && $id){
 //préparation de la requête et des variables
  $sql = "UPDATE membres
               SET solde = solde + 1
               WHERE id = ?";

 $datas = array($getid);

 //Execution de la requete
 try{
   $requete = $bdd -> prepare($sql) ;
   $requete->execute($datas) ;
 }catch(Exception $e){
    // en cas d'erreur :
    echo " Erreur ! ".$e->getMessage();
    echo " Les datas : " ;
   print_r($datas);
 }
}
0