нужно сделать рандомное добавление ид пользователя в БД id юзера = USERID есть база данных id, user1, user2, user3, user4, user5, user6 будет что-то типа турнира, где играют 3 на 3 пользователь будет нажимать кнопку ВСТУПИТЬ и его id будет добавляться в одну из ячеек user1, user2, user3, user4, user5, user6 только USERID должно добавляться в рандомную ячейку
мне кажется вам надо разобраться с архитектурой данных, скажем сконструировать так, чтобы вы не задумывалась в каком порядке и что добавлять Ну например: Имеем таблицу ТУРНИРЫ: Код (Text): CREATE TABLE IF NOT EXISTS `test` ( `tournament` int(11) NOT NULL, `userid` int(11) NOT NULL ) ENGINE=MyISAM Таким образом, вы будете добавлять в таблицу строки где каждая строка состоит из: tournament (номер проходящего турнира) и uderid (участник), а вот уже потом делать выборку по номеру турнира и организовывать рандомную выдачу. (ЗЫ: соответсвенно можно добавить поле в таблицу для первичного присвоения порядка, чтобы в последствии сохранить порядок установленный после первой выборки) Вообще вариантов много, подумайте.
возможно не правильно объяснила создается турнир заявку в этом турнире смогут принять 6 человек эти 6 человек будут разделенны на 2 команды мне нужно сделать так чтобы их делило на команды рандомом, а не по порядку как они добавлялись
=) Перечитайте мой пост. Если вы все же настаиваете на собственной модели, то я рекомендую на момент регистрации на турнир сохранять заявки в другом месте и как только все участники заявили свое желание участвовать в турнире, создавать запись в БД с уже сшафленными участниками. Всё же подумайте над архитектурой. Мне не видно то, что доступно Вам. Может я и предложил бы иную схему если проанализировал какие есть возможности для выбора подхода к проектированию задачи.
ааа поняла вроде юзер нажимает ВСТУПИТЬ и создается запись с его юзер ид и с ид турнира в который он вступил? так?
допустим я сделала так, как вы предложили в турнире будет участвовать 6 человек возможно мне нужно будет выводить кто в какой команде будет играть до того момента как соберется 6 человек есть например 4 человека которые приняли заявку, возможно ли будет сделать чтобы показывало кто из них и где будет играть и чтобы их не перемешивало в дальнейшем больше и если можно, то хотябы принцип по которому все это делать
Наверное в вашем случае будет более удобнее сделать так: Код (Text): CREATE TABLE IF NOT EXISTS `test` ( `tournament` int(11) NOT NULL, `userid` varchar(11) NOT NULL, `level` float NOT NULL ) ENGINE=MyISAM а теперь самое забавное: Код (Text): INSERT INTO test VALUES( '1', '1', RAND() ) ЗЫ: по поводу float вам решать. Ну и что мы имеем? да банальный Код (Text): SELECT * FROM test WHERE tournament='1' ORDER BY level ASC Если важно сохранить предыдущую последовательность участников то .... м... дайте подумать.. сюда отвечу как надумаю ) Добавлено спустя 1 минут 0 секунды: Внесите ясность. Если мы пытаемся сохранять предыдущую позицию уже зарегистрированных на турнир, то RAND() теряет свой смысл, ибо в данном случае задача становиться из ряда "Кто первый зарегался тот так и будет играть".
да все именно так зарегился и тебя кинуло за команду 1 или за команду 2 и по окончанию набора команд ты так и остаешься за свою команду.
То есть вам нужно генерить случайный идентификатор команды который, как я понимаю, меньше кол-ва участников? То есть важный момент это не каким образом зарегистрировались участники турнира, а в какую команду они попали.. все верно?
участники турнира регистрируются отдельно важно в какой команде они будут играть, чтобы это был случайный выбор
Я бы организовал базу данных примерно так: Таблица "туриниры": ИД турнира, названите турнира (если надо), дата турнира. Таблица "команды": ИД команды, ИД турнира, Название команды Таблица "участники": ИД участника, ИД пользователя системы (user_id), ИД команды Выборка всех участников для выбранного турнира в таком случае: Код (Text): SELECT `участники`.`user_id`, `участники`.`ИД команды`, `команды`.`Название команды`, `Турниры`.`Название Турнира`, `Турниры`.`Дата турнира` FROM `Турниры` INNER JOIN `Команды` ON (`Турниры`.`ИД турнира` = `Команды`.`ИД турнира`) INNER JOIN `Участники` ON (`Участники`.`ИД команды` = `Команды`.`ИД команды`) WHERE `Турниры`.`ИД турнира` = запрошенный_ИД_турнира
подскажите как составить запрос на добавление есть таблица "турниры" в ней поля: "ид","название турнира", "админ турнира'' значение полей: ид=автоинкремент, название турнира=название 50 символов, админ турнира=ид юзера который добавил турнир и есть таблица "участники" там поля: "ид турнира", "ид участника" пользователь создает турнир, должно создаться две записи одна в таблице "турниры" другая в таблице "участники" в таблице "турниры": "1","название турнира", "1" в таблице "участники": "1", "1" все вроде как просто, но не могу понять как получить ид турнира для создания записи в таблице "участники" (конечно могу получить ид, но мне кажется мой метод будет очень не простым, сначало сделать INSERT, потом SELECT, а потом опять INSERT )
Код (Text): INSERT INTO tournament VALUES(NULL, название_турнира, админ); INSERT INTO members VALUES(LAST_INSERT_ID(),ид_участника); NULL - для автоинкрементации ID тут MySQL сам подставит ид из предыдущего запроса. Все это делается одним запросом из php Зы: некоторую логику я все же рекомендовал бы вам перекладывать на плечи MySQL, в частности на SQL запросы. Ну нет смысла использовать mysql_insert_id (имхо)
mysql_query ("INSERT INTO `tournament` VALUES ('NULL', '".$title."', '".USERID."')"); mysql_query ("INSERT INTO `members` VALUES ('".LAST_INSERT_ID()."', '".USERID."')"); ошибка 500 выскакивает
LAST_INSERT_ID - это функция самого MySQL, а не php ) Код (Text): mysql_query ("INSERT INTO `members` VALUES (LAST_INSERT_ID(), '".USERID."')"); Зы: у вас ид юзера ввиде константы?
да ввиде константы? это плохо? ж) и еще вопросик: после завершения турнира каждый пользователь должен оценить противника тоесть получается от одного юзера 5 оценок пока он не оценит, играть в другом турнире он не сможет вопрос: как устроить базу данных в таком случае? как я думаю: создать таблицу `point` в ней `ид_того_кто_оценивал`, `кол-во баллов`, `ид_того_кто_оценивает`