Я пытаюсь вставить случайные данные с php в базу данных ipromapp, которую я создал (mysql) с помощью Faker - которую я импортировал с помощью composer (она работает нормально).
Я установил соединение - оно работает.
$connection = mysqli_connect('localhost','root','root', 'ipromapp');
создан класс Bank и метод randomize () - внутри у меня есть этот код, который работает не совсем корректно.Он создает 5 пользователей (поэтому первый запрос работает правильно) - второй запрос, который я сделал внутри другого foreach (мне нужно случайное количество транзакций, поэтому я не могу использовать диапазон от первого foreach - от 1 до 5).
Я правильно проиндексировал и создал связь с user_id
из таблицы transaction
до id
(первичный ключ) таблицы user
(сс: http://prntscr.com/mdxfs1)
Я пытался отредактировать запрос, изменить диапазон второго foreach - у меня есть несколько незначительных моментов "лампочек", но мне трудно преобразовать их в код.
function randomize()
{
// accessing variables outside the function
global $faker, $connection;
$insertNum = 0;
// deleting users so that we have only 5 we want
$connection->query("TRUNCATE TABLE `users`");
$connection->query("TRUNCATE TABLE `transactions`");
// adding 5 people into the users db
foreach (range(1,5) as $x){
$body = $faker->firstName($gender = null) . ' ' . $faker->lastName;
$connection->query("
INSERT INTO users (name, birth_date)
VALUES ('{$body}', '{$faker->date($format = 'Y-m-d', $max = '-10 years')}')
");
printf ("New Record has id %d.\n", $connection->insert_id);
// random number of transactions
$randomNum = rand(20,40);
$insertNum += $randomNum;
printf ( "Random number is %d.<br>", $randomNum);
// adding random number of transactions from past 6 months
foreach (range(1, $insertNum) as $y) {
$connection->query("
INSERT INTO transactions (user_id, date, deposit, withdraw)
VALUES ('{$connection->insert_id}','{$faker->date( $format = 'Y-m-d', $max = 'now')}', '{$faker->randomDigit}', '{$faker->randomDigit}')
");
}
}
}
Я ожидал, что запрос сгенерирует от 20-40 транзакций на пользователя.Я думаю что-то связано с идентификаторамиЗапрос генерирует только 1 - значит, что-то работает, но я предполагаю, что запрос или логика неверны - если кто-то может указать мне на проблему, если он увидел что-то конкретное?
SS из вывода phpMyAdmin после запускаphp file: // вывод в браузер (я использую MAMP и только что запустил localhost) http://prntscr.com/mdxe4l
// 5 сгенерированных пользователей http://prntscr.com/mdxee9
// По какой-то причинепри первом запуске скрипта он генерирует 2 для первого идентификатора http://prntscr.com/mdxgc3