Это
mysql_query('SELECT * FROM mytable WHERE id < ' . mysql_real_escape_string($id));
будет плохой практикой. Если вы хотите, чтобы это была строка, хотя бы заключите ее в кавычки:
mysql_query('SELECT * FROM `mytable` WHERE `id`<"'.mysql_real_escape_string($id)).'"';
(и, пока вы это делаете, укажите также все имена полей и таблиц, поскольку такие вещи, как id
, могут быть или стать зарезервированными ключевыми словами)
Я бы предпочел приведение, если оно целое. Одним из аргументов в пользу строковой версии будет то, что когда-нибудь идентификатор может быть буквенно-цифровым (как видно на все большем количестве веб-сайтов).