Mise a jour de champs avec condition et calcul

Signaler
Messages postés
14
Date d'inscription
samedi 2 août 2003
Statut
Membre
Dernière intervention
14 septembre 2009
-
Messages postés
14
Date d'inscription
samedi 2 août 2003
Statut
Membre
Dernière intervention
14 septembre 2009
-
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

2 réponses

Messages postés
318
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
11 mars 2010
1
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
Messages postés
14
Date d'inscription
samedi 2 août 2003
Statut
Membre
Dernière intervention
14 septembre 2009

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