• Как добавить данные из input в массив и записать в БД циклом одной кнопкой?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    <form action="" method="POST" >
    <? foreach ($listFas as $itemFas): ?>
      <input type="text" name="post[<?=$itemFas['id'];?>][price]" value="<?=$itemFas['price']; ?>"  > 
    <? endforeach; ?>
    <button type="submit" >  Сохранить</button>
    </form>
    Ответ написан
    Комментировать
  • Как сделать выборку по трём таблицам?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Просто через LEFT JOIN получается так что продукт дублируется столько раз сколько имеет соответствий с таблицей INFORMATION.

    GROUP BY p.id
    ORDER BY s.rating DESC i.int DESC
    Ответ написан
    2 комментария
  • Почему файлы php скачиваются при использовании php-fpm nginx?

    @Ampleev Автор вопроса
    Долго мучился тогда, сюда забыл написать решение, в итоге все же заработало, конфиг поставил такой:

    location ~ [^/]\.php(/|$) {
                    fastcgi_split_path_info ^(.+?\.php)(/.*)$;
                    if (!-f $document_root$fastcgi_script_name) {return 404;}
                    fastcgi_param HTTP_PROXY "";
                    include fastcgi_params;
                    fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
                    fastcgi_index index.php;
                    fastcgi_param SCRIPT_FILENAME $request_filename;
            }

    и важно поменять владельца файла на www-data + танцы с бубном и перезагрузка как-то все заработало
    Ответ написан
    1 комментарий
  • Как вывести информацию с БД массивом?

    @rPman
    в $query->execute(['ref' => $my_ref[0]]); данные массивом передались.

    к сожалению биндинг в pdo не умеет работать с массивами, каждый параметр должен быть конечным объектом (число., строка...)

    так же чтобы условие в sql обрабатывало массив нужно использовать выражение
    select ... from ... where id in (1,2,3,4,...)

    поэтому чтобы решить указанную задачу нужно формировать sql запрос по старинке (без использования prepare и биндингов), естественно аккуратно к значениям, либо валидировать их что они являются числами, а если должны быть строки - то правильно экранировать

    $sql='select ... from ... where id in ('.implode(',',$id_array).')'

    Так же проверь что массив идентификаторов не пустой, так как иначе будет ошибка в sql

    p.s. осторожно, количество значений в 'id in' лимитировано (кажется 1000), если инужно больше, то придется создавать временную таблицу, заливать в нее искомые идентификаторы и строить запрос с left join

    Еще я встречал похожий метод но с использованием биндингов, когда sql запрос генерировался вида:
    select ... from ... where id in (?,?,?,?,...)
    с нужным количеством ? тогда передав массив напрямую в execute можно получить результат, лимит на количество ? еще меньше, это определяется драйвером базы данных.

    p.p.s. и совсем сверху на засыпку методика, ее имеет смысл использовать когда со стороны клиента фильтруемых данных больше чем 1 поле (например 2 массива точнее таблица с несколькими колонками) и очень не хочется заполнять в базе временную таблицу с этими данными (это очень сильно роняет производительность) то можно сформировать внутри sql таблицу из константных данных:
    select ... from ...,
    (
      select ? as col1,? as col2
      union select ?,?
      union select ?,?
    ...  
    ) x where ...
    Ответ написан
    4 комментария
  • Как обрезать изображение перед его загрузкой на сервер?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Здесь столько мусора в голове, что не знаешь даже за что вперёд хвататься
    То ли рассказывать про такую штуку, как интернет, и о том что в нем полно готовых ответов на вопросы
    То ли намекнуть про то, что РНР исполняется на сервере, то есть использовать РНР "перед тем как картинка загрузится" на сервер несколько проблематично.
    То ли совсем расстроить человека, открыв ему страшную тайну: у реального сайта бывает много пользователей, и каждый сидит за своим компьютером. А не все вместе на одном стуле перед компиком нашего горе-программиста. И им вряд ли нужен скриншот экрана сервера. У которого и экрана-то обычно и вовсе нет
    Ответ написан
    2 комментария
  • Регулировка прозрачности класса ползунком range?

    sh3mahan
    @sh3mahan
    что-то вроде веб-разработчика
    Все очень просто, берешь свой блок, берешь ползунок.
    На ползунок вешаешь обработчик события, либо input, либо change (смотря какой эффект нужен), далее берешь текущее значение с ползунка и присваиваешь нужный стиль блоку.

    Ответ написан
    2 комментария