Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: запись в БД циклом

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
sergoVL
Отправлено: 17 Сентября, 2016 - 14:06:01
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Нояб. 2015  


Помог: 0 раз(а)




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

Можете показать схематично,как он должен выглядеть?

(Отредактировано автором: 17 Сентября, 2016 - 14:06:57)

 
 Top
Denkill
Отправлено: 18 Сентября, 2016 - 11:31:38
Post Id



Посетитель


Покинул форум
Сообщений всего: 330
Дата рег-ции: Янв. 2013  
Откуда: Барнаул


Помог: 7 раз(а)




Перебираешь массив с помощью циклов (foreach, for, while), и для каждого значения делаешь mysql_query
PHP:
скопировать код в буфер обмена
  1. $array = array('Яблоко','Банан','Виноград');
  2. foreach($array as $key => $value){
  3.  mysql_query("INSERT INTO `table`(`id`,`value`) VALUES('".$key."','".$value."')");
  4. }


-----
Хо-Хо-Хо
 
 Top
sergoVL
Отправлено: 18 Сентября, 2016 - 12:32:26
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Нояб. 2015  


Помог: 0 раз(а)




Denkill пишет:
Перебираешь массив с помощью циклов (foreach, for, while), и для каждого значения делаешь mysql_query
PHP:
скопировать код в буфер обмена
  1. $array = array('Яблоко','Банан','Виноград');
  2. foreach($array as $key => $value){
  3.  mysql_query("INSERT INTO `table`(`id`,`value`) VALUES('".$key."','".$value."')");
  4. }


Так а если у меня выводит лишь последнее значение массива - это к чему?
 
 Top
Denkill
Отправлено: 18 Сентября, 2016 - 13:01:09
Post Id



Посетитель


Покинул форум
Сообщений всего: 330
Дата рег-ции: Янв. 2013  
Откуда: Барнаул


Помог: 7 раз(а)




sergoVL пишет:
Перебираешь массив с помощью циклов (foreach, for, while), и для каждого значения делаешь mysql_query
$array = array('Яблоко','Банан','Виноград');
foreach($array as $key => $value){
mysql_query("INSERT INTO `table`(`id`,`value`) VALUES('".$key."','".$value."')");
}

Так а если у меня выводит лишь последнее значение массива - это к чему?


Покажи код.

(Отредактировано автором: 18 Сентября, 2016 - 13:02:16)



-----
Хо-Хо-Хо
 
 Top
sergoVL
Отправлено: 18 Сентября, 2016 - 13:08:25
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Нояб. 2015  


Помог: 0 раз(а)




Denkill пишет:
sergoVL пишет:
Перебираешь массив с помощью циклов (foreach, for, while), и для каждого значения делаешь mysql_query
$array = array('Яблоко','Банан','Виноград');
foreach($array as $key => $value){
mysql_query("INSERT INTO `table`(`id`,`value`) VALUES('".$key."','".$value."')");
}

Так а если у меня выводит лишь последнее значение массива - это к чему?


Покажи код.


PHP:
скопировать код в буфер обмена
  1.  
  2. $newmassiv = array(
  3.  
  4.     1 => "",
  5.     2 => "25 ррарркр",
  6.     3 => "32 ттьтт",
  7.     4 => "44 ььроппа",
  8.     5 => "",
  9.     6 => "новая 25 строка",
  10.     7 => "ваапм 32 строка",
  11.     8 => "аааа 44  строка",
  12.     9 => "",
  13.     10 => "аааа 25 вторую строку",
  14.     11 => "новая строка 32 ",
  15.     12 => "новая строка 44 ",
  16.     13 => "",
  17.     14 => "аааа 25 гггггг",
  18.     15 => "новая ввсвс 32 строка",
  19.     16 => "уккк 44 выв строка",
  20.     17 => "",
  21.     18 => "новая 25 строка",
  22.     19 => "ссвсс 32 строка",
  23.     20=>  "ыраав 44 строка",
  24.     21 => "",
  25.     22 => "новая 25 ыыыыы строка",
  26.     23 => "уцкв 32 строка",
  27.     24 => "двдвл 44  строка",
  28. );
  29.  

