Задать вопрос
  • Почему в Safari обрывается соединение с websocket'ом?

    @viktorross Автор вопроса
    Radiks Alijevs а нет, сейчас снова резать соединения начал
    Написано
  • Почему в Safari обрывается соединение с websocket'ом?

    @viktorross Автор вопроса
    Radiks Alijevs Это работает, спасибо огромное
    Написано
  • Почему в Safari обрывается соединение с websocket'ом?

    @viktorross Автор вопроса
    Everything_is_not_so_bad, там же по факту живой чат, сообщение не отправляется и создается впечатление, что сайт сломался
    Написано
  • Почему в Safari обрывается соединение с websocket'ом?

    @viktorross Автор вопроса
    Everything_is_not_so_bad, так в том -то и дело, что я не знаю как это соединение удерживать или переподключаться каждые 30 секунд , просто оно слетает и как бы и все, пока страницу не обновишь кнопкой перезагрузки ничего не работает..
    Написано
  • Как правильно разбить массив на ключи и значения?

    @viktorross Автор вопроса
    Vitsliputsli, думал об этом, но там структура eav и получается так что в одной таблице хранятся настройки, а из второй таблицы тянется куча строк соответствующих id товаров, затем идет группировка списка товаров по id, вот и получается, что прямо в запросе формируется список тех самых значений из второй таблицы, не знаю правильно ли это , но работает быстро, а так конечно не очень удобно
    GROUP_CONCAT(CONCAT(`caption`, '=' , `value`)) as all_fields
    Написано
  • Как правильно разбить массив на ключи и значения?

    @viktorross Автор вопроса
    Mylistryx спасибо большое)
    Написано
  • Как составить запрос для поиска в бд mysql?

    @viktorross Автор вопроса
    mrfreeman2, спасибо огромное за помощь, теперь все четко работает))
    Написано
  • Как составить запрос для поиска в бд mysql?

    @viktorross Автор вопроса
    mrfreeman2 вчера как раз смотрел и понял в чем суть проблемы была. В скрипте нужно подсчитать только уникальные ключи, которые будут здесь вместо 2, а я считал общее количество ключей, вместе с дублями, сразу не понял в чем проблема, спасибо всем за помощь
    HAVING COUNT( DISTINCT class_table2.caption) = 2

    Теперь есть еще один нюанс, мне нужно в этом же запросе добавить числовое сравнение типа 'text' >= '157', через
    and ( `class_table2`.caption = tip_field and `class_table2`.value >= 157)
     and (class_table2.caption, class_table2.value) in
          (('tip_field', '1'), ('tip_field', '2'), ('text', 'test'), ('text', 'test2'))
    не работает. Как эту проблему решить можно?
    Написано
  • Как составить запрос для поиска в бд mysql?

    @viktorross Автор вопроса
    mrfreeman2, в таблице 1 настройки, в таблице 2 характеристики по типу ключ = значение (поле caption и поле value), если ключ и значение совпадает, то выдается результат из первой и второй таблиц связываются по id. Проблема в том, что допустим caption = color и value = зеленый существует в таблице, а если выполнить поиск с двумя вариантами значений в одном списке «in», то уже ничего не найдется , т.е второй вариант будет caption = color и value = красный, почему при этом не находятся записи с существующим совпадением caption = color и value = зеленый , и как это решить?
    Написано
  • Как посчитать количество строк с group by'ом?

    @viktorross Автор вопроса
    Спасибо, но выдает ошибку #1248 - Every derived table must have its own alias
    я сделал так, вроде бы работает , не уверен правда грамотное ли это решение
    select sum(couaant) from ( 
    SELECT class_a.id,  (select count(*) from class_a where class_a.id = `class_p`.p_id) as couaant
        FROM class_a 
        LEFT JOIN `class_p` 
        ON `class_a`.id = `class_p`.p_id
        WHERE class_a.cat_id = 1
        AND (`caption`,`value`) IN (('type','1'), ('type_2','2')) 
        GROUP BY class_a.id 
        HAVING COUNT(DISTINCT caption, value) = 2
    )
    Написано
  • Как посчитать количество строк с group by'ом?

    @viktorross Автор вопроса
    viktorross, а вот если завернуть в select sum(count) from ( …), то считает все в одну строку, не знаю правильно ли это конечно
    Написано
  • Как посчитать количество строк с group by'ом?

    @viktorross Автор вопроса
    kisaa, так тоже 20 строк высыпается, только значение count’ов уже 1 , а не 2
    Написано
  • Как внутри массива найти значения с разделителем и разбить эти строки?

    @viktorross Автор вопроса
    Михаил Ливач ThunderCat Спасибо, но у меня все равно проблема с реализацией, сначала я удаляю пустые значения, затем убираю ненужные значения из запроса, а уже потом привожу значения в тот вид, в котором в дальнейшем надо будет занести в бд. Однако, получается так, что array_filter удаляет и значения типа field_4 = Array, я так понимаю, что их нужно разложить внутри foreach циклом while, именно в таких полях хранятся значения типа "1|2|3|4"
    Как во-первых их не удалить или куда перенести array_filter и как конкретно найти потом такие поля 1|2|3|4" и разложить их внутренним циклом чтобы каждое такое значение приобрело вид field_4 = 1;field_4 =2;field_4 =3;field_4 =4; ?
    в конечном счете я хотел получить вот такой результат

    field_4 = 1;field_4 =2;field_4 =3;field_4 =4;field_5 = привет;field_6 = пока;field_7 = что-то еще;field_7 = что-то еще 1111;

    $del_keys = array('field_1','field_2','field_3');
    $i = [];
    foreach (array_filter($list,"trim") as $key => $elem) {
    if(!in_array($key, $del_keys )) {
    $i[$k] = $key.'='.$elem;
    }
    }
    var_dump($i);
    Написано
  • Как грамотно сделать поиск по фильтрам и где хранить характеристики?

    @viktorross Автор вопроса
    ThunderCat, спасибо, сейчас как раз вернулся к этому моменту. Я все равно не совсем понимаю как именно мне производить поиск по товарам и как выстроить цепочку запросов для поиска, просто по тому как я это понял, у меня получится огромный список Id товаров, который разве что получится в конечном счете вставить в IN, но это тоже не вариант, товаров будет например 500 , это не выход. Сейчас у меня бд(MySQL) выглядит так, таблица со списком фильтров связанная с категориями и таблица с товарами, когда человек выбирает фильтры, то названия полей в таблице с фильтрами имеют такое же название в таблице с товарами, ну и соответственно так и ищу. Но я не понимаю как должна выглядеть промежуточная таблица в которой будут храниться свойства товаров? К одному товару 50 записей что ли добавлять на каждую позицию? Например таблица будет иметь 3 столбца(product_id, name_filter, attribute), допустим я буду искать в этой таблице по названию фильтра и атрибуту, допустим что-то найду, например 500 записей, получу их product_id, а дальше что с этим делать? Вставить 500 штук Id в in и вытащить эти товары из таблицы где хранятся все товары? В конечном счете получается все равно очень тяжелый запрос, на этом моменте торможу, или вообще должна быть другая логика?

    ___
    Сейчас подумал ещё, как вариант left join’ом тянуть совпадающие Id, на сколько это сложные будут запросы?
    Написано
  • Как грамотно сделать поиск по фильтрам и где хранить характеристики?

    @viktorross Автор вопроса
    Ипатьев, т.е если я создам в одной таблице 1500 полей, если это вообще возможно, то никаких дополнительных нагрузок и особых проблем не возникнет? Мне казалось, что поиск сразу по 10 -15 полям в таблице с 200 полями медленнее, чем скажем в таблице в которой 50-70 полей. Сколько вообще в MySQL максимум полей может быть на одну таблицу, где-то написано 4096, где-то 266? Если потребуется больше, чем доступно, добавлять ещё одну таблицу и просто искать уже по полям из 2 таблиц? Например в одной будет тогда 4096 полей и в другой ещё столько же, хотя поиск по факту будет исключительно по максимум 10-20, нормально все пройдёт? Просто не хочется зря время потратить, и потом переделывать
    Написано
  • Почему постраничный вывод данных из бд не работает?

    @viktorross Автор вопроса
    Ипатьев, ну получается по 24 записи на каждую страницу, т.е 3 страницы 72 записи, а как вывести остальные 10 записей, которые должны уйти на следующую страницу по идее?
    Написано
  • Как отправить файл через js на сервер?

    @viktorross Автор вопроса
    Михаил Р., Mikhail Osher
    удалось преобразовать файл с помощью Uint8Array, теперь задача превратить эти данные в файл на стороне сервера

    Uint8Array(200553) [255, 216, 255, 224, 0, 16, 74, 70, 73, 70, 0, 1, 1, 1, 0, 96, 0, 96, 0, 0, 255, 219, 0, 67, 0, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 3, 2, 2, 3, 3, 6, 4, 3, 3, 3, 3, 7, 5, 5, 4, 6, 8, 7, 9, 8, 8, 7, 8, 8, 9, 10, 13, 11, 9, 10, 12, 10, 8, 8, 11, 15, 11, 12, 13, 14, 14, 15, 14, 9, 11, 16, 17, 16, 14, 17, 13, 14, 14, 14, 255, 219, 0, 67, 1, 2, 3, 3, 3, 3, 3 ........
    Написано
  • Как отправить файл через js на сервер?

    @viktorross Автор вопроса
    IvanU7n, спасибо, это уже увидел, не понятно только теперь как превратить файл в бинарные данные, я так понял с помощью arraybuffer, но больше информации не нашел по поводу его применения в моем случае и тем более как в php обратно собрать в файл
    Написано
  • Как отправить файл через js на сервер?

    @viktorross Автор вопроса
    IvanU7n, это websocket, вы правы, в этом и причина видимо
    Написано
  • Как отправить файл через js на сервер?

    @viktorross Автор вопроса
    Сергей delphinpro conn это подключение в websocket, в целом media отправляется и в моем варианте на сервер в качестве массива, вопрос в другом, как из этого массива извлечь правильно файл, потому что я пытался по разному, но в бд идет вставка либо array, либо null ..
    Написано