[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Простой тест на PHP
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
maruo
Все уже не надо , тупой вопрос
maruo
Каким еще способом можно остаться на одном и том же вопросе, даже если обновили страницу.
При обновлении происходит новый запрос и новый вопрос с ответами выводится.
А нужно как то по условию пока не дан ответ или не вышел таймер.
Условие isset не подходит.
Этот вопрос уже был но с хитрожопой меткой я ничего не сообразил.

Просто я уже выхода не нахожу, как выкидывать после обновления.
Тут я и сессии пробовал занести результат запроса в сессию и пока не дали ответ ничего не делать. В итоге это не защищает от f5 ведь страницу запросили и код заново отработал.

В условие запрос ставил опять же не прошло.


maruo
Цитата
GET?
поподробнее
maruo
народ нужна помощь в одном вопросе.

$query = mysql_query("SELECT q_id FROM question 
WHERE difficulty=
$difficulty
ORDER BY RAND() LIMIT 3");



while($qrand22 = mysql_fetch_assoc($query))
$data[]= $qrand22['q_id'];
(
int)$qquery_1 = $data['0'];
(
int)$qquery_2 = $data['1'];
(
int)$qquery_3 = $data['2'];

$query = "(SELECT q.q_id, q.q_quest, a.a_id, a.a_answer, a.a_correct
FROM answer a
INNER JOIN question q USING(q_id) WHERE a.a_correct=1 AND q_id=
$qquery_1 LIMIT 1)
UNION
(SELECT q.q_id, q.q_quest, a.a_id, a.a_answer, a.a_correct
FROM answer a
INNER JOIN question q USING(q_id) WHERE a.a_correct=0 AND q_id=
$qquery_1 ORDER BY RAND() LIMIT 3)

UNION

(SELECT q.q_id, q.q_quest, a.a_id, a.a_answer, a.a_correct
FROM answer a
INNER JOIN question q USING(q_id) WHERE a.a_correct=1 AND q_id=
$qquery_2 LIMIT 1)
UNION
(SELECT q.q_id, q.q_quest, a.a_id, a.a_answer, a.a_correct
FROM answer a
INNER JOIN question q USING(q_id) WHERE a.a_correct=0 AND q_id=
$qquery_2 ORDER BY RAND() LIMIT 3)

UNION

(SELECT q.q_id, q.q_quest, a.a_id, a.a_answer, a.a_correct
FROM answer a
INNER JOIN question q USING(q_id) WHERE a.a_correct=1 AND q_id=
$qquery_3 LIMIT 1)
UNION
(SELECT q.q_id, q.q_quest, a.a_id, a.a_answer, a.a_correct
FROM answer a
INNER JOIN question q USING(q_id) WHERE a.a_correct=0 AND q_id=
$qquery_3 ORDER BY RAND() LIMIT 3)

"
;


$res = mysql_query($query) or die(mysql_error());
$arr = array();
while($row = mysql_fetch_assoc($res)) {
if ( ! isset($arr[ $row['q_id'] ])) $arr[ $row['q_id'] ] = array();
$arr[ $row['q_id'] ][] = $row;
}
echo '<pre>'; print_r($arr); echo '</pre>';


она выдает мне вот это

Свернутый текст
Array
(
[2] => Array
(
[0] => Array
(
[q_id] => 2
[q_quest] => Сколько будет 3+3?
[a_id] => 10
[a_answer] => Шесть
[a_correct] => 1
)

[1] => Array
(
[q_id] => 2
[q_quest] => Сколько будет 3+3?
[a_id] => 7
[a_answer] => Семь
[a_correct] => 0
)

[2] => Array
(
[q_id] => 2
[q_quest] => Сколько будет 3+3?
[a_id] => 9
[a_answer] => Четыре
[a_correct] => 0
)

[3] => Array
(
[q_id] => 2
[q_quest] => Сколько будет 3+3?
[a_id] => 30
[a_answer] => Семнадцать
[a_correct] => 0
)

)

[1] => Array
(
[0] => Array
(
[q_id] => 1
[q_quest] => Сколько будет 2+2?
[a_id] => 5
[a_answer] => Четыре
[a_correct] => 1
)

[1] => Array
(
[q_id] => 1
[q_quest] => Сколько будет 2+2?
[a_id] => 28
[a_answer] => Пятнадцать
[a_correct] => 0
)

[2] => Array
(
[q_id] => 1
[q_quest] => Сколько будет 2+2?
[a_id] => 27
[a_answer] => Пятьдесят
[a_correct] => 0
)

[3] => Array
(
[q_id] => 1
[q_quest] => Сколько будет 2+2?
[a_id] => 1
[a_answer] => Один
[a_correct] => 0
)

)

[4] => Array
(
[0] => Array
(
[q_id] => 4
[q_quest] => Сколько будет 10-3?
[a_id] => 31
[a_answer] => Семь
[a_correct] => 1
)

[1] => Array
(
[q_id] => 4
[q_quest] => Сколько будет 10-3?
[a_id] => 17
[a_answer] => Пять
[a_correct] => 0
)

[2] => Array
(
[q_id] => 4
[q_quest] => Сколько будет 10-3?
[a_id] => 16
[a_answer] => Десять
[a_correct] => 0
)

[3] => Array
(
[q_id] => 4
[q_quest] => Сколько будет 10-3?
[a_id] => 15
[a_answer] => Три
[a_correct] => 0
)

)

)


Мне допустим не нужно как раньше после каждого ответа делать новый запрос. и Трогать бд.

Я просто вытаскиваю сколько мне нужно вопросов и помещаю их в сессии.

Но получается число вопросов будет фиксировано.В цикле нельзя я читал запрос использовать.
Через юнионы все получается громозким.
Каким еще способом можно сделать подобное и более компактное?
Просто если можно было использовать циклы число вопросов я бы уже задать мог . А тут придется дописывать юнионы. Как еще это обойти?

Не игнорьте хорош вам)
Быстрый ответ:

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