| 
<?php
 require_once __DIR__ . '/../../vendor/autoload.php';
 
 use JLaso\ToolsLib\ProgressBar;
 use JLaso\ToolsLib\RandomTokenizer;
 
 $options = getopt("h::u::p::d::n::");
 
 $host = isset($options['h']) ? $options['h'] : 'localhost';
 $user = isset($options['u']) ? $options['u'] : 'root';
 $password = isset($options['p']) ? $options['p'] : '';
 $database = isset($options['d']) ? $options['d'] : 'test';
 $nFamilies = isset($options['n']) ? intval($options['n']) : 1000;
 $nRecords = isset($options['m']) ? intval($options['m']) : 100000;
 $nProducts = isset($options['o']) ? intval($options['o']) : 10000;
 
 $conn = mysqli_connect($host, $user, $password, $database);
 
 if (!$conn) {
 die(mysqli_error($conn));
 }
 
 print "Table: family\n";
 $pBar = new ProgressBar($nFamilies);
 
 for ($i = 0; $i < $nFamilies; $i++) {
 
 mysqli_query(
 $conn,
 sprintf(
 "INSERT IGNORE INTO `family` (`id`, `name`, `ratio`) VALUES ('%d', '%s', '%f')",
 $i, 'family #' . $i, rand(0, 1000) / 1000
 )
 );
 $pBar->updateValue($i);
 }
 
 $productNameGenerator = new RandomTokenizer();
 print "Table: product\n";
 $pBar = new ProgressBar($nProducts);
 
 for ($i = 0; $i < $nProducts; $i++) {
 
 mysqli_query(
 $conn,
 sprintf(
 "INSERT IGNORE INTO `product` (`id`, `name`, `family_id`, `ratio`) VALUES ('%d', '%s', '%d', '%f')",
 $i, $productNameGenerator->getPhrase(), rand(0, $nFamilies), rand(0, 1000) / 1000
 )
 );
 $pBar->updateValue($i);
 }
 
 print "\nTable: data\n";
 $pBar = new ProgressBar($nRecords);
 
 for ($i = 0; $i < $nRecords; $i++) {
 
 mysqli_query(
 $conn,
 sprintf(
 "INSERT IGNORE INTO `data` (`id`, `product_id`, `cost`) VALUES ('%d', '%d', '%f')",
 $i, rand(0, $nProducts), rand(0, 100) / 1000
 )
 );
 $pBar->updateValue($i);
 
 }
 
 print "\nDone!\n";
 
 |