Я задам простой и банальный вопрос, но он может вам помочь если правильно подойти к вопросу. А ВАМ ТОЧНО НАДО ИМЕННО ТАК ОРГАНИЗОВАТЬ РАБОТУ? Вы бы описали что делаете, в 90% случаев такое решение оказывается не нужным.
Кирилл Горелов: ну как может не влиять, представь что ты упаковываешь метровые швабры в 3х метровые коробки, умно? И хранить удобно и компактно, правда? Так и выборка будет проблемней и медленней если не ставить правильные значения, все придумано не дураками и не просто так.
viktorleg: очень просто, я вижу как минимум 3 варианта реализации, как и любой нормальный программист, что используется у вас не известно, по этому и спрашиваю - вы хоть что то в коде понимаете или поставили и больше ничего не трогали?
BitRouter: чтобы вы понимали - мускуль(как и любая бд) не хранилище логики, это хранилище данных. Да, там есть встроенные механизмы сортировки, подсчета и вычислений, но основная задача - хранение и доступ к данным. Такая структура как описана у вас, скажем так, для опытного глаза несет печать ущербности, то есть если нужна какая-то серьезная логика просто для хранения - значит что то не так сделано. Просто для информации.
WantToKnowWhatIsWebDev: ну, как мы видим - к базе данных доступ есть, в смысле линк, соответственно хорошие новости: пдо работает и хост и бд указаны верно. Плохие новости - логин или пароль неверные, а может и оба, смотрите в панели хостера какой логин и пароль у вас бд, обычно они отличаются от логина и пароля к панели хостинга.
Константин: выгоднее вытащить все, положить в массив и оттуда достать нужную ветку, сколько это займет зависит от размера дерева, но обычно категорий много не бывает, ну пару сотен если это очень большой магазин. Массив на 200-300 элементов - не смешите мои тапочки, это вообще не нагрузка.
Евгений: тут мы немного о разном, я к тому что нет разницы в том где делать сортировку или другой какой-то код, вопрос как это должно работать - код выполняется внутри объекта, при этом в итоге достаточно 1 вызова метода класса, чтобы все сделать. Производительность на объектах, как ни странно, в последних версиях даже слегка быстрее, за счет опкода и сокращения используемой памяти. Простой пример - вы грузите в память ВСЕ функции которые вам понадобятся, я гружу только необходимые в данный момент объекты с их методами(еще и меньшими по объему, т.к. они четко привязаны к объекту и менее "универсальны"). Скорость работы кода будет даже выше, за счет сокращения чтения всех ваших функций.
Евгений: Чет слабо понимаю суть вопроса, почему это не возможно в 1 проход? Просто это не всегда рационально, но возможно, прямо в геткомментс сортируйте как нравится и пришите уже сортированный в $this>comments_array[]. Просто это не всегда нужно, значит можно разбить на отдельные методы. Плюс такого подхода - модульность, завтра у вас поменяется система хранения, допустим будет не плоская, а нестед сет ветки комментариев, менять придется только небольшой кусок, где сортировка. Когда проект хоть как то растет или развивается - это АХРЕНЕННОЕ преимущество по скорости разработки.
Наталия: дай то бог, а то это просто адский ад какой-то, я так в начале 90 учился, ясное дело тогда не было нормального ооп, да и книг нормальных днем с огнем, но сегодня инфы нормальной море, все под ооп заточено, учитесь сразу правильному стилю.
Arik: Это самый правильный путь, скажем так - для удобства вы можете создать 2 модели(допустим чтобы проще визуально воспринимать и разделять логику), но записи в базе будут в одной таблице, т.к. в храниении данных разницы нет, значит они ничем не отличаются кроме 1 поля в бд, и, соответственно, различий не больше чем между машинами разных цветов.
Maximys781: Слабенько понял, уж извини, но твой вопрос и комментарии говорят о том что в понимании процесса у тебя огромная дыра, то есть для начала почитай как работает, потом уже пытайся написать. Понимания как работает серверсайд и объекты у тебя нету, отсюда и вопрос, который смотрится как "я в ухе гвоздиком ковырял - бац, звук у телека пропал, как починить телевизор?". Надо понимать что от чего работает, а не куда тыкнуть что бы заработало.