You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DESCORDER BY puppies.birth_date DESC LIMIT 0, 12' at line 21: SQL: SELECT puppies.*, CONCAT(breeders.firstname, " ", breeders.lastname) AS breeder_name, breeds.name as breed_name, breeds.breed_msg, ROUND((UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(puppies.birth_date)) / 86400 / 7) AS weeks_old, IF(NOW() <= DATE_ADD(order_date, INTERVAL 24 HOUR), "1", "0") AS purchased, puppies_photos.filename AS photo_filename FROM puppies INNER JOIN breeders ON puppies.breeder_id = breeders.breeder_id INNER JOIN breeds ON puppies.breed_id = breeds.breed_id LEFT JOIN (SELECT * FROM puppies_photos ORDER BY zorder, photo_id) AS puppies_photos ON puppies_photos.puppy_id = puppies.puppy_id AND puppies_photos.photo_type = "Puppy"LEFT JOIN orders ON orders.order_id = puppies.order_id LEFT JOIN puppies_transports AS pt ON pt.puppy_id = puppies.puppy_id WHERE puppies.active = 1 AND puppies.active = 1 AND ( ( NOW() <= DATE_ADD(puppies.order_date, INTERVAL 24 HOUR) AND puppies.order_id = 0 ) OR ( NOW() <= DATE_ADD(pt.grnd_arvl_date, INTERVAL 24 HOUR) AND pt.grnd_arvl_date IS NOT NULL AND pt.grnd_arvl_date != "0000-00-00" ) OR ( NOW() <= DATE_ADD(pt.flht_arvl_date, INTERVAL 24 HOUR) AND pt.flht_arvl_date IS NOT NULL AND pt.flht_arvl_date != "0000-00-00" ) OR ( (puppies.order_date IS NULL OR puppies.order_date = "0000-00-00") AND puppies.order_id = 0 ) OR ( puppies.order_id != 0 AND pt.flht_arvl_date IS NULL AND pt.grnd_arvl_date IS NULL ) ) GROUP BY puppies.puppy_id DESCORDER BY puppies.birth_date DESC LIMIT 0, 12