К примеру определили, что
PHP:
скопировать код в буфер обмена
  1.  
  2. $count_massiv=count($output);
  3. foreach ($output as $count_massiv){
  4.  
  5. if ($t = strstr($count_massiv, 'аааа')) {
  6.     echo '<td>';
  7.     $l = substr($t,0,2);
  8.    echo $l;
  9.    
  10.     echo '</td>';
  11.     }
  12.  
  13.  
  14. if ($y = strstr($count_massiv, 'новая')) {
  15.    
  16.    echo '<td>';
  17.     $u = substr($y,0,3);
  18.    echo $u;
  19.    
  20.     echo '</td>';
  21.  
  22. }
  23. }
  24.  


Записываю в БД

PHP:
скопировать код в буфер обмена
  1.  
  2. $l = array();
  3. $u = array();
  4.  
  5. // Подключение к базе данных
  6. $link = mysqli_connect(
  7.             'localhost',  //Хост, к которому мы подключаемся
  8.             'root',       // Имя пользователя
  9.             'west10795',   // Используемый пароль
  10.             'TEST1')OR DIE("Не могу создать соединение ");     //База данных для запросов по умолчанию
  11.            
  12. //необходимо выбрать собственно саму базу, с которой мы будем работать
  13. mysqli_select_db($link,"TEST1");
  14.  
  15. // Установка кодировки соединения
  16. mysqli_set_charset($link,"utf8");
  17.  
  18. //Вывод ошибки
  19. if (!$link) {
  20.     die('Connect Error: ' . mysqli_connect_errno());
  21. }
  22.  
  23. //записываем в БД 1-й вариант - не получается
  24. for ($n = 0; $n < max(count($u), count($l)); $n++) {
  25.     mysqli_query($link, "INSERT INTO `mytable` (`name`, `time`)
  26.    VALUES ('" . $l[$n] . "','" . $u[$n] . "')");
  27. }
  28.  
  29. ////записываем в БД 2-й вариант - заносит лишь только последнее значение массива, но это понятно, что нужен цикл. Но я не понимаю как его сотворить.
  30. mysqli_query ($link,"INSERT INTO `mytable` (`name`,`time`) VALUES ('$u','$l')");
  31.  

(Добавление)
Denkill пишет:
sergoVL пишет:
Перебираешь массив с помощью циклов (foreach, for, while), и для каждого значения делаешь mysql_query
$array = array('Яблоко','Банан','Виноград');
foreach($array as $key => $value){
mysql_query("INSERT INTO `table`(`id`,`value`) VALUES('".$key."','".$value."')");
}

Так а если у меня выводит лишь последнее значение массива - это к чему?


Покажи код.


$count_massiv=count($output); - лишнее
 
 Top
Denkill
Отправлено: 18 Сентября, 2016 - 13:18:22
Post Id



Посетитель


Покинул форум
Сообщений всего: 330
Дата рег-ции: Янв. 2013  
Откуда: Барнаул


Помог: 7 раз(а)




PHP:
скопировать код в буфер обмена
  1. <?$l = array(
  2.  
  3.     1 => "",
  4.     2 => "25 ррарркр",
  5.     3 => "32 ттьтт",
  6.     4 => "44 ььроппа",
  7.     5 => "",
  8.     6 => "новая 25 строка",
  9.     7 => "ваапм 32 строка",
  10.     8 => "аааа 44  строка",
  11.     9 => "",
  12.     10 => "аааа 25 вторую строку",
  13.     11 => "новая строка 32 ",
  14.     12 => "новая строка 44 ",
  15.     13 => "",
  16.     14 => "аааа 25 гггггг",
  17.     15 => "новая ввсвс 32 строка",
  18.     16 => "уккк 44 выв строка",
  19.     17 => "",
  20.     18 => "новая 25 строка",
  21.     19 => "ссвсс 32 строка",
  22.     20=>  "ыраав 44 строка",
  23.     21 => "",
  24.     22 => "новая 25 ыыыыы строка",
  25.     23 => "уцкв 32 строка",
  26.     24 => "двдвл 44  строка",
  27. );
  28.  
  29. // Подключение к базе данных
  30.             'localhost',  //Хост, к которому мы подключаемся
  31.             'root',       // Имя пользователя
  32.             'west10795',   // Используемый пароль
  33.             'TEST1')OR DIE("Не могу создать соединение ");     //База данных для запросов по умолчанию
  34.            
  35. //необходимо выбрать собственно саму базу, с которой мы будем работать
  36. mysqli_select_db($link,"TEST1");
  37.  
  38. // Установка кодировки соединения
  39. mysqli_set_charset($link,"utf8");
  40.  
  41. //Вывод ошибки
  42. if (!$link) {
  43.     die('Connect Error: ' . mysqli_connect_errno());
  44. }
  45.  
  46. //записываем в БД 1-й вариант - не получается
  47. for ($n = 0; $n < count($l); $n++) {
  48.     mysqli_query($link, "INSERT INTO `mytable` (`name`, `time`)
  49.   VALUES ('" . $l[$n] . "','" . $l[$n] . "')");
  50. }
  51.  
  52.  


И для чего нужен массив $u?

(Отредактировано автором: 18 Сентября, 2016 - 13:25:44)



-----
Хо-Хо-Хо
 
 Top
sergoVL
Отправлено: 18 Сентября, 2016 - 13:22:19
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Нояб. 2015  


Помог: 0 раз(а)




Denkill пишет:
PHP:
скопировать код в буфер обмена
  1. <?$l = array(
  2.  
  3.     1 => "",
  4.     2 => "25 ррарркр",
  5.     3 => "32 ттьтт",
  6.     4 => "44 ььроппа",
  7.     5 => "",
  8.     6 => "новая 25 строка",
  9.     7 => "ваапм 32 строка",
  10.     8 => "аааа 44  строка",
  11.     9 => "",
  12.     10 => "аааа 25 вторую строку",
  13.     11 => "новая строка 32 ",
  14.     12 => "новая строка 44 ",
  15.     13 => "",
  16.     14 => "аааа 25 гггггг",
  17.     15 => "новая ввсвс 32 строка",
  18.     16 => "уккк 44 выв строка",
  19.     17 => "",
  20.     18 => "новая 25 строка",
  21.     19 => "ссвсс 32 строка",
  22.     20=>  "ыраав 44 строка",
  23.     21 => "",
  24.     22 => "новая 25 ыыыыы строка",
  25.     23 => "уцкв 32 строка",
  26.     24 => "двдвл 44  строка",
  27. );
  28.  
  29. // Подключение к базе данных
  30.             'localhost',  //Хост, к которому мы подключаемся
  31.             'root',       // Имя пользователя
  32.             'west10795',   // Используемый пароль
  33.             'TEST1')OR DIE("Не могу создать соединение ");     //База данных для запросов по умолчанию
  34.            
  35. //необходимо выбрать собственно саму базу, с которой мы будем работать
  36. mysqli_select_db($link,"TEST1");
  37.  
  38. // Установка кодировки соединения
  39. mysqli_set_charset($link,"utf8");
  40.  
  41. //Вывод ошибки
  42. if (!$link) {
  43.     die('Connect Error: ' . mysqli_connect_errno());
  44. }
  45.  
  46. //записываем в БД 1-й вариант - не получается
  47. for ($n = 0; $n < count($l); $n++) {
  48.     mysqli_query($link, "INSERT INTO `mytable` (`name`, `time`)
  49.   VALUES ('" . $l[$n] . "','" . $u[$n] . "')");
  50. }
  51.  
  52.  


И для чего нужен массив $u?


Создаю таблицу таких ячеек будет несколько.
(Добавление)
Denkill пишет:
PHP:
скопировать код в буфер обмена
  1. <?$l = array(
  2.  
  3.     1 => "",
  4.     2 => "25 ррарркр",
  5.     3 => "32 ттьтт",
  6.     4 => "44 ььроппа",
  7.     5 => "",
  8.     6 => "новая 25 строка",
  9.     7 => "ваапм 32 строка",
  10.     8 => "аааа 44  строка",
  11.     9 => "",
  12.     10 => "аааа 25 вторую строку",
  13.     11 => "новая строка 32 ",
  14.     12 => "новая строка 44 ",
  15.     13 => "",
  16.     14 => "аааа 25 гггггг",
  17.     15 => "новая ввсвс 32 строка",
  18.     16 => "уккк 44 выв строка",
  19.     17 => "",
  20.     18 => "новая 25 строка",
  21.     19 => "ссвсс 32 строка",
  22.     20=>  "ыраав 44 строка",
  23.     21 => "",
  24.     22 => "новая 25 ыыыыы строка",
  25.     23 => "уцкв 32 строка",
  26.     24 => "двдвл 44  строка",
  27. );
  28.  
  29. // Подключение к базе данных
  30.             'localhost',  //Хост, к которому мы подключаемся
  31.             'root',       // Имя пользователя
  32.             'west10795',   // Используемый пароль
  33.             'TEST1')OR DIE("Не могу создать соединение ");     //База данных для запросов по умолчанию
  34.            
  35. //необходимо выбрать собственно саму базу, с которой мы будем работать
  36. mysqli_select_db($link,"TEST1");
  37.  
  38. // Установка кодировки соединения
  39. mysqli_set_charset($link,"utf8");
  40.  
  41. //Вывод ошибки
  42. if (!$link) {
  43.     die('Connect Error: ' . mysqli_connect_errno());
  44. }
  45.  
  46. //записываем в БД 1-й вариант - не получается
  47. for ($n = 0; $n < count($l); $n++) {
  48.     mysqli_query($link, "INSERT INTO `mytable` (`name`, `time`)
  49.   VALUES ('" . $l[$n] . "','" . $l[$n] . "')");
  50. }
  51.  
  52.  


И для чего нужен массив $u?


Может вместо count($l) поставить count($newmassiv)?
 
 Top
Denkill
Отправлено: 18 Сентября, 2016 - 13:42:50
Post Id



Посетитель


Покинул форум
Сообщений всего: 330
Дата рег-ции: Янв. 2013  
Откуда: Барнаул


Помог: 7 раз(а)




PHP:
скопировать код в буфер обмена
  1. <?$l = array(
  2.  
  3.     1 => "",
  4.     2 => "25 ррарркр",
  5.     3 => "32 ттьтт",
  6.     4 => "44 ььроппа",
  7.     5 => "",
  8.     6 => "новая 25 строка",
  9.     7 => "ваапм 32 строка",
  10.     8 => "аааа 44  строка",
  11.     9 => "",
  12.     10 => "аааа 25 вторую строку",
  13.     11 => "новая строка 32 ",
  14.     12 => "новая строка 44 ",
  15.     13 => "",
  16.     14 => "аааа 25 гггггг",
  17.     15 => "новая ввсвс 32 строка",
  18.     16 => "уккк 44 выв строка",
  19.     17 => "",
  20.     18 => "новая 25 строка",
  21.     19 => "ссвсс 32 строка",
  22.     20=>  "ыраав 44 строка",
  23.     21 => "",
  24.     22 => "новая 25 ыыыыы строка",
  25.     23 => "уцкв 32 строка",
  26.     24 => "двдвл 44  строка",
  27. );
  28.  
  29. // Подключение к базе данных
  30.             'localhost',  //Хост, к которому мы подключаемся
  31.             'root',       // Имя пользователя
  32.             'west10795',   // Используемый пароль
  33.             'TEST1')OR DIE("Не могу создать соединение ");     //База данных для запросов по умолчанию
  34.            
  35. //необходимо выбрать собственно саму базу, с которой мы будем работать
  36. mysqli_select_db($link,"TEST1");
  37.  
  38. // Установка кодировки соединения
  39. mysqli_set_charset($link,"utf8");
  40.  
  41. //Вывод ошибки
  42. if (!$link) {
  43.     die('Connect Error: ' . mysqli_connect_errno());
  44. }
  45.  
  46. //записываем в БД 1-й вариант - не получается
  47. for ($n = 0; $n < count($l); $n++) {
  48.     mysqli_query($link, "INSERT INTO `mytable` (`name`, `time`)
  49.  VALUES ('" . $l[$n] . "','" . $l[$n] . "')");
  50. }
  51.  


Вот этот кусок кода должен корректно работать.
Тут массив $l и count($l)


-----
Хо-Хо-Хо
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB