Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1729 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Ajout de points dans un classement

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Ajout de points dans un classement

n°2149294
titom59280
Posté le 13-07-2012 à 22:03:21  profilanswer
 

Bonjour a tous,
 
Je suis actuellement sur la réalisation d'un site pour un club de poker et il y a une partie classement et dans cette partie l'admin du site peut ajouter des points aux joueurs correspondant. Pour le moment j'ai une requéte pour modifier les points la voici :

Code :
  1. foreach ($_POST['joueurId'] as $i=>$v) {     // utilisé pour parcourir les array avec $i, on s'en fout de $v
  2.      $joueurId = mysql_real_escape_string($_POST['joueurId'][$i]);    // on récupère les données
  3.      $Points = mysql_real_escape_string($_POST['Points'][$i]);           // de la ligne $i
  4.      $query_update   = "UPDATE ".$POINTS_CLASSEMENT_1ER_TRIMESTRE." SET ".           // on fait la maj pour la ligne
  5.                                         " Points = '".$Points."' ".
  6.                                         " WHERE joueurId = '".$joueurId."';";
  7.       mysql_query($query_update) OR die('Erreur SQL :<br />'.$query_update.'<br />'.mysql_error());

.
 
Mais maintenant je voudrais qu'à la place de modifier la valeur points on l'ajoute a la valeur existante.
 
j'ai pensé a un truc du genre "Points = '".$Points+ .$Points."' mais ca doit pas marcher puisque cette variable est celle que insére l'admin dans le formulaire.
 
J'espére que vous pourrez m'aider avec ce probléme si vous avez des sites avec des tutos sur ce probléme ou si vous pouvez m'aidez a changer ce code je suis preneur.
 
Merci d'avance pour votre aide.

mood
Publicité
Posté le 13-07-2012 à 22:03:21  profilanswer
 

n°2149298
kray
Bad show?
Posté le 13-07-2012 à 22:50:47  profilanswer
 

2 min de google, 2ème résultat : un post HFR avec la solution :o  
 

Citation :

UPDATE matable SET mavaleur=mavaleur+10 WHERE id=15


 
Sinon sans faire élégant, tu peux récupérer préalablement ta valeur point via un SELECT et ensuite l'ajouter via ton SET.  
 
 
De mémoire, maintenant en PHP tu peux préparer ta requête et l’exécuter, c'est plus propre que des real_escape_string. Et me semble que ça protège mieux niveau injection.


Message édité par kray le 13-07-2012 à 22:51:11

---------------
I guess my real ennemy is me
n°2149314
titom59280
Posté le 14-07-2012 à 11:33:33  profilanswer
 

Bonjour Kray,
 
J'ai essayé de récupérer ma valeur Point via un SELECT mais apparement cela ne fonctionne pas. je pense que le probléme vient du fait que c'est exactement la meme variable avant le traitement et aprés le traitement.
 

n°2149322
kray
Bad show?
Posté le 14-07-2012 à 12:52:28  profilanswer
 

J'ai peut être mal compris ton pb mais si tu fais un (à la syntaxe php/sql près):
SELECT Points FROM $POINTS_CLASSEMENT_1ER_TRIMESTRE WHERE Joueueur ID = XXX
 
Un mysql_fetcharray sur le résultat, tu récupère la valeur points, tu ajoutes la valeur passée en POST puis tu stocke le résultat dans $Points et ensuite tu refais ton update ça devrait marcher.
 
Après, c'est plus élégant et efficace de faire l'addition via la commande SQL de mon premier post qu'en PHP IMHA, mais je vois pas de raison que ça marche pas via un SELECT avant.


---------------
I guess my real ennemy is me
n°2149548
6502
Posté le 16-07-2012 à 19:29:12  profilanswer
 

Kray t'a donné la bonne réponse tout de suite, fais ce qu'il a écris et ne te complique pas la vie.
 
Pour le foreach de php, je crois que tu n'as pas bien compris son utilisation
 

Code :
  1. foreach ($_POST['joueurId'] as $i=>$v) { 
  2.      $joueurId = mysql_real_escape_string($v);
  3.     ...


 
Voilà, sinon pour l'élégance :) :
Tu devrais déjà commencer par utiliser $k => $v ou $i => $j mais ne pas faire de mélange, et puis changer la structure de ton tableau.
 

Code :
  1. foreach ($_POST['joueur'] as $v) {
  2.     $sql= mysql_real_escape_string(
  3.         "UPDATE " . $POINTS_CLASSEMENT_1ER_TRIMESTRE
  4.         . " SET Points = Points + " . $v['Points']
  5.         . " WHERE joueurId = '" . $v['joueurId'] . "';"
  6.     );
  7.     mysql_query($sql) OR die('Erreur SQL :<br />' . $sql . '<br />'.mysql_error());
  8. }


 
Bon allez, je retourne en vacances, bon courage


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Ajout de points dans un classement

 

Sujets relatifs
Ajout de zero a une variablemacro excel / classement de valeurs
Winpe Menu.vbs de microsoft (ajout fonction en local disque usb)Requête SQL - Position dans un classement
Python - Ajout d'éléments dans un tableau de dimension >2Sécurité d'un système de points avec une valeur monétaire
[résolu] Choix d'une structure pour ajout et recherche rapidel'ajout ne fonctionne pas correctement
[PHP, MYSQL] Réaliser un classement avec données de plusieurs tablesAlgorithmes classement / rating / rank
Plus de sujets relatifs à : Ajout de points dans un classement


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR