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
Форумы портала PHP.SU :: Версия для печати :: добавление в базу даных
Форумы портала PHP.SU » » Вопросы новичков » добавление в базу даных

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

1. Артур Липин - 10 Мая, 2017 - 03:33:22 - перейти к сообщению
ну к примеру есть таблица с двумя полями 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.         }

вот примерчик небольшой но как мне умножить число от предыдущей Записи?
2. Vladimir Kheifets - 10 Мая, 2017 - 12:03:58 - перейти к сообщению
Вопрос, про умножение в цикле к БД не относится.
Нужно заменить константу '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]
3. arbuzmaster - 11 Мая, 2017 - 11:09:57 - перейти к сообщению
Работать с базой в цикле - зло! Радость
Правильно делать примерно так - сначала подготавливаете данные для запроса и саму строку запроса, а затем делаете один запрос к БД:
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')
4. Артур Липин - 14 Мая, 2017 - 01:10:14 - перейти к сообщению
ого я даже не знал что так можно писать Не понял но мне через цикл вариант больше нравится все отлично добавилось так что зла я не вижу в этом Улыбка
(Добавление)
особено удивляет это $values[] я так некогда не писал думл что обезательно квадратные скобки заполнять к примеру $values[$i]
5. Строитель - 14 Мая, 2017 - 18:06:25 - перейти к сообщению
Артур Липин пишет:
так что зла я не вижу в этом
Это не означает, что его нет - вы его непременно увидите. Выше вам предложили адекватный вариант сборки строки запроса, единственное его не соответствие - другие циферки. Я их подправил под ваш первый пост
Спойлер (Отобразить)
6. teleoperator27 - 14 Мая, 2017 - 18:39:59 - перейти к сообщению
Артур Липин пишет:
о мне через цикл вариант больше нравится все отлично добавилось так что зла я не вижу в этом

Перекидать кучу песка, миллион раз взмахнув детским совочком, или один раз черпануть экскаватором Улыбка

 

Powered by ExBB FM 1.0 RC1