это не придирки. ты постоянно пытаешь сузить область обрабатываемых значений - то гетом и постом, то пользовательским вводом. На самом деле источник данных здесь вообще не играет никакой роли, и упоминать его нет смысла
В первую очередь тебя должно интересовать, как отобразить на странице 35 уровней вложенности. Вот это - реальная проблема. Потому что при возможности комментаторы займут все уровни. Но вот как это будет выглядеть на странице, и можно ли это будет читать - вопрос, на который жетательно ответить заранее
есть. function sanitizeString - это такой же говнокод, как и все остальное, в реальной жизни неприменимый. для добавления переменной в запрос должны использоваться только подготовленные выражения.
не знаю, я бы не стал такое городить. если путь строится из айдишников, то сортировка по пути как раз и построит нужное дерево без всяких корневых комментариев
Во-первых, mysql_query не может породить ошибку само по себе. То есть, при ошибке SQL ты вместо нее увидишь только бессмысленный варнинг от mysql_fetch_row. у mysql_query всегда надо проверять результат. Во-вторых, сама по себе ситуация, когда одна функция лезет на другую - это признак глупости и непрофессионализма. Экономить на строчках таким образом не нужно. Если хочешь сократить код - напиши функцию, в которую и положи повторяющийся код.. Места займет меньше, а работать будет лучше. И в-третьих, внезапно Большой Красный Баннер по ссылке php.net/mysql_query Ну, и если говорить о запросе, то WHERE login='$login'" - это классическая SQL инъекция.