<?php
$db = mysql_connect("localhost","root","");
mysql_select_db("banka_manager",$db);
// Создаем случайные имена и фамилии //
$mas = file('names.txt');//массив файла имен
$fam = file('family.txt');//массив файла фамилий
for ($i=1;$i<=21;$i++) {
$rand = rand(0, count($mas) - 1);//случайное число
$rand_fam = rand(0, count($fam) - 1);//случайное число для фамилии
$family = ucfirst(strtolower($fam[$rand_fam]));//регистр букв Pupkin
$name = $mas[$rand];//находим случайное имя
$fname[] = $name.$family;//$fname[0]='Vasya Pupkin'.....$fname[128]='Vasya Pupkin128'
}
// end //
// вычисляем рандомные числа //
$max_tech = 7; // макс. число для технических данных.
$max_psi = 10; // макс. число для психологических данных.
$max_fys = 9; // макс. число для физических данных.
$max_age = 23; // макс. возраст
for ($i=1;$i<=14;$i++)
{
$params[] = rand(1,$max_tech);//массив случайных чисел от 1 до 7 для технических данных
$psi[] = rand(1,$max_psi); //массив случайных чисел от 1 до 10 для психологических данных
}
for ($i=1;$i<=7;$i++)
{
$fys[] = rand(1,$max_fys);//массив случайных чисел от 1 до 9 для для физических данных.
}
// end //
// Получаем возраст и харрактер
$age= rand(15,$max_age);
if ($psi[13] > 6 && $psi[7] < 5) {$haract = "Холерик";}
if ($psi[1] > 6 && $psi[11] < 5) {$haract = "Холерик";}
if ($psi[1] > 6 && $psi[11] > 5) {$haract = "Сангвинник";}
if ($psi[1] < 6 && $psi[8] < 5){$haract = "Флегматик";}
if ($psi[1] > 6 && $psi[8] < 5){$haract = "Меланхолик";}
// end //
// Добавление в базу данных 21 чел-ка
if (!empty($_POST['ok'])){
for ($j=0;$j<=20;$j++) { //Как сделать разные разные значения каждому человеку?
$query = mysql_query("INSERT INTO attributes (name,throwing, long_kick, dribling, over_attack, play_head, free_kick, Mounted_kick, keeping, picking, Pass, penalty, first_tuch, technics, corner, authority, aggression, select_position, Playing_bez_ball, improvisation, intuition, teamplay, concentration, decisionmaking, durability, flatness, self_possession, creation, bravery,endurance, coordination, agility, natural_data, strength, spring_ability, acceleration,age,haract)
VALUES ('$fname[$j]','$params[0]','$params[1]','$params[2]','$params[3]','$params[4]','$params[5]','$params[6]','$params[7]','$params[8]','$params[9]','$params[10]','$params[11]','$params[12]','$params[13]','$psi[0]','$psi[1]','$psi[2]','$psi[3]','$psi[4]','$psi[5]','$psi[6]','$psi[7]','$psi[8]','$psi[9]','$psi[10]','$psi[11]','$psi[12]','$psi[13]','$fys[0]','$fys[1]','$fys[2]','$fys[3]','$fys[4]','$fys[5]','$fys[6]','$age','$haract')");
}
header("Location:gen.php");
}
?>
</div>
<form action="" method="post">
<input name="ok" type="submit" value="Сохранить">
</form>
</body>
</html>
Как сделать разные разные значения каждому человеку?
Дамп таблицы
CREATE TABLE IF NOT EXISTS `attributes` (
`id` int(6) NOT NULL AUTO_INCREMENT,
`name` varchar(450) NOT NULL,
`throwing` int(2) NOT NULL,
`long_kick` int(2) NOT NULL,
`dribling` int(2) NOT NULL,
`over_attack` int(2) NOT NULL,
`play_head` int(2) NOT NULL,
`free_kick` int(2) NOT NULL,
`Mounted_kick` int(2) NOT NULL,
`keeping` int(2) NOT NULL,
`picking` int(2) NOT NULL,
`Pass` int(2) NOT NULL,
`penalty` int(2) NOT NULL,
`first_tuch` int(2) NOT NULL,
`technics` int(2) NOT NULL,
`corner` int(2) NOT NULL,
`authority` int(2) NOT NULL,
`aggression` int(2) NOT NULL,
`select_position` int(2) NOT NULL,
`Playing_bez_ball` int(2) NOT NULL,
`improvisation` int(2) NOT NULL,
`intuition` int(2) NOT NULL,
`teamplay` int(2) NOT NULL,
`concentration` int(2) NOT NULL,
`decisionmaking` int(2) NOT NULL,
`durability` int(2) NOT NULL,
`flatness` int(2) NOT NULL,
`self_possession` int(2) NOT NULL,
`creation` int(2) NOT NULL,
`bravery` int(2) NOT NULL,
`endurance` int(2) NOT NULL,
`coordination` int(2) NOT NULL,
`agility` int(2) NOT NULL,
`natural_data` int(2) NOT NULL,
`strength` int(2) NOT NULL,
`spring_ability` int(2) NOT NULL,
`acceleration` int(2) NOT NULL,
`age` int(2) NOT NULL,
`haract` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=204 ;
Спустя 40 минут, 5 секунд (17.03.2011 - 03:33) Invis1ble написал(а):
Формируй эти значения внутри цикла, в котором идет запись в БД
Спустя 19 минут, 33 секунды (17.03.2011 - 03:52) Andrey65 написал(а):
Пробовал, все-равно не получается.
Invis1ble Можно поподробней, пробовал уже и все брать в цикл записи, во время 1-го цикла нормально, а вот последующие берут не рамдомные переменные, а одни и те же, хотя они в своих циклах должны генерироваться вроде.
Нужно как-то сделать в цикле чтобы генерировалась новая случайная переменная с каждым его витком, уже мозг сломал.
if (!empty($_POST['ok'])){
for ($j=1;$j<=20;$j++) { //вот тут добавление
for ($i=1;$i<=14;$i++)
{
$params[] = rand(1,$max_tech);//массив случайных чисел от 1 до 7 для технических данных
$psi[] = rand(1,$max_psi); //массив случайных чисел от 1 до 10 для психологических данных
}
$query = mysql_query("INSERT INTO attributes (name,throwing, long_kick, dribling, over_attack, play_head, free_kick, Mounted_kick, keeping, picking, Pass, penalty, first_tuch, technics, corner, authority, aggression, select_position, Playing_bez_ball, improvisation, intuition, teamplay, concentration, decisionmaking, durability, flatness, self_possession, creation, bravery,endurance, coordination, agility, natural_data, strength, spring_ability, acceleration,age,haract)
VALUES ('$fname[$j]','$params[0]','$params[1]','$params[2]','$params[3]','$params[4]','$params[5]','$params[6]','$params[7]','$params[8]','$params[9]','$params[10]','$params[11]','$params[12]','$params[13]','$psi[0]','$psi[1]','$psi[2]','$psi[3]','$psi[4]','$psi[5]','$psi[6]','$psi[7]','$psi[8]','$psi[9]','$psi[10]','$psi[11]','$psi[12]','$psi[13]','$fys[0]','$fys[1]','$fys[2]','$fys[3]','$fys[4]','$fys[5]','$fys[6]','$age','$haract')");
}
header("Location:gen.php");
}
Invis1ble Можно поподробней, пробовал уже и все брать в цикл записи, во время 1-го цикла нормально, а вот последующие берут не рамдомные переменные, а одни и те же, хотя они в своих циклах должны генерироваться вроде.
Нужно как-то сделать в цикле чтобы генерировалась новая случайная переменная с каждым его витком, уже мозг сломал.
Спустя 19 минут, 5 секунд (17.03.2011 - 04:11) Invis1ble написал(а):
Andrey65
Что конкретно ты хочешь сделать? Просто вставить несколько записей со случайными данными?
Что конкретно ты хочешь сделать? Просто вставить несколько записей со случайными данными?
Спустя 1 минута, 54 секунды (17.03.2011 - 04:13) Andrey65 написал(а):
Да, чтобы не повторялись значения людей, пока только с именами $fname[$j] прокатывает, остальное пишется одинаковое
в этом цикле
for ($j=1;$j<=20;$j++)
чтобы на каждом витке заносило заново сгенерированые данные
'$params[0]','$params[1]','$params[2]','$params[3]' и т.д.
Спустя 31 минута, 27 секунд (17.03.2011 - 04:45) Invis1ble написал(а):
for ($j = 0; $i <= 20; $i ++)
{
$param = rand(1, 7);
$psi = rand(1, 10);
$fys = rand(1, 9);
if ($psi > 6 && $psi < 5) {$haract = "Холерик";}
if ($psi > 6 && $psi < 5) {$haract = "Холерик";}
if ($psi > 6 && $psi > 5) {$haract = "Сангвинник";}
if ($psi < 6 && $psi < 5){$haract = "Флегматик";}
if ($psi > 6 && $psi < 5){$haract = "Меланхолик";}
$query =
"INSERT INTO `attributes` SET
`name`='" . $mas[array_rand($mas)] . ' ' . ucfirst(strtolower($mas[array_rand($fam)])) . "',
`throwing`=" . $param . ",
`long_kick`=" . $param . ",
`dribling`=" . $param . ",
`over_attack`=" . $param . ",
`play_head`=" . $param . ",
`free_kick`=" . $param . ",
`Mounted_kick`=" . $param . ",
`keeping`=" . $param . ",
`picking`=" . $param . ",
`Pass`=" . $param . ",
`penalty`=" . $param . ",
`first_tuch`=" . $param . ",
`technics`=" . $param . ",
`corner`=" . $param . ",
`authority`=" . $psi . ",
`aggression`=" . $psi . ",
`select_position`=" . $psi . ",
`Playing_bez_ball`=" . $psi . ",
`improvisation`=" . $psi . ",
`intuition`=" . $psi . ",
`teamplay`=" . $psi . ",
`concentration`=" . $psi . ",
`decisionmaking`=" . $psi . ",
`durability`=" . $psi . ",
`flatness`=" . $psi . ",
`self_possession`=" . $psi . ",
`creation`=" . $psi . ",
`bravery`=" . $psi . ",
`endurance`=" . $fys . ",
`coordination`=" . $fys . ",
`agility`=" . $fys . ",
`natural_data`=" . $fys . ",
`strength`=" . $fys . ",
`spring_ability`=" . $fys . ",
`acceleration`=" . $fys . ",
`age`=" . rand(15, 23) . ",
`haract`='" . $haract . "'";
mysql_query($query) or die(mysql_error());
}
Спустя 18 минут, 30 секунд (17.03.2011 - 05:03) Andrey65 написал(а):
ругается на ф-ю array_rand(),
и заносит одинаковые значения $param $psi и $fys, имена $mas[array_rand($mas)] пустые, а вот сравнения работают, все-равно спасибо, уже близко!
Warning: array_rand() [function.array-rand]: First argument has to be an array in Z:\home\code\www\gen.php on line 19
и заносит одинаковые значения $param $psi и $fys, имена $mas[array_rand($mas)] пустые, а вот сравнения работают, все-равно спасибо, уже близко!
Спустя 46 минут, 9 секунд (17.03.2011 - 05:49) Invis1ble написал(а):
так ты вначале (перед циклом) считай файлы в массивы $mas и $fam
$mas = file('names.txt');
$fam = file('family.txt');
Цитата |
одинаковые значения $param $psi и $fys |
а тебе какие нужны? я исходил из твоего кода
Спустя 6 часов, 57 минут, 19 секунд (17.03.2011 - 12:47) Andrey65 написал(а):
Invis1ble Спасибо за помощь.+1
_____________