• Как проектировать систему для отображения общего контента на разных субдоменах / доменах?

    Encoderast
    @Encoderast Автор вопроса
    Да, это на самом деле является решением того, что я хотел реализовать, спасибо

    А не могли бы вы немного поправить конфиг, чтоб не приходилось для каждого города создавать отдельный конциг, который подключается к бд?

    Чтоб название домена 2 или 3го уровня служило идентификатором, которая выводит соответствующую информацию из БД

    13 дней разбора php не хватает чтоб понять как сделать

    - - -

    или это уже будет не правильно? допустим заглядывая наперед будет бзиг и надо будет не 100 городов, в 200, 300
  • Как редактировать array -> input checkbox?

    Encoderast
    @Encoderast Автор вопроса
    как то все не понятно)))

    через foreach сделали, а текстовое значение one - $check . '>one</label>' так и встал во всех checkbox, а как другую текстовую часть туда сделать? one, two, three ...
  • Как подключить функцию PHP foreach в отдельный файл?

    Encoderast
    @Encoderast Автор вопроса
    Иван Корюков: понимаю что я овощ, но уже сижу больше часа и пытаюсь что то подключить, выручайте

    Это я вставил на внешний файл php (нажать на меня)
    class Delivery{
        public static $names = [
             0=>"",
             1=>"Самовывоз",
             2=>"Доставка курьером",
             3=>"Доставка почтой"
        ];
        public static function name($id){
             return self::$names[$id]; // тут забыли ; поставить
        }
    }
    
    function getDeliveryArr(){
        return explode(",", $product['delivery']);
    }

    Это я вставил на index.php (нажать на меня)
    <?php $items = getDeliveryArr(); ?>
    <?if(count($items)):?>
        <label>Доставка:</label>
        <?foreach($items as $type):?>
            <span><?=Delivery::name($type)?> </span>
        <?endforeach?>
    <?else:?>
        <b>Список пуст</b>
    <?endif?>



    результатом является ошибка:
    Notice: Undefined variable: product in return explode(",", $product['delivery']);
    Доставка:
    Notice: Undefined index: in return self::$names[$id];

    что с этим делать, как исправить?
  • Как подключить функцию PHP foreach в отдельный файл?

    Encoderast
    @Encoderast Автор вопроса
    Спасибо, но:

    из БД получили 1,2,3

    и преобразовать надо в значение 1, значение 2, ...
    значение 1 и значение 2 это условно, тут может быть и первыйварианттекста и второйварианттекста

    реализация этого у меня была следующая:
    spoiler
    if ($one == 0) {
                $result[] = ''; 
            } else
            if ($one == 1) {
                $result[] = '<span class="selection">Самовывоз</span>'; 
            } else
            if ($one == 2) {
                $result[] = '<span class="selection">Доставка курьером</span>'; 
            } else
            if ($one == 3) {
                $result[] = '<span class="selection">Доставка почтой</span>'; 
            }

  • Как добавить в БД >> массивы (array) / группа чекбоксов PDO?

    Encoderast
    @Encoderast Автор вопроса
    D3lphi: вчера уже сам не понимал что пишу, не смог элементарно объяснить..

    1. Нужно сделать отображение этих чекбоксов при редактировании. Если в ячейке указанно 1, 3, то галочки ставить на 1 и 3 checkbox соответственно

    <input type="text" name="name" placeholder="" value="<?php echo $product['name']; ?>">
    
    <label><input name="delivery[]" value="1" type="checkbox">one</label>
    <label><input name="delivery[]" value="2" type="checkbox">two</label>
    <label><input name="delivery[]" value="3" type="checkbox">three</label>
    
    <!-- как то через php echo -->


    Функция по аналогии что была и при добавлении

    Функция редактирования (нажать на меня)
    /**
         * Редактирует товар с заданным id
         * @param integer $id <p>id товара</p>
         * @param array $options <p>Массив с информацей о товаре</p>
         * @return boolean <p>Результат выполнения метода</p>
         */
        public static function updateProductById($id, $options)
        {
            // Соединение с БД
            $db = Db::getConnection();
    
            // Текст запроса к БД
            $sql = "UPDATE product
                SET 
                    name = :name, 
                    delivery = :delivery
                WHERE id = :id";
    
            // Получение и возврат результатов. Используется подготовленный запрос
            $result = $db->prepare($sql);
            $result->bindParam(':id', $id, PDO::PARAM_INT);
            $result->bindParam(':name', $options['name'], PDO::PARAM_STR);
            $result->bindValue(':delivery', implode(',' ,$options['delivery']), PDO::PARAM_STR);
            // вставлена ваша строчка delivery с добавления товара
            return $result->execute();
        }



    Например если в ячейке одно значение 0 либо 1, то я вывожу следующим образом
    Вот таким (нажать на меня)
    <p>Наличие на складе</p>
    <select name="availability">
        <option value="1" <?php if ($product['availability'] == 1) echo ' selected="selected"'; ?>>Да</option>
        <option value="0" <?php if ($product['availability'] == 0) echo ' selected="selected"'; ?>>Нет</option>
    </select>



    а для checkbox проблема
  • Как добавить в БД >> массивы (array) / группа чекбоксов PDO?

    Encoderast
    @Encoderast Автор вопроса
    в первый раз столкнулся с тем что надо несколько параметров из одной ячейки выводить
  • Как добавить в БД >> массивы (array) / группа чекбоксов PDO?

    Encoderast
    @Encoderast Автор вопроса
    D3lphi: Мы сейчас в базу данных столбец delivery добавили значения от 1 до 3 через запятую

    далее их нужно вывести и преобразовать обратно в текст каждую, соответствующую своему идентификатору

    чтоб при выводе отображалось:

    Значение 1
    Значение 2
    Значение 3

    т.е. если в БД у нас 1, 3, то выводится Значение 1 и Значение 3

    я изначально думал что это через
    case '1':
    return 'Значение 1';
    break;


    но нет, оказалось что не совсем так
  • Как добавить в БД >> массивы (array) / группа чекбоксов PDO?

    Encoderast
    @Encoderast Автор вопроса
    И раз одну проблему помогли решить, может напишите как делается их дальнейший вывод?

    Я в наличии или нет вывожу след. образом

    <?php echo Product::getAvailabilityText($product['availability']); ?>


    public static function getAvailabilityText($availability)
        {
            switch ($availability) {
                case '1':
                    return 'В наличии';
                    break;
                case '0':
                    return 'Под заказ';
                    break;
            }
        }


    А как для нескольких значений сделать?
  • Как добавить в БД >> массивы (array) / группа чекбоксов PDO?

    Encoderast
    @Encoderast Автор вопроса
    D3lphi: афигеть, спасибо, уже совсем забыл про контроллеры...
  • Как добавить в БД >> массивы (array) / группа чекбоксов PDO?

    Encoderast
    @Encoderast Автор вопроса
    D3lphi: а что сделать, что куда добавить?))

    и видимо уже устал, перед глазами расплатывается, там еще одна ошибка
    Warning: implode(): Invalid arguments passed in

    это ведь мне сейчас надо в сам input delivery подставлять или что с ним делать?
  • Как добавить в БД >> массивы (array) / группа чекбоксов PDO?

    Encoderast
    @Encoderast Автор вопроса
    Я вставил строчку непосредственно с разделителем

    $result->bindValue(':delivery', implode(',' ,$options['delivery']), PDO::PARAM_STR);


    Но след. ошибка Notice: Undefined index: delivery in (строчка на этот код)

    Что это может быть как решить проблему?