Mise a jour de champs avec condition et calcul

promouv Messages postés 14 Date d'inscription samedi 2 août 2003 Statut Membre Dernière intervention 14 septembre 2009 - 9 mai 2008 à 18:17
promouv Messages postés 14 Date d'inscription samedi 2 août 2003 Statut Membre Dernière intervention 14 septembre 2009 - 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

2 réponses

gibozsec Messages postés 318 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 11 mars 2010
10 mai 2008 à 10:29
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
0
promouv Messages postés 14 Date d'inscription samedi 2 août 2003 Statut Membre Dernière intervention 14 septembre 2009
10 mai 2008 à 12:18
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
0
Rejoignez-nous