Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 12.01.2016
Сообщений: 18
1

Вывод числовых значений из БЗ и преобразование в текстовые значения

02.08.2017, 11:47. Показов 535. Ответов 4
Метки нет (Все метки)

Всем привет!

Есть функция, которая отвечает за вывод единиц измерений товара

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
 <p>Единицы измерения</p>
<select name="units">
    <option value="0" selected="selected"></option>
    <option value="1">ч</option>
    <option value="2">сут</option>
    <option value="3">кг</option>
    <option value="4">тонн</option>
    <option value="5">кв.м</option>
    <option value="6">м3</option>
    <option value="7">шт.</option>
    <option value="8">п.м.</option>
    <option value="9">комплект</option>
</select>
PHP
1
<?php echo Product::getUnitsText($product['units']); ?>
PHP
1
2
3
4
5
6
7
8
9
10
11
public static function getUnitsText($units)
    {
        switch ($units) {
            case '9':
                return 'комплект';
                break;
            case '8':
                return 'п.м.';
                break;
          }
    }
По аналогии хочу сделать вывод и значений/условий доставки товара:
, но с выбором нескольких значений для добавления

При добавлении товара на сайт в БД заносятся значения в столбец delivery

Где:
HTML5
1
2
3
4
5
6
7
8
<p>Условия доставки</p>
<select name="delivery">
    <option value="0" selected="selected"></option>
    <option value="1">Доставка автопарком компании</option>
    <option value="2">Самовывоз</option>
    <option value="3">Доставка почтой россии</option>
    <option value="4">Доставка транспортной компанией</option>
</select>
Если по одному значению я уже реализовал, то как реализовать добавление с несколькими значениями и дальнейшим их выводом?

PHP
1
2
3
4
5
<?php foreach ($latestProducts as $product): ?>
    <option value="<?php echo $product['id']; ?>">
        <?php echo $product['delivery']; ?>
    </option>
<?php endforeach; ?>
Какой тут должен быть код вывода из БД?

- - -

Я конечно могу это все через ячейки delivery_1 delivery_2 delivery_3 ... реализовать, но как по мне это не правильно и создает лишние данные в таблице, хочется все через одну ячейку сделать

Добавлено через 12 минут
с выбором условий доставки идет type="checkbox" забыл указать

Добавлено через 46 минут
Вроде немного разобрался что черех delivery[]
HTML5
1
2
<label><input name="delivery[]" value="1" type="checkbox">Доставка транспортной компанией</label>
           <label><input name="delivery[]" value="2" type="checkbox">Второй вариант</label>
Но не знаю как будет выглядеть добавление товара, если используется $result->bindParam:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public static function createProduct($options)
    {
        // Соединение с БД
        $db = Db::getConnection();
 
        // Текст запроса к БД
        $sql = 'INSERT INTO product '
                . '(name, code, price, short_description, description, add_date, category_id, brand, availability,'
                . 'is_new, is_recommended, status)'
                . 'VALUES '
                . '(:name, :code, :price, :short_description, :description, :add_date, :category_id, :brand, :availability,'
                . ':is_new, :is_recommended, :status)';
 
        // Получение и возврат результатов. Используется подготовленный запрос
        $result = $db->prepare($sql);
        $result->bindParam(':name', $options['name'], PDO::PARAM_STR);
        $result->bindParam(':code', $options['code'], PDO::PARAM_STR);
        $result->bindParam(':price', $options['price'], PDO::PARAM_STR);
        $result->bindParam(':short_description', $options['short_description'], PDO::PARAM_STR);
        $result->bindParam(':description', $options['description'], PDO::PARAM_STR);
        $result->bindParam(':category_id', $options['category_id'], PDO::PARAM_INT);
        $result->bindParam(':brand', $options['brand'], PDO::PARAM_STR);
        $result->bindParam(':availability', $options['availability'], PDO::PARAM_INT);
        $result->bindParam(':add_date', $options['add_date'], PDO::PARAM_STR);
        $result->bindParam(':is_new', $options['is_new'], PDO::PARAM_INT);
        $result->bindParam(':is_recommended', $options['is_recommended'], PDO::PARAM_INT);
        $result->bindParam(':status', $options['status'], PDO::PARAM_INT);
        if ($result->execute()) {
            // Если запрос выполенен успешно, возвращаем id добавленной записи
            return $db->lastInsertId();
        }
        // Иначе возвращаем 0
        return 0;
    }
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.08.2017, 11:47
Ответы с готовыми решениями:

