Somme de valeurs en bdd

cadforma Messages postés 3 Statut Membre -  
jordane45 Messages postés 30427 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

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Bonjour

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

    0
  2. cadforma Messages postés 3 Statut Membre
     
    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
  3. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    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