Mise a jour de champs avec condition et calcul

promouv 14 Messages postés samedi 2 août 2003Date d'inscription 14 septembre 2009 Dernière intervention - 9 mai 2008 à 18:17 - Dernière réponse : promouv 14 Messages postés samedi 2 août 2003Date d'inscription 14 septembre 2009 Dernière intervention
- 10 mai 2008 à 12:18
bonjour,

voila j'ai fais il y a quelque temps une page php qui met a jour une  table bien précise cependant j'aimerais l'améliorer au maximum.

voila le code actuel:
// indique plusieurs chemins possibles pour le include (car pas forcément la même arbo que le site de base)
set_include_path('./' . PATH_SEPARATOR . './../'
                     . PATH_SEPARATOR . './../../'
                     . PATH_SEPARATOR . get_include_path());
// inclusion des classes nécessaires
include("_include/core/main_start.php");
if ($g_user['user_id'] > 0 and !isset($gc) and get_param("cmd", "") != "logout") redirect('home.php');
// requête update
DB::query("UPDATE user SET gold_days='31' , type='gold' WHERE user_id = ".$g_user['user_id']);
// redirection une fois la requête exécutée
redirect("../../upgraded.php");

les membre "gold" ont acces a tous le site pendant 31 jours apres il sont obliger d'upgrader leur compte.

en gros ce que je veux faire c'est que le "gold" si il veux upgrader avant la fin de sont abonnement ça ne remette pas gold_days a 31 mais que 31jours s'additionne a ce qui lui reste.

j'ai essayer de récuperer la valeur et de faire une addition mais j'ai des erreurs de syntaxes.

quelqu'un pourrais me mettre sur la voix ?

merci a tous
Afficher la suite 

2 réponses

Répondre au sujet
gibozsec 318 Messages postés mardi 27 mai 2003Date d'inscription 11 mars 2010 Dernière intervention - 10 mai 2008 à 10:29
0
Utile
Bonjour,

As tu essayé de faire l'addition via la requête sql ?

DB::query("UPDATE user SET gold_days=gold_days + 31 , type='gold' WHERE user_id = ".$g_user['user_id']);

Grrrrrrrrrrr
Commenter la réponse de gibozsec
promouv 14 Messages postés samedi 2 août 2003Date d'inscription 14 septembre 2009 Dernière intervention - 10 mai 2008 à 12:18
0
Utile
c'est bon oui j'ai trouver je devais aussi inclure une condition voila comment j'ai fais:

// indique plusieurs chemins possibles pour le include (car pas forcément la même arbo que le site de base)
set_include_path('./' . PATH_SEPARATOR . './../'
                     . PATH_SEPARATOR . './../../'
                     . PATH_SEPARATOR . get_include_path());
// inclusion des classes nécessaires
include("_include/core/main_start.php");
if ($g_user['user_id'] > 0 and !isset($gc) and get_param("cmd", "") != "logout") redirect('home.php');
// requête update$ls_req_type 'SELECT type FROM user WHERE user_id'.$g_user['user_id'];
$result = mysql_query($ls_req_type);

if ($result !== false)
{
    // pas d'erreur
    $ls_type = mysql_result($result, 0);
   
    if ($ls_type == 'platinum')
    {
        DB::query("UPDATE user SET gold_days='31' , type='gold' WHERE user_id =".$g_user['user_id']." AND type='platinum'");
    }
    elseif ($ls_type == 'gold')
    {
        DB::query("UPDATE user SET gold_days=gold_days+31  WHERE user_id =".$g_user['user_id']." AND type='gold'");
    }
    else
    {
        // erreur
        redirect('home.php');
    }
   
    // redirection une fois la requête exécutée
    redirect('upgraded.php');
}
else
{
    redirect('home.php');
}
?>

maintenant tout est ok
Commenter la réponse de promouv

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.