Problèmes avec la fonction now()
mousaki
-
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";
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:
- Problèmes avec la fonction now()
- Reboot system now - Guide
- Fonction si et - Guide
- Scan now - Guide
- Remove logo now - Télécharger - TV & Vidéo
- Fonction miroir - Guide
6 réponses
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...
' AND res.endtime>=time()'
ou
' AND res.endtime>=minute (time())'
j'ai droit à une erreur et cela ne marche plus...
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;
}
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;
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question