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]   

> Описание: а можно ли добавить в базу с помощью цикла данные ну к примеру 100 или 200 записей?
Артур Липин
Отправлено: 10 Мая, 2017 - 03:33:22
Post Id



Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Апр. 2017  


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




ну к примеру есть таблица с двумя полями id и еще какое нибудь ну к примеру num и нужно с помощью итерации добавить 100 записей но что бы каждое число следующие умножалось на 2 ну к примеру вот такой вид что бы был
id 1 num 100
id 2 num 200
id 3 num 400
(Добавление)
если можно пример и подробное объяснение то с базами я не очень разбираюсь а выучить очень хочется эту тему подробнее
(Добавление)
PHP:
скопировать код в буфер обмена
  1.  
  2.         for($i = 0; $i < 100; $i++){
  3.                 global $mysqli;
  4.                                 connectDB();
  5.                                 $rezault_set = $mysqli->query("INSERT INTO `test` (`id`, `num`) VALUES ('$i', '100')");
  6.                                 closeDB();
  7.         }

вот примерчик небольшой но как мне умножить число от предыдущей Записи?
 
 Top
Vladimir Kheifets
Отправлено: 10 Мая, 2017 - 12:03:58
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


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




Вопрос, про умножение в цикле к БД не относится.
Нужно заменить константу '100' на переменную $num .
В цикле можно обойтись без connectDB() и closeDB()

вот примерчик небольшой как умножить число в цикле, например на 2,
чтобы получилось 100, 200, 400 .... в каждой записи БД
PHP:
скопировать код в буфер обмена
  1.  
  2. connectDB();
  3. $num=100;
  4. for($i = 0; $i < 100; $i++)
  5. {      
  6.         $rezault_set = $mysqli->query("INSERT INTO `test` (`id`, `num`) VALUES ('$i', '$num')");
  7.         $num=$num*2;   
  8. }
  9. closeDB();
  10.  

вот примерчик небольшой но как мне умножить число от предыдущей Записи?[/quote]
 
 Top
arbuzmaster
Отправлено: 11 Мая, 2017 - 11:09:57
Post Id


Новичок


Покинул форум
Сообщений всего: 23
Дата рег-ции: Май 2017  


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




Работать с базой в цикле - зло! Радость
Правильно делать примерно так - сначала подготавливаете данные для запроса и саму строку запроса, а затем делаете один запрос к БД:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $values=array();
  3. $num=100;
  4. for($i = 0; $i < 10; $i++)
  5. {      
  6.         $values[]="('$i','$num')";
  7.         $num=$num*2;  
  8. }
  9. $values=implode (",",$values);
  10. $insert_sql="INSERT INTO `test` (`id`, `num`) VALUES ".$values;
  11. print_r($insert_sql);


Результат Подмигивание
CODE (htmlphp):
скопировать код в буфер обмена
  1. INSERT INTO `test` (`id`, `num`) VALUES ('0','100'),('1','200'),('2','400'),('3','800'),('4','1600'),('5','3200'),('6','6400'),('7','12800'),('8','25600'),('9','51200')

(Отредактировано автором: 11 Мая, 2017 - 11:10:47)

 
 Top
Артур Липин
Отправлено: 14 Мая, 2017 - 01:10:14
Post Id



Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Апр. 2017  


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




ого я даже не знал что так можно писать Не понял но мне через цикл вариант больше нравится все отлично добавилось так что зла я не вижу в этом Улыбка
(Добавление)
особено удивляет это $values[] я так некогда не писал думл что обезательно квадратные скобки заполнять к примеру $values[$i]
 
 Top
Строитель Модератор
Отправлено: 14 Мая, 2017 - 18:06:25
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


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




Артур Липин пишет:
так что зла я не вижу в этом
Это не означает, что его нет - вы его непременно увидите. Выше вам предложили адекватный вариант сборки строки запроса, единственное его не соответствие - другие циферки. Я их подправил под ваш первый пост
Спойлер (Отобразить)
 
 Top
teleoperator27
Отправлено: 14 Мая, 2017 - 18:39:59
Post Id



Посетитель


Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017  


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




Артур Липин пишет:
о мне через цикл вариант больше нравится все отлично добавилось так что зла я не вижу в этом

Перекидать кучу песка, миллион раз взмахнув детским совочком, или один раз черпануть экскаватором Улыбка
 
My status
 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