@mkramer И все же я выбираю prepare так как в принципе мне сейчас без разницы как вытащить данные главное чтобы корректно работал запрос, и лишняя строка $blabla->execute мне не мешает, ну честное слово, @mkramer без обид. Да и я думаю еще так, что query что prepare по скорости будут одинаковыми) И вообще не буду спорить ты же лучше знаешь, а я новичек в этом деле.
Ну и нахрен тогда мнения спрашиваешь? Делай как знаешь. Если бы я проводил собеседование, и ты мне такой код на собеседовании написал, я бы тебя сразу послал. Вот в ту же секунду.
я в конце мог добавить типа PHP: WHERE du.`user_id` = :user_id'); $all_dialogs->execute(['user_id'=>$user_id]); вот тебе и один плейсхолдер ну а вообще в этот запрос не как не поставить плейсхолдеры, потому что нет переменных которые буду передаваться через execute. плюс в запросе идет сравнения полей чтобы поля что в той табл что в той табл совпадали. Ну я учту это замечание, переделаю запрос наверно под query а как же данные защитить проэкранировать в запросе?
Если бы было так написано, то я бы слова не сказал. Есть люди, которые даже константы так в запрос вставляют. Я к ним не отношусь, но логика видна - если потом вместо константы надо будет подставить переменную, запрос не надо будет менять. Как это нет, ты только что написал
@mkramer Так значит если бы я так написал бы раньше, тебя бы на собеседовании это устроило бы, и претензий не было что ли, я правильно понимаю? Ты меня обрадовал) Так теперь есть переменная чтобы передавать ее через execute, это уже понятно. Подскажи ка мне если знаешь как можно скорость скрипта или запроса проверить?
@mkramer ага спасибо, почитаю применю, когда надо будет проверить скорость скриптов. Как думаешь что можно добавить еще в скрипт вывод диалогов, кроме последнего сообщения и диалогов с логином. ну понятно кнопка на удаления диалога и кнопка на открытие диалога.
Добавь поиск по диалогам. Поиск диалога по имени собеседника. Поиск по сообщениям внутри диалога. Диалог между 3-4 пользователями. Да фантазировать долго можно.
@mkramer ухты не фига себе) точняк я не когда не делал поиск это же будет SELECT запрос, на поиск? А диалог между 2мя тремя пользователями это можно реализовать с моими таблицами или же поля и таблицы надо будет добавлять?
@mkramer Привет как можно сделать такое. Вот вывожу последние сообщение и мне надо вывести на экран не целое сообщение а лишь часть его, ну а при клике на него открывалось полное сообщение?
Не надо знать, надо уметь найти в документации, какой функцией это делается. --- Добавлено --- Задача может возникнуть любая в процессе работы, и ты должен сам находить решение, а не бегать на форум. Это же долго - написать сообщение, ждать ответа, так ты ни в один дедлайн не уложишься никогда.
@mkramer Не могу додуматься как же сделать прочтения диалога. Примерно думаю так: в таблицу dialogs добавить поле status где 0 это будет прочитано, а 1 не прочитано. И вот тут ситуация такая, когда кто то пишет например: юзер1 пишет и в таблицу записывается его id_sender а status какой поставить при вставки диалога 0 или 1, я считаю так для того кто пишет оно считается прочитано то-есть 0 а как буду определять тому кому мы пишет юзер1 что у принимавшего юзера есть не прочитанный диалог если status стоит уже в 0 то-есть прочитано. Или же когда юзер1 пишет записываем его id_sender и status в 1 то-есть не прочитано. Помогите пожалуйста мне не пойму реализацию.
Тебе надо чтоб диалог отмечался прочитанным, или сообщения? Я через доп. таблицу делал отметку прочитан ли диалог и кем.
@mkramer Ну логично, если у меня диалог без примочек, от кого и кому. То мне нужно чтобы прочтения было самого диалога, до сообщений позже дойду. Как это можно реализовать? А моя мысль вообще не подходит?
А ты как думаешь? Особенно учитывая, что ты взял мою схему связи диалога с пользователем. Одним пользователем прочитано, другим не прочитано. А сама таблица диалог в варианте, который ты с моей подсказки взял, этих пользователей не хранит (и это нам дало определённые преимущества, насколько ты помнишь).
@mkramer Почему не хранит, все же отправителя хранить, а точнее его id. Походу ты ведёшь к тому что надо ещё одна таблица с тремя полями: sender, poluchatel, status. И эта таблица будет связана с таблицей dialogs. Это лишь предложение. Теперь твоя мысль.
Почти. user_id, dialog_id, has_read --- Добавлено --- Не утверждаю, что это лучшее решение, но самое простое и масштабируемое из тех, что удалось найти мне.
@mkramer Допустим создаю таблицу dialog_read (user_id, dialog_id, has_read) я так понял в этой таблице не нужен id нумерация. user_id - чей сюда будем вставлять dialog_id - ну понятно номер диалога has_read - будет ли у него по умолчанию стоять значение?