[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Простой тест на PHP
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
maruo
Цитата (Игорь_Vasinsky @ 17.11.2015 - 11:22)
Цитата
дайте поучительную литературу

то ЧТо надо)
Игорь_Vasinsky
maruo
старался.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Kusss
Цитата (maruo @ 17.11.2015 - 00:52)
А все решил вопрос.
if($result_ans){
if(mysql_num_rows($result_ans)>0){
$data=array();
while($myrow_ans = mysql_fetch_assoc($result_ans)) {
$data[]=$myrow_ans;
}
echo '<pre>'; print_r($data); echo '</pre>';
}
}



echo $data['1']['answers'];

Почти все верно кроме ....
1) $data=array();
лучше вынести за пределы проверок. Иначе при отсутствии данных будет нотис (ошибка), что переменная не определена.
2) $data[]=$myrow_ans;
логичнее не давать ключи по порядку, а использовать уже имеющиеся. допустим
$data[ $myrow_ans['id'] ]=$myrow_ans;
3) Имена переменных не айс. Но это сугубо личное, если один работаешь.
Valick
maruo, вот вам еще некоторая информация к размышлению.

base.sql
--
-- Структура таблицы `question`
--

CREATE TABLE IF NOT EXISTS `question` (
`q_id` int(11) NOT NULL AUTO_INCREMENT,
`q_quest` varchar(255) NOT NULL,
PRIMARY KEY (`q_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

--
-- Дамп данных таблицы `question`
--

INSERT INTO `question` (`q_id`, `q_quest`) VALUES
(1, 'сколько будет 2 + 2'),
(2, 'сколько будет 2 + 3');

--
-- Структура таблицы `answer`
--

CREATE TABLE IF NOT EXISTS `answer` (
`a_id` int(12) NOT NULL AUTO_INCREMENT,
`q_id` int(11) NOT NULL,
`a_answer` varchar(255) NOT NULL,
`a_correct` int(1) NOT NULL,
PRIMARY KEY (`a_id`),
KEY `q_id` (`q_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=10 ;

--
-- Дамп данных таблицы `answer`
--

INSERT INTO `answer` (`a_id`, `q_id`, `a_answer`, `a_correct`) VALUES
(1, 1, '2', 0),
(2, 1, '4', 1),
(3, 1, '6', 0),
(4, 1, '8', 0),
(5, 2, '1', 0),
(6, 2, '3', 0),
(7, 2, '5', 1),
(8, 2, '7', 0),
(9, 2, '9', 0);

quest.php
<?php
include_once('connect.php');

$end_line = "\n";
$q_id = isset($_POST['quest'])?(int)$_POST['quest']:0;

$query = "SELECT q.q_id, q.q_quest, a.a_id, a.a_answer
FROM answer a
RIGHT JOIN (SELECT q_id, q_quest
FROM question
WHERE q_id >
$q_id
LIMIT 1) q USING(q_id)";
$res = mysql_query($query) or die(mysql_error());
if($res){
if(mysql_num_rows($res) > 0){
while($row=mysql_fetch_assoc($res)){
$quest = $row['q_quest'];
$hidden = ' <input type="hidden" name="quest" value="'.$row['q_id'].'">'.$end_line;
$input .= ' <p><input type="radio" name="answer" value ="'.$row['a_id'].'"> '.$row['a_answer'].'</p>'.$end_line;
}
}
}

?>
<!DOCTYPE html>
<
html>
<
head>
<
meta charset="utf-8" />
<
title>Простой тест на PHP+MySQL</title>
</
head>
<
body>
<
h1>Простой тест на PHP+MySQL</h1>
<
h2><?php echo $quest;?></h2>
<
form action = "answer.php" method = "POST">
<?php echo $hidden.$input;?>
<p><input type="submit" value="Отправить ответ"></p>
</
form>
</
body>
</
html>

answer.php
<?php
include_once('connect.php');

$q_id = isset($_POST['quest'])?(int)$_POST['quest']:0;
$a_id = isset($_POST['answer'])?(int)$_POST['answer']:false;
if($q_id && $a_id){
$query = "SELECT a_correct, q_quest, (SELECT MAX(q_id) FROM question) m_id
FROM answer
LEFT JOIN question USING(q_id)
WHERE q_id=
$q_id
AND a_id=$a_id";
$res = mysql_query($query) or die(mysql_error());
if($res){
$row = mysql_fetch_assoc($res);

if($row['a_correct']==1){
$message = 'На вопррос: "'.$row['q_quest'].'" Вы ответили правильно';
}else{
$message = 'На вопррос: "'.$row['q_quest'].'" Вы ответили неправильно';
}

$submit = '<input type="submit" value="Перейти к следующему вопросу">';
if($q_id >= $row['m_id']){
$q_id = '0';
$submit = '<input type="submit" value="Пройти тест ещё раз">';
}
?>
<!DOCTYPE html>
<
html>
<
head>
<
meta charset="utf-8" />
<
title>Простой тест на PHP+MySQL</title>
</
head>
<
body>
<
h1>Простой тест на PHP+MySQL</h1>
<
h2><?php echo $message;?></h2>
<
form action="quest.php" method="POST">
<
input type="hidden" name="quest" value="<?php echo $q_id;?>">
<
p><?php echo $submit;?></p>
</
form>
</
body>
</
html>
<?php
}
}

?>


_____________
Стимулятор ~yoomoney - 41001303250491
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.