22-12-2008, 12:58 PM
(Modification du message : 22-12-2008, 01:37 PM par Sephi-Chan.)
Pour ceux que ça intéresse, voici la requête :
Et pour ceux que ça intéresse encore plus, voici le script de génération de cette requête avec Zend Framework :
Merci encore à tous,
Sephi-Chan
SELECT `vote_type`.*,
UNIX_TIMESTAMP(vote_date) AS `vote_date`,
UNIX_TIMESTAMP(DATE_ADD(vote_date, INTERVAL life_time DAY)) AS `next`,
IF(NOW() < DATE_ADD(vote_date, INTERVAL life_time DAY), 0, 1 ) AS `usable`
FROM `vote_types` AS `vote_type`
LEFT JOIN `votes` AS `vote` ON `vote`.`vote_type_id` = `vote_type`.`id` AND `vote`.`character_id` = 1
Et pour ceux que ça intéresse encore plus, voici le script de génération de cette requête avec Zend Framework :
$db = $this->getAdapter();
$select = $db->select();
$select->from(
array('vote_type' => 'vote_types'),
array('*')
);
/**
* On récupère les votes associés au personnage.
* Un vote est utilisable quand l'instant présent est antérieur
* au cumul de l'insant du vote et de se durée de vie.
*/
$select->joinLeft(
array('vote' => $this->_name),
$db->quoteInto(
"`vote`.`vote_type_id` = `vote_type`.`id` AND `vote`.`character_id` = ?",
$options['character'],
Zend_Db::INT_TYPE
),
array(
'vote_date' => new Zend_Db_Expr("UNIX_TIMESTAMP(vote_date)"),
'next' => new Zend_Db_Expr("UNIX_TIMESTAMP(DATE_ADD(vote_date, INTERVAL life_time DAY))"),
'usable' => new Zend_Db_Expr(
"IF(
DATE_ADD(vote_date, INTERVAL life_time DAY) > NOW(),
0,
1
)"
)
)
);
Merci encore à tous,
Sephi-Chan