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 & MySQL

 PHP.SU

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


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

> Описание: помогите пожалуйста...
dmn
Отправлено: 18 Мая, 2008 - 15:41:49
Post Id



Новичок


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


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




Здравствуйте! У меня такой вопрос: как можно сделать, чтоб с БД выдавался вопрос и вместе с ним варианты ответов, но только в случайном порядке (именно варианты ответов).
пример БД (vopros):

tema \ vprs \ vrnt \ otvt

1 11? 111 | 112 | 113 113
2 22? 221 | 222 | 223 222
3 33? 331 | 332 | 333 332

кусок проги:

CODE (text):
скопировать код в буфер обмена
  1.  
  2. MYSQL_CONNECT($hostname,$username,$password) OR DIE("error db connection :o(");
  3. @mysql_select_db("$dbName") or die(":-(");
  4. {
  5.   $query = mysql_query("SELECT * FROM vopros ORDER BY RAND()");
  6.  }
  7.  
  8.  
  9.  while ($data = mysql_fetch_assoc($query)) {
  10.     if (!isset($arr[md5($data['tema'])])) $arr[md5($data['tema'])] = $data;
  11.   }
  12.   ?>
  13.   <form name="sw"  action='next1.php' method='post'>
  14.   <?
  15.     foreach ($arr as $a)   {
  16.         echo $a['tema']."<br>";
  17.  
  18.     echo $a['vprs']."<br>";
  19.     $variants = explode("|",$a['vrnt']);
  20.         $count=count($variants);
  21.                 for($idx=0;$idx<$count;++$idx){
  22.                 $voprosid = $a['id'];
  23.                 echo  '<input type=radio name='.$voprosid.' value='.$variants[$idx].'>'.$variants[$idx];
  24.                 echo "<br>";
  25.         }
  26.         $otvet = $a['otvt'];  
  27.         echo $otvet."<br>";
  28.         echo $voprosid."<br>";
  29.         echo "<hr>";
  30.   }
  31.  
  32. ?>

(Отредактировано автором: 18 Мая, 2008 - 15:43:07)

 
 Top
SergeantPEPPER
Отправлено: 19 Мая, 2008 - 10:57:32
Post Id



Частый гость


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


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




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


Или я чо то не так понял Однако
 
 Top
EuGen Администратор
Отправлено: 19 Мая, 2008 - 10:58:38
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Структуру и связи таблиц в студию.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
dmn
Отправлено: 20 Мая, 2008 - 00:34:34
Post Id



Новичок


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


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




tema \ vprs \ _______ vrnt__________\ otvt

1 ______ 11? ______111 | 112 | 113 ______113
2 ______22? ______221 | 222 | 223 ______222
3 _______33? ______331 | 332 | 333 ______332

это моя БД! нужно чтоб с 'vrnt' выводились варианты ответов в случайном порядке!

(Отредактировано автором: 20 Мая, 2008 - 00:36:59)

 
 Top
Eihwaz
Отправлено: 20 Мая, 2008 - 01:25:34
Post Id


Гость


Покинул форум
Сообщений всего: 112
Дата рег-ции: Нояб. 2007  


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




dmn пишет:
tema \ vprs \ _______ vrnt__________\ otvt

1 ______ 11? ______111 | 112 | 113 ______113
2 ______22? ______221 | 222 | 223 ______222
3 _______33? ______331 | 332 | 333 ______332

Тут и думать нечего:
+_+
/ \
7! 16? - __444__
\
44%
/
5:0 - ?? -
\
543__
Я думаю, автор темы сможет понять приведенное решение, так же, как я смог понять приведенную структуру базы данных.
 
 Top
EuGen Администратор
Отправлено: 20 Мая, 2008 - 10:09:26
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Автор: сделайте, пожалуйста, хотя бы show table для каждой таблицы и выложите результат внутри тегов [ code ] [ /code ]
Потому что то, что есть сейчас, не читабельно в принципе.

(Отредактировано автором: 20 Мая, 2008 - 10:10:23)



-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
SergeantPEPPER
Отправлено: 21 Мая, 2008 - 09:11:36
Post Id



Частый гость


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


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




dmn пишет:
tema \ vprs \ _______ vrnt__________\ otvt

1 ______ 11? ______111 | 112 | 113 ______113
2 ______22? ______221 | 222 | 223 ______222
3 _______33? ______331 | 332 | 333 ______332


А вот про столбец vrnt Вы уж поподробнее напишите, вопрос о том КАК хранятся данные был в общем-то про него... Что у Вас означает "|" ??? Однако
 
 Top
dmn
Отправлено: 30 Мая, 2008 - 23:52:11
Post Id



Новичок


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


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




извините за не корректность!

я не знаю как мне сделать лучше базу, чтоб выводило варианты ответов в произвольном порядке.
У меня есть на каждый вопрос 4-е варианта ответа! их лучше в одном столбце или по 4-ем раскидать???
и как это реализовать на ПХП???
 
 Top
D1mOn
Отправлено: 31 Мая, 2008 - 03:10:43
Post Id



Частый гость


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


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

[+][+][+][+][+]


dmn пишет:
я не знаю как мне сделать лучше базу, чтоб выводило варианты ответов в произвольном порядке.
У меня есть на каждый вопрос 4-е варианта ответа! их лучше в одном столбце или по 4-ем раскидать???
и как это реализовать на ПХП???


Для случайного юзайте rand, а для того чтобы записи не повторялись в запрос вставте DISTINCT. Что касается вариантов, можно раскидать по разным, а можно в одном и использовать разделитель |, а потом в пыхе разделять все это дело explode(). Но как вариант я бы выбрал первый (в разные), так как так будет действеннее работать distinct
 
 Top
EuGen Администратор
Отправлено: 31 Мая, 2008 - 10:29:02
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Зачем explode если в выборке оно и так будет разделено? ..
CODE (text):
скопировать код в буфер обмена
  1.  
  2. SELECT DISTINCT `field` FROM `your_table` ORDER BY RAND() LIMIT 4
  3.  

(Отредактировано автором: 31 Мая, 2008 - 14:10:49)



-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
valenok Модератор
Отправлено: 02 Июня, 2008 - 15:25:41
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


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




А причём distinct ? Это ты к тому что варианты ответов могут повторяться ?


-----
Truly yours, Sasha.
 
My status
 Top
EuGen Администратор
Отправлено: 02 Июня, 2008 - 16:25:16
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




По идее field может повториться (автор не указал обратное).


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
dmn
Отправлено: 04 Июня, 2008 - 17:24:02
Post Id



Новичок


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


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




PHP:
скопировать код в буфер обмена
  1.  
  2. $variant = mysql_result($result,$n,"vrnt");
  3. ...
  4. PRINT "<b> $vopros </b>";
  5.  
  6. $variants=explode("|",$variant);
  7. $count=count($variants);
  8. for($idx=0;$idx<$count;++$idx){
  9. echo  '<input type=radio name='.$voprosid.' value='.$variants[$idx].'>'.$variants[$idx];
  10. echo "<br>";
  11. }
  12. echo"<hr>";
  13.  $i++;
  14. }
  15.  


Если у меня варианты ответов записаны в одно поле 'vrnt' то как их выводить в рандом порядке, если придерживаться моего кода? как тут добавить ренд? подскажите пожалуйста!!!

(Отредактировано автором: 04 Июня, 2008 - 17:24:59)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB