Veuillez vous connecter ou créer un compte pour suivre ce topic
Ce topic est suivi par: BeKidding, Fishing61
Auteur Sujet: Systéme de jetons (point)

Fishing61

Messages: 36

Bonsoir,
Je souhaiterai faire un systéme avec de jetons (point) de ce type.
Pour faire cour je voudrai que dés qu'une personne clique sur un bouton "continuer" soit rediriger vers son profil et que il soit crédité d'un point (jeton). MERCI DE REPONDRE SVP :'(.
Bonne Soiré.
Publicité

BeKidding

Messages: 75

Mh , 
comme ceci ? 
<?php
   if(isset($_POST['continuer'])) {
      $credit_token = $bdd->prepare('UPDATE TableMembre SET tokens=tokens+1 WHERE pseudo = ?');
      $credit_token = $credit_token->execute(array($_SESSION['pseudo']));
   }
?>
   

Fishing61

Messages: 36

Merci pour le code, je ne l'ai pas encore teste mais...J'ai quelques question, faut t'il créé une bdd ou une table ? Et ou faut t'il inscrire se code, dans la page "profil.php" ou dans une autre page, le mieux pour moi seraient dans une autre page. 
Merci d'avance pour vos réponses.

Wistaro

Messages: 76

Ce n'est qu'un exemple de code ici, en l'occurrence un champs 'token' s'incremente pour un utilisateur lorsqu'un formulaire est envoyé. 

C'est à toi de l'adapter Sourire Suivant ton besoin. 

Et pour répondre à tes questions,  il suffit que tu rajoutes un champs token dans ta table utilisateur.

Fishing61

Messages: 36

Bonsoir,
Je n'ai pas de table utilisateur je dois en créé une ?
Et comment fais t'on pour faire un code avec le nombre de jetons (point) qui s'affiche en temps réél pour le membre ? Et je ne c'est pas comment on pourrait faire cela, dés qu'une personne clique sur un bouton "continuer" soit rediriger vers son profil et que il soit crédité d'un point (jeton). Voila j'éspére avoir été plus claire dans mes questions.
Cordialement.

BeKidding

Messages: 75

Bonsoir , de nouveau Sourire
Et bien tu n'est pas obligé de créer une table utilisateurs mais alors les tokens ne seront pas attribués ... a des utilisateurs je ne comprends pas très bien le système.
Si tu n'as pas de table utilisateurs comment credite tu quelqu'un d'un token ?
Tu dois quand même bien posséder une table membre ou quelque chose qui s'y rapproche , non ?

Et comme dis au dessus tu n'est pas obligé de créer une table utilisateurs , tu peux simplement créer aussi une table token ,
avec structure comme ceci :
id_membre | tokens
ou encore :
pseudo_membre | tokens

Et pour afficher le nombre de tokens il suffit de faire un select de la table qui contient les tokens , dans mon exemple au dessus la table TableMembre
Exemple ->
$req_token = $bdd->prepare('SELECT tokens FROM TableMembre WHERE pseudo = ?');
$req_token = $req_token->execute(array($_SESSION['pseudo']));
$token_nb = $req_tokens->fetch();
$tokens = $token_nb['tokens'];
/* 
TON CODE
.....
.....
 */
?>
<?= $tokens ?>



Fishing61

Messages: 36

Desolé je ne comprend pas trop j'ai du mal j'ai créé une table "token"sa donne sa

Fishing61

Messages: 36

Je n'ai rien toucher au reglage a part la case nom que j'ai bien sur change par ce que vous m'aviez dit

BeKidding

Messages: 75

Et bien voilà en fait c'est a peu près tout ...
Tu dois juste dire a ta requete SQL que tu ajoute un Tokens dans la table Token OU l'ID_membre de Tokens = id_membres de ta table utilisateurs Sourire

Fishing61

Messages: 36

Et la comment je fais ? pour faire cela je marque quoi et ou ?

Fishing61

Messages: 36

Et comment je fais par la suite pour faire un bouton ou il clique dessus et il on 1 point ? 

Swaap

Messages: 11

Si tu utilises le code de BeKidding qui est celui-ci : 
<?php   if(isset($_POST['continuer'])) {      $credit_token = $bdd->prepare('UPDATE TableMembre SET tokens=tokens+1 WHERE pseudo = ?');      $credit_token = $credit_token->execute(array($_SESSION['pseudo']));   }
?>
Alors, avec le petit bout e HTML tu dois faire comme ceci :
<form method="post">
<?php
if(isset($_POST['continuer'])) 
{
   $credit_token = $bdd->prepare('UPDATE TableMembre SET tokens=tokens+1 WHERE pseudo = ?');
   $credit_token = $credit_token->execute(array($_SESSION['pseudo']));
}
?>
<button type="submit" name="continuer">Vers mon profil</button>
</form>
Essaie cela est dis moi ton résultat

Fishing61

Messages: 36

j'ai essayé et sa me met 2 erreurs .

