Игорь_Vasinsky
17.11.2015 - 13:26
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
Цитата (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
18.11.2015 - 01:40
maruo, вот вам еще некоторая информация к размышлению.
<?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>
<?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