public function getNextJournal() { $tripId = db_sql_encode($this->tripId); $journalId = db_sql_encode($this->journalId); $created = db_sql_encode($this->created); $query = "" . "SELECT * " . "FROM blogJournal " . "INNER JOIN (" . "SELECT " . "MAX(t1.updated) AS updated, " . "t1.tripId as tripId, " . "t1.journalId as journalId " . "FROM blogJournal " . "AS t1 " . "GROUP BY t1.tripId, t1.journalId " . "HAVING t1.tripId = {$tripId} " . ") AS t2 " . "WHERE blogJournal.tripId = t2.tripId " . "AND blogJournal.journalId = t2.journalId " . "AND blogJournal.updated = t2.updated " . "AND blogJournal.deleted != 'Y' " . "AND ( " . "( " . "blogJournal.journalId = {$journalId} " . "AND blogJournal.created > {$created} " . ") " . "OR " . "( " . "blogJournal.journalId > {$journalId} " . ") " . ") " . "ORDER BY blogJournal.journalDate ASC, " . "blogJournal.created ASC " . "LIMIT 1"; // print $query . "\n"; $result = mysql_query($query); if (!$result) { // Error executing the query print $query . "<br/>"; print " --> error: " . mysql_error() . "<br/>\n"; return null; } if (mysql_num_rows($result) <= 0) { // Object does not exist return null; } // Create an instance with a special ID '-' to bypass the // checks on empty ID. The ID value will be overwritten by the // value coming back from the database anyway. $object = new Journal('-', '-'); if ($object->loadFromResult($result)) { return $object; } return null; }