Ввод/вывод числовых значений с группировкой разрядов
Здравствуйте! Хочу сделать ввод и вывод числовых значений с группировкой разрядов, например:...

Вывод из столбца таблицы только числовых значений
Добрый день. Может быть вопрос почти элементарный для вас.))) Есть таблица в одну колонку...

Вывод надписи ошибки, после сравнения двух числовых значений
Необходимо вывести сообщения об ошибке после выполнения условий n+m&gt;x , если при сложении n и m...

Как в Excel подсчитать количество числовых значений из столбца А, которые больше чем значения в столбце B?
Нужно решить 2 задачи: 1. Как в Excel подсчитать количество числовых значений из столбца А,...

4
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
02.08.2017, 14:55 2
скорее всего надо создавать категории "вариант доставки", и добавлять туда товар

Добавлено через 1 минуту
выбор способа доставки покупатель может сделать кнопкой или радио-баттон-ом

Добавлено через 4 минуты
PHP
1
2
3
4
5
6
7
8
9
require_once 'db.php'; // файл из сообщения https://www.cyberforum.ru/php-database/thread1979331.html#post10563675
 
class имя_класса {
 
public static function createProduct($options)
{
    $mi = mi('INSERT INTO `product` SET '.sqlset($options));
    return $mi;
}
0
0 / 0 / 0
Регистрация: 12.01.2016
Сообщений: 18
02.08.2017, 15:11  [ТС] 3
Условия доставки от товара к товару меняются и некоторым будет лишним указывать самовывоз или курьер, ведь речь пойдет об аренде спецтехники, где доставка только автопарком компании и соответственно для каких нибудь расходников

мне нужно правильно написать код для добавления товара на сайт

PHP
1
$result->bindParam(':delivery', $options['delivery'], PDO::PARAM_STR);
но как я понял так не правильно, добавление нескольких чекбоксов добавляется через след:



HTML5
1
2
3
<label><input name="delivery[]" value="1" type="checkbox">Доставка транспортной компанией</label>
<label><input name="delivery[]" value="2" type="checkbox">Второй вариант</label>
<label><input name="delivery[]" value="3" type="checkbox">Третий вариант</label>
PHP
1
2
3
foreach ($delivery as $key => $value) {
    $delivery->bindValue($key, $value + ',');  // - как записать правильно этот код я не знаю
}
0
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
02.08.2017, 15:33 4
в отдельную таблицу varianty_dostavki_tovara (id_tovara, id_dostavki)
0
0 / 0 / 0
Регистрация: 12.01.2016
Сообщений: 18
02.08.2017, 15:44  [ТС] 5
Зачем создавать отдельную таблицу для условий доставки, если лучше сделать лишний столбец в основной, в которой будут указываться значения - 1,2,3,4,5 ???
Одна таблица со всеми значениями товара: id, title, description, img... и сюда же просто добавлю delivery

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

Поясните, зачем нам отдельная таблица?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.08.2017, 15:44

Структура: подсчет максимальных и минимальных значений, сумм и средних значений для числовых полей
Структура должна включать не менее 10 столбцов, в том числе – строковые, числовые и дата, всего в...

Преобразование типа значения: ввод-вывод чисел
Разработать программу, выполняющую последовательность действий: 1. Ввод строки, изображающей число...

Вывод значений повышенной точности. Преобразование многобитного двоичного числа в десятичное
Здравствуйте! Хотелось бы узнать как осуществляется вывод значений повышенной точности и...

Преобразование числовых типов
Добрый день. При написании программы возникла необходимость прочитать цифры из строки. Но при...

Обработка и преобразование числовых последовательностей
Даны действительные числа a1,…,an. Определить второй по величине элемент, предполагая, что все...

Обработка и преобразование числовых последовательностей
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1. количество элементов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.