Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вопрос к Loki
 
 автор: do_cool   (24.11.2006 в 14:47)   письмо автору
 
 

Можно ли вчерашнюю процедуру:
/

function otbor()
{
if (@mysql_num_rows($_POST['q_tries'])<1)
{
//вывод списка вопросов с ответами из базы
$sql="select unique_code,n_vopr,formul from voprosnik";
$result=mysql_query($sql);
while ($row=mysql_fetch_array($result))
{
echo "<b><br>".$row['n_vopr']."&nbsp;&nbsp;".$row['formul']."</b><br>";
$sql1="select formulirovka from Answer_store where unique_code=".@$row['unique_code'];
$result1=mysql_query($sql1);
while ($row1=mysql_fetch_array($result1))
{
echo '<input name="box[]" type="checkbox">'.$row1['formulirovka']."<br>";
}
}
}
else
{
$id_tests=@$_POST['ID_test'];
$id_user=@$_POST['ID_user'];
//выбираем только те вопросы из данного теста, на которые пользователь не отвечал
$sql="SELECT unique_code, n_vopr, formul  
            FROM voprosnik 
            WHERE n_test=$id_tests 
            AND n_vopr   NOT IN(SELECT n_vopr  FROM History WHERE id_tests=$id_tests  AND ID_user=$id_user) 
            ORDER BY RAND() //перемешиваем вопросы
            LIMIT 10"; // и берем только 10 вопросов
$result=mysql_query($sql); 
while($voprosy=mysql_fetch_array($result)) 

 /*тт мы запрашиваем и выдаем пользователю варианты ответов на вопросы*/ 
 echo "<b><br>".$row['n_vopr']."&nbsp;&nbsp;".$row['formul']."</b><br>";
$sql1="select formulirovka from Answer_store where unique_code=".@$row['unique_code'];
$result1=mysql_query($sql1);
while ($row1=mysql_fetch_array($result1))
{
echo '<input name="box[]" type="checkbox">'.$row1['formulirovka']."<br>";
}

if (mysql_num_rows($result)<10) //если не задававшихся вопросов менее 10, то добираем из уже заданных

$limit=10-mysql_num_rows($result); 
 $sql="SELECT unique_code, n_vopr, formul  
            FROM voprosnik 
            WHERE n_test=$id_tests  
            AND n_vopr IN(SELECT n_vopr  FROM History WHERE id_tests=$id_tests  AND ID_user=$id_user) 
            ORDER BY RAND()  
            LIMIT $limit"; // добираем недостающие вопросы
$result=mysql_query($sql); 
while($voprosy=mysql_fetch_array($result)) 

 /*тут мы выдаем пользователю варианты ответов на вопросы*/ 
 echo "<b><br>".$row['n_vopr']."&nbsp;&nbsp;".$row['formul']."</b><br>";
$sql1="select formulirovka from Answer_store where unique_code=".@$row['unique_code'];
$result1=mysql_query($sql1);
while ($row1=mysql_fetch_array($result1))
{
echo '<input name="box[]" type="checkbox">'.$row1['formulirovka']."<br>";
}


}
}
otbor()


изменить так, чтобы получилась вот такая:
Процедура отбора вопросов для предъявления. По заданному ИД теста и макс. количеству баллов подобрать из потенциального списка вопросов список, набирающий требуемое количество баллов. Входные параметры – ID теста и потенциальный список вопросов. Выходные – назначаемый список вопросов.

PS: как видите, я сделал из нее функцию, чтобы, в случае чего, можно было ее вызвать ещё раз. Она рабочая, но я хочу сделать ещё одну функцию, которую описал выше. Подскажите, пожалуйста что нужно изменить или добавить... :)

   
 
 автор: Loki   (24.11.2006 в 15:19)   письмо автору
 
   для: do_cool   (24.11.2006 в 14:47)
 

>По заданному ИД теста и макс. количеству баллов подобрать из потенциального списка >вопросов список, набирающий требуемое количество баллов. Входные параметры – ID >теста и потенциальный список вопросов. Выходные – назначаемый список вопросов.

Немного не понял: нужно чтобы количество сумма баллов 10 вопросов была равна какому-то значению? Если да, то откуда оно берется? жестко задано изначально? и как оцениваются вопросы (порядок значений)?

   
 
 автор: do_cool   (24.11.2006 в 17:28)   письмо автору
 
   для: Loki   (24.11.2006 в 15:19)
 

>>По заданному ИД теста и макс. количеству баллов подобрать из потенциального списка >вопросов список, набирающий требуемое количество баллов. Входные параметры – ID >теста и потенциальный список вопросов. Выходные – назначаемый список вопросов.
>
>Немного не понял: нужно чтобы количество сумма баллов 10 вопросов была равна какому-то значению? Если да, то откуда оно берется? жестко задано изначально? и как оцениваются вопросы (порядок значений)?

Да, Вы правы, количество баллов будет задаваться преподавателем жестко при помощи формы редактора теста - ее я создам позже.Вопросы оцениваются так - за каждый првильный ответ - 2 балла, за неверный ответ -1 балл, за пропущенный верный ответ - 0 баллов.

   
 
 автор: Loki   (24.11.2006 в 18:07)   письмо автору
 
   для: do_cool   (24.11.2006 в 17:28)
 

Передавайте тогда в функцию еще необходимое количество баллов, эту переменную делите на два и вставляейте ее вместо десяток.

   
 
 автор: do_cool   (25.11.2006 в 08:40)   письмо автору
 
   для: Loki   (24.11.2006 в 18:07)
 

Необходимое количество баллов в функцию я передал, только, пардон, не понял зачем эту переменную делить на два?
Может быть Вы примерно напишите и тогда я пойму...

   
 
 автор: Loki   (25.11.2006 в 12:04)   письмо автору
 
   для: do_cool   (25.11.2006 в 08:40)
 

у вас же за вопрос дается два балла... следовательно, чтобы набрать N баллов нужно ответить на N/2 вопросов

   
 
 автор: do_cool   (25.11.2006 в 12:20)   письмо автору
 
   для: Loki   (25.11.2006 в 12:04)
 

аааа...все, понял, спасибо.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования