№ Логин +Тестов ФИО Город Организация Должность E-mail Телефон Опыт работы с ViPNet Зарегистрирован Результат '; $usi = 1; do { $result2 = amysql_query ("SELECT `result`, CHAR_LENGTH(`answers`) FROM `$results_table` WHERE `uid`=${row['id']} $additional_where ORDER BY -`date`,-`time` LIMIT 1"); $row2 = false; if ($result2) $row2 = mysql_fetch_row ($result2); echo " $usi " . (!$print_version ? "" : '') . "${row['login']}" . (!$print_version ? "" : '') . " ${row['testlimit']} ${row['lastname']} ${row['firstname']} ${row['thirdname']} ${row['town']} ${row['firm']} ${row['position']} ${row['email']} ${row['phone']} ${row['vipnet']} ${row['date']}
${row['time']} " . ($row2 !== false ? floor(100*$row2[0]/$row2[1]) . '%
(' . $row2[0] . '/' . $row2[1] . ')' : '') . (!$print_version ? " ..." : '') . "  "; $usi++; } while ($row = mysql_fetch_assoc ($result)); echo ''; if (!$print_version && $command_list) echo '' . '' . '' . '' . '' . '' . '

'; else if ($print_version) { echo '

Назад

'; exit; } } else { if (!$result) $req_cfail = 10; else { echo ''; echo ''; echo '
Некого показать!

'; } } } // Функция вывода информации о пользователе и всех его результатов кратко // $userid :: ID пользователя (по умолчанию 1) // $print_version :: выдать версию для печати? (по умолчанию - нет) // $users_table :: таблица с инфой о пользователях (по умолчанию $UsersTable из config.php) // $results_table :: таблица с инфой о результатах пользователей (по умолчанию $ResultsTable из config.php) // $additional_where :: дополнительное WHERE-определение в формате "AND ля-ля-ля..." для ввода дополнительных ограничений - действует и на таблицу с пользователями, и на таблицу с результатами function print_results_info ($userid = 1, $print_version = false, $users_table = false, $results_table = false, $additional_where = '') { global $UsersTable, $ResultsTable; if ($users_table === false) $users_table = $UsersTable; if ($results_table === false) $results_table = $ResultsTable; // Выдаём таблицу результатов ... $result = amysql_query ("SELECT * FROM `$users_table` WHERE `id`=$userid $additional_where LIMIT 1"); $row = mysql_fetch_assoc ($result); echo "" . "" . "" . "" . "" . "" . "" . "" . "" . ""; $result = amysql_query ("SELECT CHAR_LENGTH(`answers`), `date`, `time`, `result`, `answers`, `varid` FROM `$results_table` WHERE `uid`=$userid $additional_where ORDER BY -`date`, -`time`"); $row2 = mysql_fetch_assoc ($result); $lastrow_d = 0; if ($result || !$row2) $lastrow_d = 1; echo "

ФИО

${row['lastname']} ${row['firstname']} ${row['thirdname']}

Город

${row['town']}

Организация

${row['firm']}

Должность

${row['position']}

E-mail

${row['email']}

Телефон

${row['phone']}

Опыт работы с ViPNet

${row['vipnet']}

Зарегистрирован

${row['date']} ${row['time']}

Логин

${row['login']}

Осталось тестов

${row['testlimit']}


