Задать вопрос
Ответы пользователя по тегу SQL
  • Как правильно вывести комментарии с записью?

    Acuna
    @Acuna
    Заполнил свой профиль
    Самое изящное решение, чтобы как в варианте выше не тянуть за каждой записью кучу комментов (ибо представляете, сколько тогда будет запросов, если на странице будет, например, 20 записей, к каждой из которых добавлено по 10-20 комментов) заключается в том, что в таблице нужно создать колонку `parent` и заносить туда единицу, если коммент добавляется из поля ввода новой записи, иначе, если из поля, открываемого по ссылке "Ответить" - 0. Это будет означать по сути ответ на родительский коммент, который и является записью на стенке (ибо чем не запись? Текст есть, картинка есть). При выводе комментов просто выводите записи со значением `parent` = 1 другим шаблоном, например comment_parent.htm, если шаблонизатор у Вас свой - типа с серым фоном, более крупным текстом, и т. д. А комменты - comments_answer.htm. В БД создаете колонку `thread_id`, куда заносите `id` коммента, если это запись, и его же, при добавлении коммента к ней, просто получая `thread_id` родительского коммента. И самое главное - при выводе сортируйте их по thread_id и id коммента одновременно:

    ... AND `position` <= "3"
    ORDER BY `thread_id` DESC, `id` ASC
    LIMIT 0,20

    Это поможет сгруппировать их в нужном порядке, причем не прибегая к GROUP BY, выводя помимо самой записи три последних коммента к ней. Писал экспромтом, реализовал относительно давно, детали опустил, но главное, что суть передал. При наличии определенных навыков и главное понимания сути это все реализовывается относительно просто. Для того я саму суть и изложил, что бы Вы поняли сам принцип. А реализация осуществляется конкретно для проекта.
    Ответ написан
  • Медленный запрос SQL, как его оптимизировать?

    Acuna
    @Acuna
    Заполнил свой профиль
    А что мешает из каждой таблицы удалять нужные строки отдельными запросами? Ведь это буквально доли секунды на каждый запрос, даже если индексов вообще нет. Ну и да, индексы проставить нужно в любом случае.

    P. S. Ну а вообще, сколько я вижу дебри OpenCart, все больше склоняюсь к мысли, что ее разработка началась еще когда разраб учился в школе... Грустно это все...
    Ответ написан
    Комментировать
  • Какие есть книги хорошие книги на английском языке по программированию PHP + MySQL?

    Acuna
    @Acuna
    Заполнил свой профиль
    Писал тут уже по этой теме не один раз. Книги Вам мало чем помогут, ибо в любом случае самый эффективный способ разучивания языка (любого, не обязательно программирования) - это практика. Много. С параллельным штудированием php.net. Сей ресурс должен быть Вашей настольной книгой. И так как практики должно быть не много, а очень много - займитесь разработкой сложного проекта. Да, прям так сразу. Постепенно учитесь писать интернет-магазин, полноценный торрент-трекер, а лучше сразу свою CMS. Качество кода Вашей поделки оставит желать лучшего, да и скорее всего Вы никогда даже не выкатите ее в продакшн (хотя свою CMS я все-таки выкатил, когда писал ее все свое время учебы в универе), постепенно Ваш опыт будет расти и Вы будете только и заниматься ее рефакторингом, да и ценность она будет иметь разве что историческую, однако все это даст Вам ценнейший и не сравнимый ни с чем опыт программирования в бою. А там уже и работать сможете идти после этого. А теория без практики мало чем ценна. Наглядный пример - лекции в универах. Какие у нас теперь специалисты? Вот-вот.
    Ответ написан
    1 комментарий