Page 1 sur 1

Faire un update avec des conditions

MessagePosté: Mer Juin 24, 2009 7:32 pm
par kaelkaelkael
Bonjour,

je voudrais faire un update mais avec plusieurs conditions:

Code: Tout sélectionner
sql::exec("UPDATE `membres` SET `ref`='0' WHERE `validefilleuls`>='".date('U')."' AND `validefilleuls` != '0'"); 


Donc la, ref va revenir a 0 quand la date dans validefilleuls sera dépassée et si la donnée est superieure a 0

Est-ce correcte? mon code est-il bon?

Est ce que ca ne risque pas de mettre ref a 0 lorsque validefilleuls est a 0 par défaut?

Merci d'avance

Re: Faire un update avec des conditions

MessagePosté: Jeu Juin 25, 2009 6:02 pm
par Yoyo
Oui c'est correct. :) Le mieux est de toujours faire des tests sur une table de développement pour en être sur !

Re: Faire un update avec des conditions

MessagePosté: Jeu Juin 25, 2009 6:22 pm
par kaelkaelkael
Merci yoyo,

comme tu peux voir je m'amélioere :P

mais loin d'etre au top.

J'ai cependant d'autres questions.

Ou la je planche vraiment.

J'ai fait tout un code qui ne fonctionne pas.

en fait, si validefilleuls = 0 dans la bdd, je voudrais que ca affiche "infini" et si c'est superieur ou meme simplement différent de 0 je voudrais que ca affiche une date.

Dans la base de donnée, la date est entré avec la fonction date(U), donc au final dans la BDD il y a écrit 1234435238 par exemple.

voici le code que j'ai créé:

Code: Tout sélectionner
if ($res->validefilleuls == "0" )

$validefifi infini ;


else
{
$validefifi date('d-m-Y H:i',$res->validefilleuls) ;
}

$template->assign_vars(array(
                         

                         
'validefilleuls'  =>  $validefifi
                          
                          
));
 




mais ca ne se passe du tout comme je pensais que ca allé se passer.
Le résultat qui s'affiche est en faite une date sous la forme 01/04/1970 13H27. Ca prend en compte le 0.

Merci de bien vouloir m'aider.

Re: Faire un update avec des conditions

MessagePosté: Ven Juin 26, 2009 5:33 am
par Yoyo
Salut,

Alors, t'as oublié les côtes je crois

$validefifi = 'infini';

Et sinon j'ai pas trop compris ton histoire avec ce qui marche pas :)

Re: Faire un update avec des conditions

MessagePosté: Lun Juin 29, 2009 9:31 pm
par kaelkaelkael
en fait j'ai du faire un code complétement différent. Ce que j'ai fonctionne bien, ca affiche ce que je veux mais les affichages son limités a 1. Il y a 3 filleuls a afficher, seulement le dernier apparait, enfin le dernier inscrit.
Voici le code que j'ai écrit:

Code: Tout sélectionner
if($usr=mysql_fetch_object(sql::exec('SELECT * FROM `membres` WHERE `ref`="'.$utilisateur->id.'" AND `activated`="1"  ORDER BY `inscription` DESC '))){
$quel=1;    

$filleuls $usr->validefilleuls;
if(
$filleuls == 0){
if(
$quel==1){$template->assign_block_vars('filleuls',array());}

    
$template->assign_block_vars('filleuls.ref', array(
                          
'registerDate'     =>        date('d-m-Y H:i',$usr->inscription),
                          
'email'         =>        $usr->email,
                          
'id'         =>        $usr->id,
                          
'prenom'         =>        $usr->prenom,
                          
'nom'         =>        stripslashes(substr($usr->nom,0,1)),
                          
'valide'      =>    "infini",
                          ));
                          
$quel++;
}
else{ 
if(
$quel==1){$template->assign_block_vars('filleuls',array());}   

$template->assign_block_vars('filleuls.ref', array(
                          
'registerDate'     =>        date('d-m-Y H:i',$usr->inscription),
                          
'email'         =>        $usr->email,
                          
'id'         =>        $usr->id,
                          
'prenom'         =>        $usr->prenom,
                          
'nom'         =>        stripslashes(substr($usr->nom,0,1)),
                          
'valide'      =>    date('d-m-Y H:i',$filleuls),
                          ));
                          
$quel++;

}
}
 


Comment puis-je limiter au nombre de filleuls et non pas a juste une ligne?