[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: перенос массива в таблицу
Guest
есть массив из 100 элементов с ключами-id.

есть таблица из 100 строк с полями id и x

как максимально правильно перенести массив в таблицу?

То есть элемент массива с ключем 10 попадает в поле c id = 10, а значение этого элемента в поле x этой строки , второй элемент например с ключем 150 попадает в поле с id 150, а значение - в поле x этой же строки. И так до конца.

Как организовать?







Спустя 4 минуты, 40 секунд (13.07.2011 - 14:01) Raito-kun написал(а):
слишком много вопросов, товарищ гость. вы нам свое собеседование что ли скидываете? в цикле инсёртом.

Спустя 9 минут, 35 секунд (13.07.2011 - 14:10) Guest написал(а):
Raito-kun
Надеюсь вы пошутили =)

п.с. всего 2 вопроса, и, по идее, для знающих людей - не самые сложные далеко.


Спустя 24 минуты, 9 секунд (13.07.2011 - 14:35) inpost написал(а):
foreach ($array as $k=>$v)
$table .= '<tr><td>'.$k.'</td><td>'.$v.'</td></tr>';

Вот так перенесли в таблицу. А второе не понял.

Спустя 12 минут, 51 секунда (13.07.2011 - 14:47) Guest написал(а):
inpost
аааа, вообще не так понял =)) Предыдущий пользователь внес путаницу.

В данной теме 1 вопрос всего )

Говоря максимально точно и с самого начала. Представьте, что в таблице зарегано 100 человек, например.

нужно распределить всех на группы по 2 человека в каждой. У каждого члена группы - должен быть одинаковый ключ.

Как только голову не ломал - не могу понять как сделать это нормально (без 100 запросов в цикле).

Предположим, что участников не 100, а 6, тогда. Вот какой результат нужен в этом случаи.


userid | key
1 | 4
2 | 6
3 | 9
4 | 6
5 | 9
6 | 4



Спустя 3 минуты, 44 секунды (13.07.2011 - 14:51) inpost написал(а):
Ты опять объясняешь плохо! Покажи свой запрос на 100 подзапросов, тогда может понятнее будет sad.gif
Потому что данные, которые ты представил, как-то хаотично вывелись, просто с сортировкой по userid

Спустя 10 минут, 36 секунд (13.07.2011 - 15:02) Guest написал(а):
inpost
оккк, щас попробую. на примере из 6 человек

вот допустим я составил массив, в котором значения случайным образом распределились между участниками:

ключи - массива - это айди участника, а значения массива - это их "ключи"

$groups = array ();
$groups[1] = 4
$groups[2] = 6
$groups[3] = 9
$groups[4] = 6
$groups[5] = 9
$groups[6] = 4

foreach ($group as $k=>$v)
{
$userid = $k;
$key = $v;

mysql_query("UPDATE table SET key='$key' WHERE userid = '$userid');
}



Спустя 3 минуты, 32 секунды (13.07.2011 - 15:05) Winston написал(а):
Я танкист, потому нифига не понял huh.gif
Так чем тебя этот запрос не устраивает ?

Спустя 1 минута, 31 секунда (13.07.2011 - 15:07) Guest написал(а):
одинаковые ключи говорят о том, что участники находятся в одной группе. не важно какие именно ключи, главное что одинаковые. И в группе должно быть 2 человека.



Спустя 48 секунд Guest написал(а):
PHPprogramer

А нормально будет, если скажем участников 5000?

5000 запросов в цикле это нормально? =))

Спустя 13 минут, 27 секунд (13.07.2011 - 15:20) quickxyan написал(а):
Guest
а ты хочешь постоянно использовать этот цикл?

