Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проектирование базы данных.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Sajaxt
Отправлено: 09 Декабря, 2009 - 21:43:48
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Окт. 2009  


Помог: 0 раз(а)




Доброе время суток!


Есть таблица с вопросами, есть таблица с пользователями. Количество пользователей, не постоянно. Мне надо сделать так чтобы пользователь случайным образом отвечал на вопросы, и чтобы они не повторялись. Сидел ломал голову, както не очень предстовляю себе, как реализовать учет заданных вопросов, для каждого пользователя. Создовать кучу таблиц, мне кажется не самое лучшее решение...
Подскажите пожалуйста, может ктото чтото подобное уже делал.

Зарание благодарен!
 
 Top
OverNik
Отправлено: 09 Декабря, 2009 - 23:05:35
Post Id



Частый гость


Покинул форум
Сообщений всего: 182
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




создай в табле user поле quest и в него заноси ID вопросов те на которые уже ответел юзер:
3,5,11,22
дальше
PHP:
скопировать код в буфер обмена
  1.  $user['quest'] = explode(",",$$user['quest']);
  2. forearch($user['quest'] as $quest)
  3. {
  4.  //Генерируем новый ID для нового вопроса (рандомом)
  5.  //$count - количество вопросов
  6.  $questID = rand(1,$count);
  7.  //Проверяем что бы ID что в таблице с вопросами не совпадало с теме что уже ввел юзер
  8.  if($questID==$quest)
  9.  {
  10.    //генерируем новый ID так как на старый уже был подан ответ
  11.  }
  12. }
  13.  


Это только пример....
 
 Top
Sajaxt
Отправлено: 10 Декабря, 2009 - 02:43:01
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Окт. 2009  


Помог: 0 раз(а)




Большое спасибо!

У меня тут с приятелем спор вышел, что будет лучше?
рандомно записать строку с номерами вопросов, к примеру 7,5,89,5 и в этом порядке их выводить, удаляя по одному.

Или же лучше вписывать по одному отвеченому вопросу, и выбирать каждый вопрос рандомно.
 
 Top
Stierus Супермодератор
Отправлено: 10 Декабря, 2009 - 08:55:39
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




в базе данных делаешь 3 таблицы:

users:
id
name
psw
какие тебе тут поля еще нужны

questions:
id
text

answers:
user_id
question_id
answer

Соответственно что бы проверить, отвечал ли пользователь на определенный вопрос - надо из таблицы answers выбрать все записи, у которых user_id - номер пользователя из таблицы пользователей, а question_id - номер вопроса из таблицы вопросов. Если запись есть - пользователь уже отвечал, если нет - можно задавать вопрос
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Прочее »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB