|
|
|
| Вот такой скрипт. Только он не правильно работает почему то... если надо 2 таблицы, он делает 4 (в парах таблиц одно и то же), если 3, он делает 9 (в тройках таблиц одно и то же). Что не так?!
<?php
if (!$_POST['razm'])
{
echo "ПшёЛ!!!";
exit();
}
$players = $_POST['n']; //массив с участниками
shuffle($players);
$tr = $_POST['razm']; //сколько участников в одной таблице
$m = $_POST['how_g']; //количетсво участников
if (($m % $tr) != 0)
{
$kolvo_gr = $m / $tr;
settype($kolvo_gr, integer);
$kolvo_gr = $kolvo_gr + 1;
}
else $kolvo_gr = $m / $tr;
for ($i = 0; $i <= $_POST['how_g'];) //наполнитель
{
for ($o = 1; $o <= $kolvo_gr; $o++) //создает таблицы
{
echo "<table border=1>";
for ($p = 0; $p <= $tr - 1; $p++) //создаёт строки в таблицах
{
echo "<tr><td>".$players[$i + $p]."</td></tr>";
}
echo "</table><br><br>";
}
$i = $i + $tr; //срабатывает но не правильно
}
?>
|
| |
|
|
|
|
|
|
|
для: Bubba
(28.12.2007 в 16:50)
| | А если сделать так?
<?php
$players = array("первый","второй","третий","четвертый","пятый","шестой","седьмой","восьмой","девятый"); //массив с участниками
shuffle($players);
$tr = 3; //сколько участников в одной таблице
$m = 9; //количетсво участников
if (($m % $tr) != 0)
{
$kolvo_gr = $m / $tr;
settype($kolvo_gr, integer);
$kolvo_gr = $kolvo_gr + 1;
}
else $kolvo_gr = $m / $tr;
for ($i = 0; $i < $m;) //наполнитель
{
for ($o = 1; $o <= $kolvo_gr; $o++) //создает таблицы
{
echo "<table border=1>";
for ($p = 0; $p <= $tr - 1; $p++) //создаёт строки в таблицах
{
echo "<tr><td>".$players[$i + $p]."</td></tr>";
}
echo "</table><br><br>";
$i = $i + $tr; //срабатывает но не правильно
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Джэф
(28.12.2007 в 18:09)
| | вот этот кусок
<?
if (($m % $tr) != 0)
{
$kolvo_gr = $m / $tr;
settype($kolvo_gr, integer);
$kolvo_gr = $kolvo_gr + 1;
}
else $kolvo_gr = $m / $tr;
?>
|
можно заменить одной строчкой
<?
//округление в большую сторону
$kolvo_gr = ceil($m / $tr);
?>
|
| |
|
|
|
|
|
|
|
для: Drago
(28.12.2007 в 18:16)
| | О, спасибо большое. ты мне только объясни, в чём разница, где у меня была ошибка? | |
|
|
|
|
|
|
|
для: Bubba
(28.12.2007 в 19:33)
| |
<?
for ($i = 0; $i <= $_POST['how_g'];)
?>
|
Если так сделать, то код выполнится на 1 раз больше чем надо. Ну и $i ты позже увеличивал ;) | |
|
|
|
|
|
|
|
для: Bubba
(28.12.2007 в 19:33)
| | Вообще, у вас там лишний цикл. Лучше будет сделать так:
<?php
$players = array("первый","второй","третий","четвертый","пятый","шестой","седьмой","восьмой","девятый"); //массив с участниками
shuffle($players);
$tr = 5; //сколько участников в одной таблице
$m = 9; //количетсво участников
$kolvo_gr = ceil($m / $tr);
for ($i=1; $i <= $kolvo_gr; $i++)
{
echo "<table border=1>";
for ($p = 0; $p < $tr; $p++) //создаёт строки в таблицах
{
if ($p + $tr * ($i - 1) < $m)
echo "<tr><td>".$players[$p + $tr * ($i - 1)]."</td></tr>";
}
echo "</table><br><br>";
}
?>
|
| |
|
|
|