"; $row = $row2; if ($result && $row) { echo ''; echo ''; do { $crcnt = 1 + $row['CHAR_LENGTH(`answers`)'] - 1; $crres = 1 + $row['result'] - 1; $crper = 100 * $crres / $crcnt; echo ""; } while ($row = mysql_fetch_assoc ($result)); echo '
Вариант тестаВремяДатаРезультат
${row['varid']}${row['time']}${row['date']}$crper% ($crres / $crcnt)
'; } echo '
'; } // Функция вывода всех результатов пользователей детально и exit'а после этого // $where_def :: WHERE-определение тех пользователей, информацию о ком надо выводить. where_def должно быть относительно таблицы t1, то есть WHERE-определение вида "t1.id=1" а не "`id`=1" (по умолчанию "1", то есть все) // $cmdtail :: "хвост" команды для вызова скриптов в URL (по умолчанию - пустая строка) // $users_table :: таблица с инфой о пользователях (по умолчанию $UsersTable из config.php) // $results_table :: таблица с инфой о результатах пользователей (по умолчанию $ResultsTable из config.php) // $questions_table :: таблица с вопросами (по умолчанию $QuestionsTable из config.php) // $additional_where :: здесь возможности ограничены :) это дополнительные ограничения только в виде "ПОЛЕ=ЗНАЧЕНИЕ", т.к в начало к нему приписывается имя таблицы. Действуют и на таблицу с пользователями, и на таблицу с результатами, и с вопросами. function print_tests_detailed_info ($where_def = '1', $cmdtail = '', $users_table = false, $results_table = false, $questions_table = false, $additional_where = false) { global $UsersTable, $ResultsTable, $QuestionsTable, $req_showall, $req_nohide; if ($users_table === false) $users_table = $UsersTable; if ($results_table === false) $results_table = $ResultsTable; if ($questions_table === false) $questions_table = $QuestionsTable; if ($additional_where !== false) $addwh = "AND t1.$additional_where AND t2.$additional_where"; else $addwh = ''; $result = amysql_query ("SELECT t1.lastname, t1.firstname, t1.thirdname, t2.* FROM `$users_table` AS t1, `$results_table` AS t2 WHERE $where_def $addwh AND t2.uid=t1.id ORDER BY t1.lastname, t1.firstname, t1.thirdname, -t2.date, -t2.time"); if ($row = mysql_fetch_assoc ($result)) { echo ''; $msg = 'Показаны неверные ответы выбранных пользователей'; if (!isset ($req_nohide)) $msg .= ' (показать неотвеченные...)'; else $msg = 'Показаны неверные и неотвеченные ответы выбранных пользователей (убрать неотвеченные...)'; if (!isset ($req_showall)) $msg .= ' (показать все...)'; else { if (isset ($req_nohide)) $msg = 'Показаны все ответы выбранных пользователей (убрать правильные...)(убрать и неотвеченные...)'; else $msg = 'Показаны ответы выбранных пользователей'; } echo ''; $notfirst = 0; while ($row) { echo ''; if ($additional_where !== false) $addwh = 'AND ' . $additional_where; else $addwh = ''; $res2 = amysql_query ("SELECT * FROM `$questions_table` WHERE `varid`=${row['varid']} $addwh ORDER BY `id`"); $quests = array (); while ($row2 = mysql_fetch_assoc ($res2)) { $quests [$row2['id']] = $row2; $quests [$row2['id']]['answer0'] = 'не отвечено'; } $allanswers = true; $noshown = true; $i = 0; foreach ($quests as $cq) { $outtr = false; if (strlen ($row ['answers']) > $i) { if ($row['answers']{$i} != $cq['rightanswer']) { $allanswers = false; if ($row['answers']{$i} != 0) $outtr = ' => ' . $cq ['answer' . $row['answers']{$i}] . ''; else if (isset ($req_nohide)) $outtr = ' => ' . $cq ['answer' . $row['answers']{$i}] . ''; } else if (isset ($req_showall)) $outtr = ' => ' . $cq ['answer' . $row['answers']{$i}] . ''; } if ($outtr !== false) { echo ''; $noshown = false; } $i++; } if ($allanswers) echo ''; else if ($noshown) echo ''; $row = mysql_fetch_assoc ($result); $notfirst = 1; } echo '
' . $msg . '
' . $row['lastname'] . ' ' . $row ['firstname'] . ' ' . $row ['thirdname'] . ': ' . floor (100 * $row['result'] / strlen ($row ['answers'])) . '%' . $row ['date'] . ' ' . $row ['time'] . '
' . $cq ['num'] . '. ' . $cq ['question'] . $outtr . '
Пользователь ответил на все вопросы правильно! Молодец :)
Нечего показать :(
'; } echo '

Внимание: для корректного вывода информации текущие вопросы в БД должны соответствовать тем, на которые отвечали выбранные пользователи
Назад

'; exit; } ?>