212212 'EventId ' => true ,
213213 'Type ' => true ,
214214 'TimeStamp ' => true ,
215- 'TimeStampShort ' => array ( 'sql ' => 'date_format( StartDateTime, \'' .MYSQL_FMT_DATETIME_SHORT .'\' ) ' ),
215+ 'TimeStampShort ' => array ( 'sql ' => 'date_format( StartDateTime, \'' .MYSQL_FMT_DATETIME_SHORT .'\' ) ' ),
216216 'Delta ' => true ,
217217 'Score ' => true ,
218218 //'Image' => array( 'postFunc' => 'getFrameImage' ),
@@ -515,34 +515,23 @@ function getNearEvents() {
515515 }
516516
517517 $ sql = '
518- SELECT
519- E.Id
520- AS Id,
521- E.StartDateTime
522- AS StartDateTime
523- FROM Events
524- AS E
525- INNER JOIN Monitors
526- AS M
527- ON E.MonitorId = M.Id
528- LEFT JOIN Events_Tags
529- AS ET
530- ON E.Id = ET.EventId
531- LEFT JOIN Tags
532- AS T
533- ON T.Id = ET.TagId
534- WHERE ' .$ sortColumn .'
518+ SELECT E.Id AS Id, E.StartDateTime AS StartDateTime
519+ FROM Events AS E
520+ INNER JOIN Monitors AS M ON E.MonitorId = M.Id
521+ LEFT JOIN Events_Tags AS ET ON E.Id = ET.EventId
522+ LEFT JOIN Tags AS T ON T.Id = ET.TagId
523+ WHERE ' .$ sortColumn .'
535524 ' .($ sortOrder =='ASC ' ?'<= ' :'>= ' ).' \'' .$ event [$ _REQUEST ['sort_field ' ]].'\'' ;
536525 if ($ filter ->sql ()) {
537526 $ sql .= ' AND ( ' .$ filter ->sql ().') ' ;
538527 }
539- $ sql .= ' AND E.Id< ' . $ event [ ' Id ' ] . ' ORDER BY ' .$ sortColumn .' ' .($ sortOrder =='ASC ' ?'DESC ' :'ASC ' );
528+ $ sql .= ' AND E.StartDateTime < ? ORDER BY ' .$ sortColumn .' ' .($ sortOrder =='ASC ' ?'DESC ' :'ASC ' );
540529 if ( $ sortColumn != 'E.Id ' ) {
541530 # When sorting by starttime, if we have two events with the same starttime (different monitors) then we should sort secondly by Id
542531 $ sql .= ', E.Id DESC ' ;
543532 }
544533 $ sql .= ' LIMIT 1 ' ;
545- $ result = dbQuery ($ sql );
534+ $ result = dbQuery ($ sql, [ $ event [ ' StartDateTime ' ]] );
546535 if ( !$ result ) {
547536 ZM \Error ('Failed to load previous event using ' .$ sql );
548537 return $ NearEvents ;
@@ -551,34 +540,23 @@ function getNearEvents() {
551540 $ prevEvent = dbFetchNext ($ result );
552541
553542 $ sql = '
554- SELECT
555- E.Id
556- AS Id,
557- E.StartDateTime
558- AS StartDateTime
559- FROM Events
560- AS E
561- INNER JOIN Monitors
562- AS M
563- ON E.MonitorId = M.Id
564- LEFT JOIN Events_Tags
565- AS ET
566- ON E.Id = ET.EventId
567- LEFT JOIN Tags
568- AS T
569- ON T.Id = ET.TagId
570- WHERE ' .$ sortColumn .'
543+ SELECT E.Id AS Id, E.StartDateTime AS StartDateTime
544+ FROM Events AS E
545+ INNER JOIN Monitors AS M ON E.MonitorId = M.Id
546+ LEFT JOIN Events_Tags AS ET ON E.Id = ET.EventId
547+ LEFT JOIN Tags AS T ON T.Id = ET.TagId
548+ WHERE ' .$ sortColumn .'
571549 ' .($ sortOrder =='ASC ' ?'>= ' :'<= ' ).' \'' .$ event [$ _REQUEST ['sort_field ' ]].'\'' ;
572550 if ($ filter ->sql ()) {
573551 $ sql .= ' AND ( ' .$ filter ->sql ().') ' ;
574552 }
575- $ sql .= ' AND E.Id> ' . $ event [ ' Id ' ] . ' ORDER BY ' .$ sortColumn .' ' .($ sortOrder =='ASC ' ?'ASC ' :'DESC ' );
553+ $ sql .= ' AND E.StartDateTime > ? ORDER BY ' .$ sortColumn .' ' .($ sortOrder =='ASC ' ?'ASC ' :'DESC ' );
576554 if ( $ sortColumn != 'E.Id ' ) {
577555 # When sorting by starttime, if we have two events with the same starttime (different monitors) then we should sort secondly by Id
578556 $ sql .= ', E.Id ASC ' ;
579557 }
580558 $ sql .= ' LIMIT 1 ' ;
581- $ result = dbQuery ($ sql );
559+ $ result = dbQuery ($ sql, [ $ event [ ' StartDateTime ' ]] );
582560 if ( !$ result ) {
583561 ZM \Error ('Failed to load next event using ' .$ sql );
584562 return $ NearEvents ;
0 commit comments