[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Простой тест на PHP
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
inpost
Свой код почитай.
У тебя написано: "вопрос№1": $load_test = 1;

if(isset($_POST['plus'])){
$load_test =++ $_SESSION['count'];
}

А тут сказано, что номер вопроса ($load_test) станет равен счётчику только в случае нажатия на <input type="submit" name="plus">.
Если на эту кнопку не нажимать, то этот код отрабатывать и не будет, собственно.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
AllesKlar
Цитата (maruo @ 11.11.2015 - 22:12)
Я не могу забросить это дело, пока не узнаю в чем сейчас проблема.

Иногда лучше сжечь и построить заново.
Это как раз твой случай.

Итак, строим заново:
1. Забыть про смешивание обработки данных и вывод данных. Именно по этой причине у тебя такая неразбериха. Ты сначала написал простенькое, потом добавляешь логики, но теперь придется и переписывать вывод, т.к. он уже не соответствует новой логике.

2. Инициализируй переменные дефолтными значениями.
Кто-то скажет, что тру-программисты так не делают, но это из разряда "Тормаза придумали трусы, настоящие пацаны тормозят движком, ручником и юзом".

3. Пока ты учишься, не ленись писать больше кода, который будет тебе более понятен.
Писать в одну строку, использовать плейсхолдеры и т.д. это все круто, но глупо и больно при дебаге.
Станешь старше, будешь исполнять трюки, а пока не ленись написать:
echo '<input type="submit", name="a2", value="' .  $myrow["answer2"] . ''">';


Осталное тебе Valick расскажет, когда у него голова перестанет болеть.
Не сомневайся, он расскажет, он теперь не сможет не рассказать :)

А завтра я тут анекдот зопостю, очень в тему будет :)

_____________
[продано копирайтерам]
maruo
Цитата (AllesKlar @ 12.11.2015 - 02:09)
echo '<input type="submit", name="a2", value="' .  $myrow["answer2"] . ''">';

Не понимаю зачем мне писать больше, если я могу написать короче и лучше буду это понимать , чем такой расширенный. Для меня это сложнее , мне проще подставить маркеры.
Я не знаю как вывести след вопрос.
Я могу в ручную поменять в запросе id , поставить вывод рандомного id.
А как вывести по кнопке не получается. Если я использую в запросе выборки $id вы пишете что такого делать нельзя. ТОгда у меня ступор и тут же вопрос. А КАК ЖЕ ЕЩЕ?
maruo
Давайте не будем заострять внимание на то что все должно быть отдельно в разных файлах
То что обработка в одном месте, запросы в отдельном.
Меня интересует другое.

В ручную я меняю id все меняется и подставляется правильно.
Отвечаю на вопросы все проверяется ответы сходятся.

Могу вывести любой вопрос из бд со всеми все нормально.
Но это все в ручную переписывать запрос WHERE id...

Как мне это сделать через кнопку след 'вопрос'
Если мне нельзя использовать в запросе $id.

Цитата (maruo @ 11.11.2015 - 00:07)
$load_test =++ $_SESSION['count'];

писать так это тяжкий грех для программиста
возьмите за правило, что id можно только получить из БД его нельзя сформировать на уровне РНР, а потом сделать выборку из БД основанную на умозаключениях.

bd.php
$db = mysql_connect("localhost","testuser","12345");
mysql_select_db('gameshop');
$result = mysql_query("SELECT * FROM game WHERE id='5'",$db) or die(mysql_error());//выбираем 5й вопрос.
$myrow = mysql_fetch_array($result);

check.php
<?
//error_reporting(E_ALL);
header('content-type: text/html; charset=utf-8');
include ("bd.php");
/***************** То что ответит блок проверки вопроса *******************/
$var1 = "Ответ верный";
$var2 = "Ответ неверный";
$v_ans = false;

$myrow['id'];//текущий id вопросаs
$myrow['valid_answer'];//правильный ответ
/***************** Проверяем какая кнопка была нажата, и помещаем результат в $v_ans *******************/
if(isset($_POST['a1'])){
$v_ans = $_POST['a1'];}
elseif(isset($_POST['a2'])){
$v_ans = $_POST['a2'];}
elseif(isset($_POST['a3'])){
$v_ans = $_POST['a3'];}
elseif(isset($_POST['a4'])){
$v_ans = $_POST['a4'];}
/***************** Проверка на правильность ответа *******************/
if(isset($_POST['a1'])){
if($myrow['valid_answer'] == $v_ans) $myrow['result_test'] = $var1;
else $myrow['result_test'] = $var2;}
if(isset($_POST['a2'])){
if($myrow['valid_answer'] == $v_ans) $myrow['result_test'] = $var1;
else $myrow['result_test'] = $var2;}
if(isset($_POST['a3'])){
if($myrow['valid_answer'] == $v_ans) $myrow['result_test'] = $var1;
else $myrow['result_test'] = $var2;}
if(isset($_POST['a4'])){
if($myrow['valid_answer'] == $v_ans) $myrow['result_test'] = $var1;
else $myrow['result_test'] = $var2;};
/***************** Создано для отслежки работы *******************/
echo "<br>ID вопроса \n". $myrow['id'];
echo "<br>Верный ответ: \n". $myrow['valid_answer'];
echo "<br>Текущий ответ: \n". $v_ans;
echo "<br>Результат:\n". $myrow['result_test'];
/***************** Форма вывода вопросов/ответов *******************/
printf ('<p style="text-align:center">%s</p>
<form action="check.php" style="text-align:center" method="post">
<input type="submit", name="a1", value="%s">
<input type="submit", name="a2", value="%s">
<input type="submit", name="a3", value="%s">
<input type="submit", name="a4", value="%s"><br></form>'
,
$myrow["question"],
$myrow["answer1"],
$myrow["answer2"],
$myrow["answer3"],
$myrow["answer4"]);

?>
<form action="index.php" style="text-align:center"><button><? echo "Назад" ?></button></form>
Быстрый ответ:

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