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

Форум PHP

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

 

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

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

тема: ассоциативный массив на РНР
 
 автор: do_cool   (23.11.2006 в 13:49)   письмо автору
 
 

Напишите пожалуйста, как создать ассоциативный массив на РНР - массив предъявленных вопросов для тестирующей системы. Я новичок, а делать ещё очень много...

   
 
 автор: Loki   (23.11.2006 в 13:50)   письмо автору
 
   для: do_cool   (23.11.2006 в 13:49)
 

ответ "руками" вас устроит?
если нет, тогда конкретнее описывайте задачу.

   
 
 автор: do_cool   (23.11.2006 в 14:26)   письмо автору
 
   для: Loki   (23.11.2006 в 13:50)
 

>ответ "руками" вас устроит?
>если нет, тогда конкретнее описывайте задачу.


Вообще говоря, нужна функция формирования потенциального списка вопросов.Входные параметры – ID теста и массив УЖЕ предъявленных вопросов. Выходной – массив возможных вопросов.
Как я понимаю, нужны два ассоциативных массива, но я не знаю синтаксиса написания

   
 
 автор: babilonian   (23.11.2006 в 14:38)   письмо автору
 
   для: do_cool   (23.11.2006 в 14:26)
 

Может так?

$a = array( 'quest' => 'one', 'quest1' => 'two', 'quest3' => 'three' );
$b = array( 'quest4' => 'four', 'quest5' => five', 'quest6' => 'six' );
$c = array('first_blok' => $a, 'second_block' =>$b);

   
 
 автор: Loki   (23.11.2006 в 15:07)   письмо автору
 
   для: do_cool   (23.11.2006 в 14:26)
 

А где храняться вопросы?

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

Приведу ниже начатый скрипт:


//Процедура отбора вопросов для предъявления
//
function otbor()
// функция должна выводить список потенциальных вопросов для предъявления. Входные параметры - ID-теста("id_tests") и ID студента("id_user")
// по входным параметрам получаю массив номеров заданных ранее вопросов $q1
//  делается запрос,SQl в котором искомые вопросы не входят в полученный массив, опереляется число полученных новых вопросов
// если число новых вопросов недостаточно для формирования полного теста, то делается запрос в котором нет условия-ограничения   и ищутся вопросы дополняющие набор до нужного количества баллов
// Выходным параметром является массив сформированных вопросов
{
$arr= array()
// ***не знаю что писать здесь***
}
//вывод списка вопросов с ответами из базы
$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>";
}
}
?>


База находится на mySQL...но это дела не меняет... :)))

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

>База находится на mySQL...но это дела не меняет... :)))
меняет, так как нам неизвестна структура БД...
где учитываются заданные вопросы?

   
 
 автор: do_cool   (23.11.2006 в 15:46)   письмо автору
 
   для: Loki   (23.11.2006 в 15:34)
 

В прикрепленном файле находятся концептуальная и физическая модели базы

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

Здесь находится сформированный в PowerDesigner скрипт создания базы для mySQL

   
 
 автор: do_cool   (23.11.2006 в 15:51)   письмо автору
 
   для: Loki   (23.11.2006 в 15:34)
 

А вопросы должны учитываться в таблице "History" по соответствующим полям: ID_user, ID_test и n_vopr

   
 
 автор: Loki   (23.11.2006 в 16:45)   письмо автору
 
   для: do_cool   (23.11.2006 в 15:51)
 

Сколько всего сразу:)
Я бы делал примерно так:

если вопросы должны выпадать случайным образом, то:
<?
//выбираем только те вопросы из данного теста, на которые пользователь не отвечал.
$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)
            ORDR BY RAND() //перемешиваем полученыне вопросы
            LIMIT 5"
// и берем только 5 вопросов
$result=mysql_query($sql);
while(
$voprosy=mysql_fetch_array($result))
{
 
/*тут мы запрашиваем и выдаем пользователю варианты ответов на вопросы*/
}
if (
mysql_num_rows($result)<5//если не задававшихся вопросов меньше 5, то добираем из уже заданных
{
$limit=5-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)
            ORDR BY RAND() 
            LIMIT 
$limit"// добираем недостающие вопросы
$result=mysql_query($sql);
while(
$voprosy=mysql_fetch_array($result))
{
 
/*тут мы запрашиваем и выдаем пользователю варианты ответов на вопросы*/
}
}



Вот. Так что какой тут нужен массив я не очень понял

   
 
 автор: do_cool   (24.11.2006 в 09:50)   письмо автору
 
   для: Loki   (23.11.2006 в 16:45)
 

Огромное спасибо, Loki, очень признателен Вам!
Я, честно говоря, тоже не совсем понимаю зачем здесь нужен массив...просто руководитель сказал "НАДО!"...ну ничего, перетопчется... :)))
Вы не против, если в случае других вопросов я обращусь снова попозжее?

   
Rambler's Top100
вверх

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