[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Распределение пользователей по группам
blade
предыдущяя тема удалена из-за названия, сейчас вроде правильно назвал

Вот возникла такая проблема ))

Имеется список из 32 пользователей(топ сайта), так вот их нужно разбить на 8 групп по 4 человека (рандомно).
при нажатии на кнопку 1 раз определяется группа заносится в БД, когда обработаны все 32 пользователя кнопка исчезает(это я уже сделаю сам)

как я предполагаю это нужно делать через цикл

Помогите разобраться на примере название БД любое(я потом подставлю свое)

Заранее всем спасибо



Спустя 57 минут, 52 секунды (12.09.2010 - 20:14) Guest написал(а):

$users; // массив из 32 участников начинающийся с нулевого ключа
shuffle($users);
$users_range=$users;
$x=0;

for ($i=1; $i<=8;$i++)
{
$group[$i][1]=$users_range[$x];
$group[$i][2]=$users_range[$x+1];
$group[$i][3]=$users_range[$x+2];
$group[$i][4]=$users_range[$x+3];

$x=$x+4;
}

В итоге многомерный массив group, в котором 8 групп, в каждой 4 человека, что с ними делать -смотри сам!

Спустя 4 минуты, 33 секунды (12.09.2010 - 20:18) blade написал(а):
Эти все пользователи зранятся в БД а как их поместить в масив ?

Спустя 2 минуты, 1 секунда (12.09.2010 - 20:20) Lenarfate написал(а):
mysql_fetch_assoc и цикл while

Спустя 1 минута, 52 секунды (12.09.2010 - 20:22) Guest написал(а):
blade
у тебя слишком мало пока знаний, почитай про ФУНКЦИИ РАБОТЫ С MYSQL в PHP, а также основы языка SQL, конкретно если, в данном случаи тебе нужно использовать mysql_query();

п.с, каким образом они у тебя попали в базу данных, если ты не можешь их вывести?

Спустя 12 минут, 32 секунды (12.09.2010 - 20:35) blade написал(а):
ВЫВЕСТИ МОГУ ЦИКЛОМ СПИСОК ВЕСЬ А КАК ПРИМЕНИТЬ ЕГО К ЭТОМУ КОДУ НЕПОЙМУ

Спустя 5 минут, 58 секунд (12.09.2010 - 20:41) Guest написал(а):
blade
ну покажи как ты выводишь в цикле, а там видно будет)

Спустя 4 минуты, 41 секунда (12.09.2010 - 20:45) blade написал(а):
$curr_status='';
$table_started=false;
while( $fetch = mysql_fetch_assoc( $q ) )
{
// как только статус сменился, начинаем новую таблицу;
// код работает и в случае самого начала данных, для первой строки

if( $fetch['user_status'] != $curr_status )
{
$curr_status=$fetch['user_status'];
if( $table_started )// если таблица уже была начата
{
// тут пишешь код закрытия текущей таблицы
}
....// тут пишешь код начала таблицы
.....
$table_started=true; // и про это надо не забыть этот статус уже не изменится до конца цикла while
}
// а тут пишешь код вывода текущей информации в таблицу
} // конец цикла while
if( $table_started )
{
// закрываем последнюю таблицу, если вообще они были начаты
}

Спустя 5 минут, 48 секунд (12.09.2010 - 20:51) Guest написал(а):
нужно в цикел собрать айди всех пользователей, я не знаю что у тебя в поле user_status, но если там не айди, то нам это поле не нужно!!
do
{
$users[]=$fetch['id'];
}
while( $fetch = mysql_fetch_assoc($q) )


вот и все, в массиве $users - у нас есть все пользователи(а точнее их айди!)

Спустя 8 минут, 28 секунд (12.09.2010 - 21:00) blade написал(а):

do
{
$users[]=$fetch['id'];
}
while( $fetch = mysql_fetch_assoc($q) )

$users; // массив из 32 участников начинающийся с нулевого ключа
shuffle($users);
$users_range=$users;
$x=0;

for ($i=1; $i<=8;$i++)
{
$group[$i][1]=$users_range[$x];
$group[$i][2]=$users_range[$x+1];
$group[$i][3]=$users_range[$x+2];
$group[$i][4]=$users_range[$x+3];

$x=$x+4;
}


так код должен быть ?

Спустя 2 минуты, 43 секунды (12.09.2010 - 21:02) Guest написал(а):
blade
да, так, если:
1) у тебя есть поле id с автоинкриментом(отображает номер пользователя), там где пользователи))
2) если ты выбрал нужных тебе 32 человека.

Спустя 1 минута, 7 секунд (12.09.2010 - 21:04) Guest написал(а):
точнее уже так
do
{
$users[]=$fetch['id'];
}
while( $fetch = mysql_fetch_assoc($q) )

shuffle($users);
$users_range=$users;
$x=0;

for ($i=1; $i<=8;$i++)
{
$group[$i][1]=$users_range[$x];
$group[$i][2]=$users_range[$x+1];
$group[$i][3]=$users_range[$x+2];
$group[$i][4]=$users_range[$x+3];

$x=$x+4;
}

Спустя 6 минут, 52 секунды (12.09.2010 - 21:10) blade написал(а):
спс завтра буду пробовать

Спустя 40 минут, 38 секунд (12.09.2010 - 21:51) linker написал(а):
Поповс... Правильно так
while($fetch = mysql_fetch_assoc($q))
{
$users[] = $fetch['id'];
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.