Спустя 4 минуты, 22 секунды (13.07.2011 - 15:25) Guest написал(а):
quickxyan
в том-то и дело, что не хочу. Мне кажется можно распределить всех учасников на группы по 2 человека одним запросом. Только я не знаю как (

Спустя 17 минут, 32 секунды (13.07.2011 - 15:42) Winston написал(а):
Еще раз.
Ты хочешь:
Объединить юзеров, в группу по 2 и у которых одинаковые ключи ?
И в базе всем юзерам группы поставить одинаковые ключи, верно ?
Хорошо, а если юзеров с одинаковыми ключами будет больше чем 2, все равно по 2 группе нужно разбить ?

Спустя 7 минут, 22 секунды (13.07.2011 - 15:49) Guest написал(а):
PHPprogramer

Совершенно верно!

В том и дело, что в группе не должно быть больше 2 человек!

То есть у каждой группы, как бы, свой уникальный ключ, которым обладают члены только этой группы.



Спустя 1 минута, 55 секунд (13.07.2011 - 15:51) Winston написал(а):
Цитата (Guest @ 13.07.2011 - 15:49)
То есть у каждой группы, как бы, свой уникальный ключ, которым обладают члены только этой группы.

Ну, а если вот так будет
Цитата
$groups[1] = 4
$groups[2] = 4
$groups[3] = 9
$groups[4] = 6
$groups[5] = 9
$groups[6] = 4

То есть у 3 юзеров будут одинаковые ключи ?

Спустя 2 минуты, 2 секунды (13.07.2011 - 15:53) Guest написал(а):

PHPprogramer
Этот массив составляется так, чтобы было по два одинаковых ключа. не больше, не меньше!

Спустя 52 секунды (13.07.2011 - 15:54) Guest написал(а):
PHPprogramer
НО ДА, еслиб было так, то было бы 3 пользователя в группе =)

Спустя 2 минуты, 51 секунда (13.07.2011 - 15:57) Winston написал(а):
Цитата (Guest @ 13.07.2011 - 15:53)
Этот массив составляется так, чтобы было по два одинаковых ключа. не больше, не меньше


Цитата (Guest @ 13.07.2011 - 15:54)
НО ДА, еслиб было так, то было бы 3 пользователя в группе =)

Вы хотите мозг вынести? smile.gif

Спустя 1 минута, 9 секунд (13.07.2011 - 15:58) Админ написал(а):
Цитата
ключи - массива - это айди участника, а значения массива - это их "ключи"

я может и с паровоза - но разве может быть в одномерном массиве два одинаковых ключа

Спустя 3 минуты, 34 секунды (13.07.2011 - 16:02) Guest написал(а):
PHPprogramer

да нет =) Я подумал, что вы уже уловили мысль просто.

Вообще смысл, чтобы в таблице с юзерами, у каждого появился в поле key ключ. И Так чтобы, у каждого из юзеров был ОДИН человек с таким же ключом =)

Вот и все.

Просто первая мысль, которая у меян пришла - это вот с помощью массива сделать. но это лишь мой "способ". Может иначе можно!



Спустя 1 минута, 28 секунд Guest написал(а):
Админ
Вы обратили внимание лишь на самую неудачную фразу в теме =) Смысл вопроса я уже неоднократно изложил. Максимально подробно в своем последнем сообщении ( перед этим )

Спустя 7 минут, 15 секунд (13.07.2011 - 16:09) Админ написал(а):
чё то я совсем отупел или мысль не уловливаю - сделай двухмерный массив

$groups[1][1] = 4
$groups[2][1] = 6
$groups[3][2] = 9
$groups[4][2] = 6
$groups[5][3] = 9
$groups[6][3] = 4

Спустя 1 день, 6 минут, 5 секунд (14.07.2011 - 16:15) Skesh написал(а):
Guest а откуда берется сам масив? Из SQL? Если да следует просто правильно запрос составить, и все елементы сами лягут куда надо, так пойдет? Масив я так понял двумерный?

for ($i1=1; $i1<=100; $i1++)
{
for ($i2=0; $i2<=1; $i2++)
{
echo "
<table>
<tr>
<td>Id</td><td>X</td>
</tr>
<tr>
<td>
$i1</td><td>$i2</td>
</tr>
</table>"
;
}

}

Быстрый ответ:

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