Problèmes avec la fonction now()

mousaki -  
 mousaki -
bonjour a tous...

je suis au désespoir.. quelqu'un pourr t il me sortir de là ??

voici mon problème.. j'écris un flux RSS avec certaines données triéées de ma base de données
voici quelques clés pour comprendre mon problème
mes entrées comportent les champs suivants :
start_date : date de départ de mon événement
end_date : date de fin de mon événement
endtime : heure de fin de mon événement

si mon événement se termine à 15:30, endtime = 930 (timestamp unix)

mais voila je cherche a supprimer de mon tri toutes les entrées comportant un endtime inférieur à mon heure actuelle :
ex : entrée avec endtime à 13:00 (soit 780), et qu'il est 14:00 (soit 840) je ne voudrais pas l'afficher...

voici donc mon code et en italique et souligné l'endroit qui me pose problème.. lorsque je place ce code... cela ne marche pas.. quelqu'un aurait il une super idée ??

merci d'avance

$query = 'SELECT res.*, rs.name, rs.rphone, rs.location FROM '
. $this->get_table('reservations') . ' as res INNER JOIN '
. $this->get_table('resources') . ' as rs ON rs.machid=res.machid'
. ' WHERE res.machid=?'
. ' AND (res.start_date=? OR (res.start_date<=? AND res.end_date>=?)) '
. ' AND res.endtime>=minute(now())'
. ' AND res.is_blackout <> 1'
. " ORDER BY res.start_date DESC, rs.name, res.starttime DESC";
A voir également:

6 réponses

Brachior Messages postés 616 Statut Membre 46
 
NOW() ne donne pas un timestamp Oo
tu compare un BIGINT avec une DATE Oo
0
mousaki
 
Merci,
alors comment puis je faire ??
0
Brachior Messages postés 616 Statut Membre 46
 
le fonction time() recupere le timestamp actuel
0
mousaki
 
oui mais voila, si je remplace par :
' AND res.endtime>=time()'
ou
' AND res.endtime>=minute (time())'

j'ai droit à une erreur et cela ne marche plus...
0
Brachior Messages postés 616 Statut Membre 46
 
fais $tsa=time(); ( tsa pr TimeStampActuel )
puis AND res.endtime>='".$tsa."'
0
mousaki
 
il me renvoie une parse error à la ligne concernée :
269. ' AND res.endtime>='".$tsa."'

erreur renvoyée :

Un seul élément de niveau supérieur est autorisé dans un document XML.
Ligne : 2 Caractère : 2

<b>Parse error</b>: parse error in <b>h:\www\lib\DBEngine.class.php</b> on line <b>269</b><br />

voila ma fonction en entier :
function get_resource_reservations($id, $order, $vert, $include_participating = false)
{
$return = array();
$tsa=time(); //( tsa pr TimeStampActuel )

// Clean out the duplicated order so that MSSQL is OK
$orders = trim(preg_replace("/(res|rs).$order,?/", '', 'res.start_date, rs.name, res.starttime'));
if (strrpos($orders, ',') == strlen($orders)-1) {
$orders = substr($orders, 0, strlen($orders)-1);
}

$query = 'SELECT res.*, rs.name, rs.rphone, rs.location FROM '
. $this->get_table('reservations') . ' as res INNER JOIN '
. $this->get_table('resources') . ' as rs ON rs.machid=res.machid'
//. $this->get_table('reservation_resources') . ' as resresources ON resresources.resid=res.resid'
. ' WHERE res.machid=?'
. ' AND (res.start_date=? OR (res.start_date<=? AND res.end_date>=?)) '
. ' AND res.endtime>='".$tsa."'
//. ' AND res.end_date>=date(now())'
. ' AND res.is_blackout <> 1'
. " ORDER BY res.start_date DESC, rs.name, res.starttime DESC";

$values = array($id, mktime(0,0,0), mktime(0,0,0), mktime(0,0,0));

// Prepare query
$q = $this->db->prepare($query);

// Execute query
$result = $this->db->execute($q, $values);

//print_r($result);

// Check if error
$this->check_for_error($result);

if ($result->numRows() <= 0) {
$this->err_msg = translate('You do not have any reservations scheduled.');
return false;
}

while ($rs = $result->fetchRow()) {
$return[] = $this->cleanRow($rs);
}

$result->free();

return $return;
}
0
Brachior Messages postés 616 Statut Membre 46
 
quand j'ai ecris '".$tsa."' je voulais te dire de concatener ^^
mais toi tu as commencé ton expression par ' alr concatenes a ta facon ^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mousaki
 
pour info, si je simule en dur pour voir si cela marche ex :
' AND res.endtime>=800'

tout est OK comme je veux mais pas dynamique en fonction de l'heure actuelle...
0
mousaki
 
EUh!!! tu m'en veux si je te dis que j'ai pas tout compris à ta réponse ??
0