• Нужно ли выполнять асинхронные запросы чтоб ускорить выполнение кода на PHP?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    В теле цыкла происходит обращение к таблицам базы данных,
    Запросы в цикле - зло, нельзя заниматься фигней ради фигни. Переписать код на 1 нормальный запрос, и уже с выборкой работать. Тогда код будет выполняться за приемлемое время и никаких костылей не понадобится. Понимаю что "так проще". Но так делать нельзя.

    ЗЫ: Встал цыган на цыпочки и цыкнул на цыпленка в цыкле... ))
    Ответ написан
  • Как вставить несколько записей в бд?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    При проверке var_dump($country_id); мне приходит массив с значением NULL
    Ок, а проверить таким же способом $_POST что мешало?

    Путь должен быть от корня сервера, а не просто имя вызываемого файла.

    echo "<option =". $row["id"] . "selected>" . $row["name"] . "</option>";
    Так у вас получается что ВСЕ опции при старте уже выделены... кроме того - откройте код странички и посмотрите что у вас в value попадает, не факт что там есть значения.
    Ответ написан
    Комментировать
  • Подойдет для простого букинга?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Для ООООЧЕНЬ простого букинга с большой натяжкой.

    Не вижу собсно отелей (или он будет один? Тогда это не букинг, а бронирование в отеле)

    Не вижу типов комнат (возможно это сайт бронирования конкретной квартиры покомнатно?)

    Эмоунт - это деньги? Тогда тип флоат не подходит.

    Что за фючеред_имэйдж? еще и интежер...

    Где опции в номере? Или в комнатах квартиры все удобства на улице и это где то отдельно текстом прописано?

    Короче пока на 2 с плюсом...
    Ответ написан
    6 комментариев
  • Как сделать живой поиск по массиву и вложенным массивам?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    filteredData = data.((t) => t.name.toLowerCase().includes(search.value.toLowerCase())
    Во первых не хватает скобки закрывающей, странно что у вас вообще что-то работает.
    во вторых - любая работа с массивом (а если уже совсем придираться, то у вас не массив, а объект, но не суть) - цикл, даже если он замаскирован под мап/фильтер, а любой вложенный массив - рекурсия. Соответственно пишете рекурсивную функцию.
    В третьих - вам вроде нужен массив строк(?), а фильтр вернет массив элементов, что вообще не рядом. По этому скорее всего вам нужен не filter, а просто цикл с возвратом строки.
    Ответ написан
    Комментировать
  • Массив данных на электронную почту?

    ThunderCat
    @ThunderCat Куратор тега HTML
    {PHP, MySql, HTML, JS, CSS} developer
    ('moe_milo@mail.ru', $phone, $email, $car, $message "Content-type:text/plain; charset = UTF-8\r\nFrom:$email");

    1) Отсутствует запятая после $message
    2)$mes нигде не используется, зачем она вообще?
    3) Заголовок From говорит о том что почта отправки абсолютно левая, скорее всего такое отправление зарежется на первом же релее как фейковый мэйл, надо указывать существующий локальный адрес.
    4) mail вообще не обязан работать на хостинге, так как во первых должен быть настроен в пхп.ини, а во вторых часто просто выключен хостером для избегания попадания в спамлисты.
    5) Используйте пхпмэйлер или свифтмэйлер, они более настраиваемые и менее капризные, и в плане отладки проще.
    Ответ написан
    Комментировать
  • Как правильно сделать такой поиск?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Учимся думать:
    $search   = _string($_POST['search_string']);
    $sql = '
    SELECT * 
    FROM `chat` 
    WHERE `user_id` IN (
       SELECT `id` 
       FROM `users` 
       WHERE `login` LIKE "'.$search.'%"
    ) 
    ORDER BY `time` 
    DESC '; // делаем запрос отдельной строкой,
    var_dump($sql);
    //вставив в него переменную убеждаемся что там ерунда
    
    //пишем нормально
    $search   = $_POST['search_string'].'%';
    $sql = '
    SELECT * 
    FROM `chat` 
    WHERE `user_id` IN (
       SELECT `id` 
       FROM `users` 
       WHERE `login` LIKE ?
    ) 
    ORDER BY `time` 
    DESC '; 
    $stmt = $mysqli->prepare($sql);
    $stmt->bind_param('s', $search);
    $chat_result = $stmt->execute();
    while ( $row = $chat_result->fetch_assoc() ) {
        echo $row['user_id'].'<hr>';
    }


    ps: и нет смысла делать серч через пост запрос, лучше через гет, так поисковый запрос можно например переслать или скопировать и переиспользовать.
    Ответ написан
  • Почему не проверяется ответ с сервера JSON?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    dataType: 'text', соответственно сукчес примет данные как текст и никакого объекта со свойством status там нету, проверка даст фалс.
    Ответ написан
    1 комментарий
  • Как грамотно реализовать пагинацию через класс?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Еще раз: Тут нет никакого ооп, у вас получается какой-то процедурный код, засунутый внутрь класса. Это к ооп не имеет никакого отношения. Не пытайтесь сделать деревянную печку, ничего хорошего не получится.
    У вас:
    Код реализует (такой себе) пэйджинг для одного конкретного запроса (нахрена такой пейджинг засовывать в класс?)
    Код ничего не инкапсулирует, тупо выполняется как функция. По сути если мы уберем class Paginate extends Connection{ то ничего не поменяется.
    Внутри методов используются глобальные переменные (GET), что само по себе уже лютый говнокод.
    Много слов про солид и прочие вещи из ооп не пишу, в виду полного их отсутствия в коде, да и смысл?

    По этому решения для вашего случая в контексте ооп просто нет, так как:
    Пэйджинг работает с моделями на основе ОРМ, в пэйджинг в качестве аргумента передается модель, и далее уже пэйджинг работает с моделью, используя ее методы работы с хранилищем, а не просто тупо фигачит запросы. У вас моделей просто нет.
    Модели подразумевают конкретный интерфейс, который позволяет работать с пэйджингом адекватно. Ну и моделей нет ))
    Точкой взаимодействия между моделью и пэйджингом будет контроллер, про который тут вообще у вас никто не в курсе.
    Вывод (view) никогда не пересекается с кодом логики, в него просто передаются готовые данные, после чего они вставляются в нужные точки шаблона.
    Ответ написан
  • Как сделать границу меньше контента?

    ThunderCat
    @ThunderCat Куратор тега CSS
    {PHP, MySql, HTML, JS, CSS} developer
    Я пытался это исправить через border-bottom-width
    Документация для слабаков, да...
    Спойлер - "ширина" бордера справа-слева-сверху-снизу отражает толщину линии, а не протяженность по стороне.

    Самое простое решение - убрать бордер снизу, положить див в нужное количество пикселей высотой с нужной заливкой и шириной и дать маржин авто.
    Ответ написан
    Комментировать
  • Как сделать загрузку изображения, обрезку и размещение на фон?

    ThunderCat
    @ThunderCat Куратор тега CSS
    {PHP, MySql, HTML, JS, CSS} developer
    Нужно сделать удобный инструмент загрузки картнки (input)
    Собственно инпут чем не устраивает?

    с дальнейшей обрезкой (crop)
    Любой плагин, которых миллион

    чтобы в конце картинка помещалась на фон блока div.
    Я так понимаю на сервер ее загружать не нужно? Тогда зачем вообще кроп, бэкграунд можно и так настроить достаточно гибко, как по позиции, так и по размерам.
    Ответ написан
    Комментировать
  • Идет ли время куки, когда пользователь на сайте?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Во первых - куки кукам рознь, например время сешн_ид обновляется автоматически при любом запросе к серверу. Если у вас собственная реализация куки авторизации, то ваш "закат солнца вручную" будет работать так как вы сами задумаете.
    Ответ написан
    Комментировать
  • Как написать модуль для работы с бд?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Как я понимаю мне нужно, чтобы все хранилища реализовывали методы интерфейса getOne, set.
    Вообще репозиторий должен реализовывать стандартный CRUD (по сути getOne это read, а set смесь create + update), а в него передается модель для манипуляций, из модели уже можно, в зависимости от реализованного хранилища, брать нужные данные, для бд айди, для лс ключ (хотя по сути это одно и то же, ничего не мешает вам хранить в лс цифровые ключи, если это у вас действительно хранилище, а не справочник/кэш).

    Кроме того, не совсем корректно объединять кей-валуе хранилище с реляционным общим интерфейсом, так как функционал последнего на порядок шире и интерфейсом первого никак не покрывается. Разве что у вас действительно будет РБД использоваться чисто как кей-валуе, во что слабо верится.

    загадкой остается только как у вас будет работать бд на фронтенде (firebase?) или лс на бэкенде...
    Ответ написан
    Комментировать
  • Как, используя ffmpeg, можно организовать прогресс бар?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1 комментарий
  • Как можно перенести статьи с бд сайта на php в бд wordpress?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    1) Сравнить структуры стандартной вордпресной базы и текущей,
    2) составить алгоритм переноса,
    3) написать скрипты переноса, либо, если это возможно, перенести данные посредством соответствующих запросов напрямую
    4) Скорее всего базы будут сильно отличаться друг от друга и написание скриптов переноса потянет на отдельную большую статью, ввиду того что бд вордпресса, мягко говоря, не образец оптимальной продуктивной структуры (про неясную структуру бд текущего сайта скромно умолчим).

    ЗЫ: А вообще вопрос про "в огороде бузина, а в киеве дядька"... Первая часть вообще никак не несет какую-либо информационную нагрузку.
    Ответ написан
    Комментировать
  • Как выгрузить сайт в пдф?

    ThunderCat
    @ThunderCat Куратор тега HTML
    {PHP, MySql, HTML, JS, CSS} developer
    ctrl+p -> печать в пдф.
    Ответ написан
    Комментировать
  • Cтоит ли использовать новостной движок CUTENEWS.RU?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Cтоит ли использовать новостной движок CUTENEWS.RU?
    В общем случае - нет, движки без поддержки сообщества и без обновлений по сути бесполезны. По этому какой бы крутой движок не был "внутри", весь смысл в работе на постоянной основе и поддержке, а это без распространенности не бывает. Так что ответ - не стоит.

    Если лучше подключить другой, можете порекомендовать простой бесплатный движок с гайдом подключения?
    Если вы не программист, то скорее всего вордпресс - ваш выбор. Гайды на установку есть как на офф. сайте, так и на миллионе сторонних ресурсов. Очень распространен и имеет большое сообщество, регулярно выходят обновления.
    Ответ написан
    1 комментарий
  • Возможно ли в css выбрать родительский элемент, если у ребенка есть определенный атрибут?

    ThunderCat
    @ThunderCat Куратор тега CSS
    {PHP, MySql, HTML, JS, CSS} developer
    Нет, на чистом цсс это не возможно, каскадность стилей работает только "внутрь".
    Ответ написан
    Комментировать
  • Почему не работает Magnific Popup?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) скрипт инициализации должен вызываться по событию загрузки документа.
    2) для начала уберите параметры и задайте правильный тип, указанный в документации type:'inline',
    3) Проверьте как ведет себя попап элемент, возможно у вас кривые стили, которые работают, но ничего не показывают.
    Ответ написан
    Комментировать
  • Как использовать библиотеку PHP?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    но он не работает почему то...
    Забудь пожалуйста словосочетание "не работает" применительно к коду. Код всегда работает, вопрос в том что является результатом его работы. В твоем случае им наверняка является ошибка. Смотри логи или включи директивы отображения ошибок.
    Ответ написан
    2 комментария