Swaap

Messages: 11

Peux-tu préciser les erreurs que tu reçois?
Publicité

Fishing61

Messages: 36

oui, je vous montre tout
mon code
<?php   
   if(isset($_POST['continuer'])) {      $credit_token = $bdd->prepare('UPDATE TableMembre SET tokens=tokens+1 WHERE pseudo = ?');      $credit_token = $credit_token->execute(array($_SESSION['pseudo']));   }
?>
<form method="post">
<?php
if(isset($_POST['continuer'])) 
{
   $credit_token = $bdd->prepare('UPDATE TableMembre SET tokens=tokens+1 WHERE pseudo = ?');
   $credit_token = $credit_token->execute(array($_SESSION['pseudo']));
}
?>
<button type="submit" name="continuer">Vers mon profil</button>
</form>
mes erreurs

Fishing61

Messages: 36

Et enfin ma table 

Swaap

Messages: 11

<?php    if(isset($_POST['continuer'])) {      $credit_token = $bdd->prepare('UPDATE token SET tokens=tokens+1 WHERE id_membre = ?');      $credit_token = $credit_token->execute(array($_SESSION['pseudo']));   }?><form method="post"><?phpif(isset($_POST['continuer'])) {
   $credit_token = $bdd->prepare('UPDATE TableMembre SET tokens=tokens+1 WHERE pseudo = ?');   $credit_token = $credit_token->execute(array($_SESSION['pseudo']));}
?><button type="submit" name="continuer">Vers mon profil</button></form>

Fishing61

Messages: 36

Sa ne marche pas non plus mais peut tu regardé si sa ne serait pas ma table qui serait mauvaise.

BeKidding

Messages: 75

Pour te simplifier la vie et faire appelle à ta bdd je te conseille de la mettre dans un fichier config que tu inclus a chaque page.
Exemple -> http://prntscr.com/b0jzv2
Ou alors tu peux simplement définir ta base de données à chaque début de page ou tu en a besoin.
En l'occurence le code sera ->
<form method="post">
   <?php
   $bdd = new PDO("mysql:host=localhost;dbname=NomDB", "NomUtilisateur", "MotDePasse");
   $bdd->exec("SET NAMES utf8");
    if(isset($_POST['continuer'])) {
      $credit_token = $bdd->prepare('UPDATE tokens SET tokens=tokens+1 WHERE id_membre= ?');   
       $credit_token = $credit_token->execute(array($_SESSION['id']));}
   ?>
<button type="submit" name="continuer">Vers mon profil</button>
</form>

Fishing61

Messages: 36

J'ai modifié votre code mais c'est normal que quand on clique sur "vers mon profil" sa me met une erreur A LA LIGNE 7 .
<form method="post">
   <?php
   $bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '');
   $bdd->exec("SET NAMES utf8");
    if(isset($_POST['continuer'])) 
   {
      $credit_token = $bdd->prepare('UPDATE tokens SET tokens=tokens+1 WHERE id_membre= ?');   
      $credit_token = $credit_token->execute(array($_SESSION['id']));
   }
   ?>
<button type="submit" name="continuer">Vers mon profil</button>
</form>
Voila mon code j'ai modifier sa 
  $bdd = new PDO("mysql:host=localhost;dbname=NomDB", "NomUtilisateur", "MotDePasse");
par sa 
$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '');
/* Sa pose un probleme mais je me demande si je n'est pas un probleme dans ma table car j'ai juste ecrit deux mots sur deux colonnes d'habitude on mais un autoincrement ou des trucs du genres ? Aprés c'est peut étre normal.*/

BeKidding

Messages: 75

Et bien désolé de te l'apprendre mais moi cela fonctionne parfaitement ...

Voici le code "Complet" , a toi de l'adapter après ....
<form method="post">
   <?php
   $bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '');
   $bdd->exec("SET NAMES utf8");
    if(isset($_POST['continuer'])) 
   {
      $credit_token = $bdd->prepare('UPDATE tokens SET tokens=tokens+1 WHERE id_membre= ?');   
      $exec = $credit_token->execute(array($_SESSION['id']));
      $fetch = $credit_token->fetch();
      $non_existe = $credit_token->rowCount();
        if($non_existe < 1) {
            $credit_token = $bdd->prepare('INSERT INTO tokens (id_membre,tokens) values (?,?)');
            $credit_token = $credit_token->execute(array($_SESSION['id'],0));
        }
   }
   ?>
<button type="submit" name="continuer">Vers mon profil</button>
</form>
Et voici la vidéo pour prouver mes dires :

Fishing61

Messages: 36

Ne marche toujours pas malheuresement pourriez vous me faire un screen shot de votre table tokens

BeKidding

Messages: 75

id_membre en primary INT 11
tokens en varchar et lenght 255

Fishing61

Messages: 36


Fishing61

Messages: 36

c est comme sa ? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

Fishing61

Messages: 36

ou comme sa 
Poster une réponse