[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Простой тест на PHP
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
Valick
inpost, тебе надо подружить голову с глазами :D
вот так ТС хочет выбрать следующий вопрос
if(isset($_POST['plus'])){
$load_test =++ $_SESSION['count'];
}

я сказал что так нельзя, правда не сказал почему, хотя много намекал в теме

_____________
Стимулятор ~yoomoney - 41001303250491
maruo
Цитата (inpost @ 15.11.2015 - 20:19)
maruo
Цитата
Как мне это сделать через кнопку след 'вопрос'

Тебе надо подружить голову с руками (не обижайся, я не грублю). Допустим, у тебя в $_SESSION['count'] содержится номер вопроса, на который идёт ответ. Ты это понимаешь? Вроде да, а в коде написано:

$load_test = 1;

Почему работаешь с ТЕСТОМ 1 постоянно? Потому что руки написали это, хотя голова тебе в 100 раз намекает, что твой номер вопроса содержится в $_SESSION['count'];

Вот же:
$result = mysql_query("SELECT * FROM game WHERE id='$load_test'",$db) or die(mysql_error());

Ты выбираешь $load_test = 1;, то есть единицу постоянно...

это то я уже понял, сейчас другую задачу мне задали. Это нормализация бд по 3м нормалям.

И начал сам себе усложнять задачу.

Тест будет иметь :
Вопрос.
Сложность.
Правильный ответ.
Варианты ответов.(неверные)
Изображение(вопросы будут основываться на изображении)


как теперь это дело реализовать в 3х нормальных формах не понимаю.

Например вопросы будут различаться между собой, по сложности.
Сначала будут выводится легкие, потом нормальные. и в конце сложные.

Думаю создать 3 таблицы. С разными видами сложности.
Например в таблице easy будет:

id вопроса.
сам вопрос
верный ответ
изображение.
И неверные ответы

Но по законам 3NF это не подходит.

И тут еще не понимаю, мне нужно например выводить 3 неверных ответа и 1 верный.

Но иметь 3 неверных ответа в таблице будет не логично . Т.к проходя каждый раз тест можно методом перебора ответить.

Значит мне нужно иметь в неверных ответах не 3 ответа. А штук 10 хотя бы. и выводились они рандомно( с рандомным выводом проблемы нет)

Да и еще вывод рандомных вопросов. Не по порядку. А значит без разновидности таблиц по сложности не обойтись.

Вот и ступор.
Valick
Цитата (maruo @ 15.11.2015 - 19:54)
Вот и ступор.


Цитата (maruo @ 15.11.2015 - 19:54)
И начал сам себе усложнять задачу.


чувствуешь связь?
я предложил поэтапно выполнить это задание, я не просто так дал ТЗ (Техническое Задание) грамотно сделав которое, легко трансформировать БД в то что ты сам себе усложнил, но не откусывай ты слишком большой кусок пирога, подавишься жеж.

_____________
Стимулятор ~yoomoney - 41001303250491
maruo
Чувствую Но чем были прохи эти таблицы раз вы задали мне 3NF

user posted imageuser posted image
maruo
 $db = mysql_connect("localhost","testuser","12345");
mysql_select_db('gameshop');
$result = mysql_query("SELECT * FROM game WHERE id='1'",$db) or die(mysql_error());//выбираем 5й вопрос.
$myrow = mysql_fetch_array($result);
$result_valid = mysql_query("SELECT * FROM valid_answer WHERE id='5'",$db) or die(mysql_error());//выбираем ответ на 5й вопрос.
$myrowl = mysql_fetch_array($result_valid);

И выборка у меня была такая.
Где в $myrow я хранил id вопрос и 4 варианта ответа. Где 1 из них был верным
Valick
Цитата (maruo @ 15.11.2015 - 20:01)
Но чем были прохи эти таблицы

трудно выиграть 100 метровый забег отпилив себе ноги перед стартом...
так и с таблицами, неправильно организованная таблица влечёт за собой все остальные проблемы

_____________
Стимулятор ~yoomoney - 41001303250491
maruo
Цитата (Valick @ 15.11.2015 - 21:06)
Цитата (maruo @ 15.11.2015 - 20:01)
Но чем были прохи эти таблицы

трудно выиграть 100 метровый забег отпилив себе ноги перед стартом...
так и с таблицами, неправильно организованная таблица влечёт за собой все остальные проблемы

А чего там не верного?
по 1nf она подходила.Вроде)
Ну разве что можно было добавить еще 1 таблицу с неправильными ответами.
И тогда б она уже приближалась ко 2NF и более то для такой простой задачи и не надо,Я так вычитал)
arbuzmaster
Как мне кажется, хотя я могу ошибаться но в Вашем случае подходит больше следующий вариант таблицы :
1 id - id вопроса
2 question - сам вопрос
3 valid_a - правильный ответ
4 not_valid_1 - вариант ответа 1
5 not_valid_2 - вариант ответа 2
5 not_valid_3 - вариант ответа 3
Создавать таблицу с неправильными ответами не имеет смысла, так как в ней должны отсутствовать правильные ответы на все Ваши вопросы а если вопросов 1000 что тогда ?. А если там будут правильные варианты ответов, то есть шанс, что при рандомном выводе у Вас будет 2 правильных ответа. Вот как то так!

