14 / 9 / 11
Регистрация: 10.09.2012
Сообщений: 933
1

Запись массивов в базу

19.02.2021, 16:41. Показов 465. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет. Есть два метода для конвертирования массива в Yaml и наоборот. Есть поле в бд mysql. Назовём его field. Записываю в него массив.
PHP
1
2
3
4
5
6
                $Ymarr = array(
                'item_id'=> $item_id,
                'input_hm'=>$input_hm
                );
$Ymarr = $inDB->escape_string(cmsCore::arrayToYaml($Ymarr));
$inDB->query("UPDATE cms_dieta_eat_plan SET $v='{$Ymarr}' WHERE user_id = $inUser->id AND date='$date'");
Можно ли в это поле добавить ещё один массив?
PHP
1
2
3
4
5
            $Ymarr2 = array(
                'item_id'=> $item_id,
                'input_hm'=>$input_hm
                );
$Ymarr = $inDB->escape_string(cmsCore::arrayToYaml($Ymarr2));
Ключи в массиве те же,а значения другие.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.02.2021, 16:41
Ответы с готовыми решениями:

Перебор нескольких массивов и запись данных в базу
Здравствуйте! У меня есть форма с динамическим добавлением полей в неё. Также имеется функция для...

Запретить запись в базу, если в базе уже есть запись
Здравствуйте уважаемые форумчане. У меня есть база данных в которую пользователи добавляют адреса...

Запретить запись в базу, если в базе уже есть такая запись - PHP БД
Люди добрые помогите кто чем сможет. Есть запрос $number = $_POST; $datetime = $_POST; $dept...

запись в базу
есть документ txt в котором записи выглядят примерно так id Quest correct answer 1 1 ...

6
530 / 385 / 247
Регистрация: 31.05.2016
Сообщений: 1,049
19.02.2021, 20:08 2
Зачем вы для этого используете YAML а не JSON?
0
220 / 173 / 115
Регистрация: 19.01.2015
Сообщений: 524
19.02.2021, 21:39 3
Массивы обычно в БД хранят в виде сериализованных массивов или json. Два массива в дин столбец запихнуть конечно можно, но лучше сделать из них один.
PHP
1
2
3
4
5
6
7
8
9
$Ymarr = array();
$Ymarr[1] = array(
                'item_id'=> $item_id,
                'input_hm'=>$input_hm
                );
$Ymarr[2] = array(
                'item_id'=> $item_id,
                'input_hm'=>$input_hm
                );
0
14 / 9 / 11
Регистрация: 10.09.2012
Сообщений: 933
20.02.2021, 16:19  [ТС] 4
Цитата Сообщение от Smls Посмотреть сообщение
Два массива в дин столбец запихнуть конечно можно, но лучше сделать из них один
Дело в том,что они не вместе пишутся. Сначала один. В другое время другой. Значит придётся получать записанный массив,конвертировать его из Yaml в Array , объеденять и снова в Yaml. Попробую. Посмотрю в каком виде получится Array

Добавлено через 12 минут
Плюс придётся как то получить последний ключ Yaml[],что бы объеденить?

Добавлено через 33 минуты
Вроде получается. array_merge() использовал. Посмотрю дальше). Как пойдёт.
0
14 / 9 / 11
Регистрация: 10.09.2012
Сообщений: 933
21.02.2021, 08:42  [ТС] 5
И снова привет. Не вышло,как надо создать массив с Yaml, решил использовать json. После записи в базу(пишу json-ы через пытаюсь выбрать и перебрать. Имею.
Массив с полями из бд, в которых могут быть данные
PHP
1
$e_p = ['breakfast','lunch','dinner','afternoon','supper','snack'];
В переменной $dieta_plan массив таблицы.
Начинаю перебирать.
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
for($i=0;$i<=count($e_p);$i++){
if($dieta_plan[$e_p[$i]] != ''){
$array[$e_p[$i]] = explode(';',$dieta_plan[$e_p[$i]]);
/**
print_r($array);
Array
(
    [breakfast] => Array
        (
            [0] => {"item_id":"815","input_hm":1}
            [1] => {"item_id":"700","input_hm":2}
        )
 
)
 
Array
(
    [breakfast] => Array
        (
            [0] => {"item_id":"815","input_hm":1}
            [1] => {"item_id":"700","input_hm":2}
        )
 
    [lunch] => Array
        (
            [0] => {"item_id":"815","input_hm":1}
            [1] => {"item_id":"700","input_hm":2}
        )
 
)
*/
}
}
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
print_r($array);
Array
(
    [breakfast] => Array
        (
            [0] => {"item_id":"815","input_hm":1}
            [1] => {"item_id":"700","input_hm":2}
        )
 
    [lunch] => Array
        (
            [0] => {"item_id":"815","input_hm":1}
            [1] => {"item_id":"700","input_hm":2}
        )
 
)
Почему так? В цикле лишний массив.
0
220 / 173 / 115
Регистрация: 19.01.2015
Сообщений: 524
21.02.2021, 10:10 6
Цитата Сообщение от юрьич Посмотреть сообщение
Почему так? В цикле лишний массив.
Это не массив лишний, это print_r внутри цикла. Соответственно и информация несколько раз выводится.
0
14 / 9 / 11
Регистрация: 10.09.2012
Сообщений: 933
21.02.2021, 10:49  [ТС] 7
Аааа,понятно).Спасибо.
0
21.02.2021, 10:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.02.2021, 10:49
Помогаю со студенческими работами здесь

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

Запись в базу
По жизни я старый сишник. Решил на старости лет попытать силы в Веб. Скачал OpenServer. Чего-то...

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

Запись в базу
помогите как правильно записать...

Запись в базу данных
Подскажите конструкцию кода чтобы изображения грузились на сервер и одновременно путь к ним...

скедитр запись в базу
Вот код который записывает и обновляет данные в базе все работает за исключением одного. если я...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru