Je veux changer un colmun sur DB
RésoluWaiM -
J'ai un forum, J'ai créé une page ( Valid.php ) et J'ai besoin d'aide pour changer les points d'un member qui visitera la page ( Valid.php )
J'ai essayé avec ce code, mais ça marche pas
<?
FUNCTION connection() {
include_once('./././configuration.php');
extract($configuration);
$connection = mysql_connect($serveur, $utilisateur, $motdepasse) OR die(mysql_error());
mysql_select_db($nom) OR die(mysql_error());
RETURN $connection;
}
global $joueur;
{
$query56 = mysql_query("SELECT * FROM users ") or die(mysql_error());
$users = mysql_fetch_array($query56);
$parties=$joueur['points']-10;
mysql_query("UPDATE users SET points='".$points."' WHERE id='".$joueur['id']."'");
}
?>
Je suis désolé pour ma française
4 réponses
Modifier les points d'un utilisateur qui visite Valid.php nécessite une mise à jour en base de données via une requête UPDATE après récupération de l'identifiant. Pour cela, la pratique recommandée consiste à récupérer l'identifiant de l'utilisateur via la session ($_SESSION['usr_id']), lire les points actuels puis les décrémenter (par exemple -10) et exécuter une requête UPDATE sur la table users. D'autres précisent d'éviter les variables globales et d'utiliser l'identifiant de session ($_SESSION['usr_id']) pour cibler l'utilisateur, puis de mettre à jour le champ points après calcul afin d'éviter les erreurs d'association. En cas de mise en œuvre moderne, privilégier mysqli ou PDO et ajouter une gestion des erreurs et des validations pour sécuriser la connexion et les requêtes.
-
Bonjour,
Avez-vous un message d'erreur ? -
D'après votre code, votre sql de fin met à jour le nombre de points d'un joueur particulier : SET points='".$points."'
Où est définie la variable $points ? C'est elle qu'il faut incrémenter. -
Où est-ce que vous avez trouvé ce code ? Je ne savais pas qu'on pouvait utiliser des variables globales de cette manière... Il y a des manières plus simples pour changer une variable d'un utilisateur qui passe.
-
Lol, ah d'accord ;)
Voici un exemple (qui marche) de connexion à une base : https://www.commentcamarche.net/contents/784-php-bases-de-donnees
(parce que je ne comprends pas pourquoi vous utilisez une fonction, ni pourquoi vous faites un return de $connection, ni d'où sortent la moitié de vos variables).
Dans votre fichier de configuration, je suppose que c'est là où vous avez mis vos variables liées à la BDD
// Connexion au serveur et à la base
mysql_connect($serveur, $utilisateur, $motdepasse) or die("erreur de connexion au serveur");
mysql_select_db($nom) or die("erreur de connexion a la base de donnees");
Ensuite, on s'occupe de récupérer l'utilisateur en ne prenant que ce qu'il nous intéresse. On peut faire ça qu'en une seule requête qui va forcément nous renvoyer un tableau (même s'il n'y a qu'un seul résultat). Je suppose que l'utilisateur a une session et qu'on a mémorisé son id dans $_SESSION['usr_id'].
$query56 = mysql_query("SELECT points FROM users WHERE id='".$_SESSION['usr_id']."'") or die(mysql_error());
$usr = mysql_fetch_row($query56);
On calcule et on refait une requête pour changer la variable dans la BDD :
$pts=$usr['points']-10;
mysql_query("UPDATE users SET points='".$pts."' WHERE id='".$_SESSION['usr_id']."'");