_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
maruo
Цитата (arbuzmaster @ 15.11.2015 - 22:45)
Как мне кажется, хотя я могу ошибаться но в Вашем случае подходит больше следующий вариант таблицы :
1 id - id вопроса
2 question - сам вопрос
3 valid_a - правильный ответ
4 not_valid_1 - вариант ответа 1
5 not_valid_2 - вариант ответа 2
5 not_valid_3 - вариант ответа 3
Создавать таблицу с не правильными ответами не имеет смысла, так как в ней должны отсутствовать правильные ответы на все Ваши вопросы а если вопросов 1000 что тогда ?. А если там будут правильные варианты ответов, то есть шанс, что при рандомном выводе у Вас будет 2 правильных ответа. Вот как то так!

поэтой форме ты не проходишь по 1NF в том и проблема)

В правиле 1NF нельзя создавать одинаковые столбы.
Т.е not_valid_1,2,3,4,5,6,7,8,
arbuzmaster
Если соблюдать 1NF то тогда Вам нужно
Создать три таблицы:
Первые две у Вас уже есть а третья будет со всеми вариантами ответов и тогда при выводе неправильных ответов Вы просто будете отсекать правильный, вот и все. Это конечно если у Вас условие что все таблицы должны быть ПНФ. То есть делать
выборку из БД ответов с условиeм WHERE not_valid не равно valid_a

_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
maruo
Цитата (arbuzmaster @ 15.11.2015 - 22:57)
Если соблюдать 1NF то тогда Вам нужно
Создать три таблицы:
Первые две у Вас уже есть а третья будет со всеми вариантами ответов и тогда при выводе неправильных ответов Вы просто будете отсекать правильный, вот и все. Это конечно если у Вас условие что все таблицы должны быть ПНФ. То есть делать
выборку из БД ответов с условиeм WHERE not_valid не равно valid_a

ВОт на 3й таблице у меня сейчас бошка уже не соображает, как ее создать и с какими полями.
Ну будут там варианты ответов неверные.
Но какие будут другие поля?
И по сути дела дожны быть внешние еще ключи я так понял.
А с этим у меня вообще большие проблемы, про внешние ключи я только сегодня часа 2 назад узнал)
Valick
arbuzmaster, ошибаешься. Всего надо две таблицы.



_____________
Стимулятор ~yoomoney - 41001303250491
maruo
Цитата (Valick @ 15.11.2015 - 23:16)
arbuzmaster, ошибаешься. Всего надо две таблицы.

Не ну если верный ответ можно занести в таблицу с вопросом.
А неверные ответы в отдельную таблицу.
но их как то связать же надо?
Kusss
Valick
по твоему ТЗ
Цитата
Для вопроса который храниться в БД, может быть неограниченное количество ответов. Количество правильных ответов так же не ограничено.
Получается 3 таблицы
Valick
maruo, таблица arbuzmaster соответствует 1нф. Но не соответсвует 2 нф.


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

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