Page 1 sur 1

Ajout +1 d'un nombre sur ma table

Posté : 12 déc. 2008, 16:31
par Poinball
Bonjour !

Je voudrais savoir quel est mon erreur dans mon code si dessous.

Code : Tout sélectionner

$hc = mysql_connect("localhost","****","*****") or die ("impossible de connecter le serveur de données"); // Pour se connecter à la base de donnée $db = mysql_select_db("win32_membre") or die ("impossible de connecter la base de données. <br/>".mysql_errno()." : ".mysql_error().""); // Pour dire le nom de la base de donnée $sql = "UPDATE login SET ipoints=ipoints+1 WHERE login='.$_SESSION['login'].'"; mysql_query($sql);
Mon but est d'ajouter 1 au nombre déja existant dans ma table. Il correspond à ipoints.

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Posté : 12 déc. 2008, 16:47
par Invité
Va chercher ta valeur avant de l'ajouter, tu vas l'a chercher ensuite tu mets une variable (ex:
$ipoints = $data['ipoints'] + 1;

$hc = mysql_connect("localhost","****","*****") or die ("impossible de connecter le serveur de données"); // Pour se connecter à la base de donnée 
$db = mysql_select_db("win32_membre") or die ("impossible de connecter la base de données. <br/>".mysql_errno()." : ".mysql_error().""); // Pour dire le nom de la base de donnée 
$sql_select = 'SELECT * FROM login WHERE login="'.$_SESSION['login'].'"';
$data = mysql_fetch_assoc($sql_select); //jusqu'ici tu devrais comprendre..

$ipoints = $data['ipoints'] + 1; //Tu ajoute + 1 au ipoints déjà dans la db

$sql = "UPDATE login SET ipoints='.$ipoints.' WHERE login='.$_SESSION['login'].'"; 
mysql_query($sql);

Ajout +1 d'un nombre sur ma table

Posté : 12 déc. 2008, 17:20
par Poinball
Bonjour , j'ai fais les mdification mais j'ai encore une erreur ..

Code : Tout sélectionner

<?php session_start(); if (!isset($_SESSION['login'])) { header ('Location: nolog.php'); exit(); } $hc = mysql_connect("localhost","*******","**********") or die ("impossible de connecter le serveur de données"); // Pour se connecter à la base de donnée $db = mysql_select_db("win32_membre") or die ("impossible de connecter la base de données. <br/>".mysql_errno()." : ".mysql_error().""); // Pour dire le nom de la base de donnée $sql_select = 'SELECT * FROM login WHERE login = "'.$_SESSION['login'].'"'; $data = mysql_fetch_assoc($sql_select); //jusqu'ici tu devrais comprendre.. $ipoints = $data['ipoints'] + 1; //Tu ajoute + 1 au ipoints déjà dans la db $sql = 'UPDATE login SET ipoints=$ipoints login = "'.$_SESSION['login'].'"'; mysql_query($sql); ?>
Sa me dit que la ligne
$data = mysql_fetch_assoc($sql_select); //jusqu'ici tu devrais comprendre..
est en erreur .. Voici le message derreur :
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /hdd2/win32/public_html/achatencours.php on line 57

Merci :S

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Posté : 12 déc. 2008, 17:24
par yaug
Ton erreur est là :
$sql_select = 'SELECT * FROM login WHERE login = "'.$_SESSION['login'].'"';
$data = mysql_fetch_assoc($sql_select); //jusqu'ici tu devrais comprendre.. 
Tu n'exécute pas la requête :)

Regarde bien sur la documentation php.
$ressource = mysql_query($query);
$data = mysql_fetch_assoc($ressources);

(de mémoire).

Lorsque que tu fais une requêtes (ce que tu ne faisais pas là) php te renvois une ressources qui sera ensuite exploitée par tes fonctions mysql_fetch_***

Posté : 12 déc. 2008, 18:28
par Poinball
ça ne marche pas quand meme .. :
<?php
session_start();
if (!isset($_SESSION['login'])) {
    header ('Location: nolog.php');
    exit();
}
$hc = mysql_connect("localhost","win32","bidou98") or die ("impossible de connecter le serveur de données"); // Pour se connecter à la base de donnée
$db = mysql_select_db("win32_membre") or die ("impossible de connecter la base de données. <br/>".mysql_errno()." : ".mysql_error().""); // Pour dire le nom de la base de donnée

$sql_select = 'SELECT * FROM login WHERE login = "'.$_SESSION['login'].'"';
$ressource = mysql_query($query);
$data = mysql_fetch_assoc($ressources); 
$ipoints = $data['ipoints'] + 1; //Tu ajoute + 1 au ipoints déjà dans la db

$sql = 'UPDATE login SET ipoints=$ipoints login = "'.$_SESSION['login'].'"';
mysql_query($sql);

?>
Encore la meme erreur :S
j'ai aussi modifier ton code pour celui si au cas et sa ne marchais pas quand meme
$ressource = mysql_query(sql_select);
$data = mysql_fetch_assoc($ressources);

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Posté : 12 déc. 2008, 18:29
par Poinball
ça ne marche pas quand meme .. :
<?php
session_start();
if (!isset($_SESSION['login'])) {
    header ('Location: nolog.php');
    exit();
}
$hc = mysql_connect("localhost","*****","****") or die ("impossible de connecter le serveur de données"); // Pour se connecter à la base de donnée
$db = mysql_select_db("win32_membre") or die ("impossible de connecter la base de données. <br/>".mysql_errno()." : ".mysql_error().""); // Pour dire le nom de la base de donnée

$sql_select = 'SELECT * FROM login WHERE login = "'.$_SESSION['login'].'"';
$ressource = mysql_query($query);
$data = mysql_fetch_assoc($ressources); 
$ipoints = $data['ipoints'] + 1; //Tu ajoute + 1 au ipoints déjà dans la db

$sql = 'UPDATE login SET ipoints=$ipoints login = "'.$_SESSION['login'].'"';
mysql_query($sql);

?>
Encore la meme erreur :S
j'ai aussi modifier ton code pour celui si au cas et sa ne marchais pas quand meme
$ressource = mysql_query(sql_select);
$data = mysql_fetch_assoc($ressources);

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Posté : 12 déc. 2008, 19:22
par jojolapine
Attention!!!! Ressources gaspillées!!!!!!!
Il n'est pas nécessaire d'aller chercher la valeur si c'est simplement pour rajouter 1 à cette dernière:

Code : Tout sélectionner

UPDATE table SET champ= champ + 1

Posté : 12 déc. 2008, 20:02
par Poinball
Merci ! Probleme Résolu ! ;)

