nepster09: запросы такого рода (вложеные) это нормально в определенных случаях. А по пункту 3 да, будет один запрос на историю, и затем по одному на каждый тип действия с выборкой сразу всех нужных айди, и затем снова обработка массива истории для того чтоб собрать данные в нужном формате.
Union из себя представляет не ждойн как таковой, а грубо говоря склейку данных
выбираем один тип данных
выбираем второй тип данных, и лепим в конец первый выборки
выбираем третий тип данных и лепим в конец второй выборки
...
выбираем Н-ный тип данных и лепим в конец Н-1 выборки
В итоге у вас получается один результат, но из разных таблиц
nepster09:
1. можно использовать вложенные запросы в селекте при ифе в зависимости от поля (будет поле операции) (да, с джоинами не туда меня понесло)
2. можно хранить разные виды операций в разных таблицах, и выбирать их вместе с помошью UNION
3. можно использовать вариант что я писал выше, выбирая отдельно операции, и отдельно перебирать айдишники и отдельно их выбирать (пользователь, переводы итд)
лично я бы в таком порядке пробовал, первые выбирает все данные сразу, видно что откуда идет, но может быть медленней, второй очень гибкий (можете добавлять безболезненно новые действия), но разные данные лежат в разных местах, третий это уже просто потому что надо :)
nepster09: все по одному делать, зачем вам знать все записи поднятые в топ в одной строке? одно действие, одна запись, тогда один раз выбираете все данные из основной истории, джойните пользователей, обьявления итд, просто чтоб иметь возможность подставить айди
ruboss: подделать можно все, при соединении достоверно лишь само соединение, все остальное сервер сам шлет чтоб себя идентифицировать. Наверняка вы ничего не можете знать, нужные люди даже айпи могут подменить. идентификация сайта происходит через заголовки, а это просто текст.
hdtor: если вам нужен результат гарантированный, то при ошибке запроса нужно сделать повторный, это не ошибка пхп, он явно говорит что это ошибка соединения, это сетевая ошибка.
Как вариант можете попробовать другие библиотеки, вплоть до того же file_get_contents, но всеравно это все проходит через сокет, и если есть ошибка соединения, то такое будет постоянно.
Владимир Грабко: говорю же не все рутины сообщают в канал о завершении, иначе все работало бы. Просто выведете в консоль начало и конец работы рутины, и поймете какая запинается.
junart: подключение каких файлов? Скриптов или форм? Вам форма нужна, на сколько я понял, форму по другому не подключите, если другой сервер явно не разрешил вам это сделать
cijiw: не, он понимает разницу, жс код будет текстом внутри тега, он даже имена тегов сообщает, умная штука, но уровень парсинга - вот тебе конструктор, сделай сам
cijiw: там ведь нет регулярных выражений, там го предлагает механизм токенов, он сам говорит где начало/конец тега, остается лишь перебрать весь текст посимвольно и собрать себе дерево хтмл, сохранить все элементы для удобного поиска/перебора и при надобности иметь возможность быстро находить нужные элементы. Это все предстоит сделать самому, есть библиотеки которые это делают за вас.
Игорь Николаевич: для этого надо проверять всех родителей элемента по которому произошел клик и если среди них нет самого селекта, то закрывать его.
while (node.parentNode != null && node.parentNode != select){ node = node.parentNode }
Артем Сошников: Возможно так происходит если подключить локальную папу в контейнер, попробуйте наоборот, подключить удаленную папку как локальный диск.