Posté : 12 déc. 2008, 20:11
par sadeq
Voici un correctif.
<?php
// Activer la session
session_start();

// Si l'utilisateur n'est pas connecté, l'orienter vers NO LOGIN
if (!isset($_SESSION['login'])) {
    header ('Location: nolog.php');
    exit();
}

/******************************************/
/* Mettre à jour les points de l'utilisateur connecté */
/******************************************/

// Connexion à la base
$hc = mysql_connect("localhost","*****","****") or die ("impossible de se connecter au serveur de données"); // Message d'erreur de mysql
$db = mysql_select_db("win32_membre") or die ("impossible de connecter la base de données. <br/>".mysql_errno()." : ".mysql_error().""); // Message d'erreur de mysql

// Requête de mise à jour des points de l'utilisateur
$sql = "UPDATE login SET ipoints = ipoints+1 WHERE login = '".$_SESSION['login']."'";

// Exécuter la requête
mysql_query($sql) or die ("Erreur d'exécution de la requête. <br/>".mysql_errno()." : ".mysql_error().""); // Message d'erreur de mysql

// Vérifier si la mise à jour a été effectuée par la requête
if (mysql_affected_rows($hc) >0) {
   echo "Mise à jour effectuée";
}
else {
    echo "Mise à jour non effectuée";
}
?>