Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (20) « Первая ... 8 9 [10] 11 12 ... Последняя » ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Простой тест на PHP
Kusss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1355
Пользователь №: 28976
На форуме: 5 лет, 4 месяца, 4 дня
Карма: 77




так в чем вопрос то ? Почему нотис, в первом варианте нету, а во втором (с точкой) есть ?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
SerginhoLD  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



че?
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 703
Пользователь №: 24500
На форуме: 6 лет, 1 месяц, 10 дней
Карма: 50




сначала объявляется переменная, потом используется

$input = null;

// while
$input .= '<input />';


--------------------
"internet explorer всех правильней отображает страницы" ©
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
maruo  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 324
Пользователь №: 37433
На форуме: 3 года, 6 месяцев, 19 дней
Карма: 1




Блин как вам объяснить тут наверно сам valik поймет, о чем я.

Попробую еще раз.
Свернутый текст

$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;
}
}
}


Когда присутствует точка перед оператором присваивания = ТОЕСТЬ .=

Выводится на экран
Свернутый текст

user posted image


Когда без точки то
Свернутый текст

user posted image


Это сообщение отредактировал maruo - 19.12.2015 - 16:16
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
maruo  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 324
Пользователь №: 37433
На форуме: 3 года, 6 месяцев, 19 дней
Карма: 1




Цитата (Kusss @ 19.12.2015 - 16:07)
так в чем вопрос то ? Почему нотис, в первом варианте нету, а во втором (с точкой) есть ?

И это тоже интересно
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1355
Пользователь №: 28976
На форуме: 5 лет, 4 месяца, 4 дня
Карма: 77




запрос вернул несколько строк
echo '<br>запрос вернул '.mysql_num_rows($res).' строк<br>';

while - это цикл.
// без точки значение перезаписывается каждый раз. И актуальные данные - последняя строка из запроса.

Add: Почему нотис ?
Если ты присоединяешь что-то к пустоте - это нормально ?
ведь ты пытаешь дополнить $input , а этой переменной нету. так как ана не определена ( смотри пост SerginhoLD)

Это сообщение отредактировал Kusss - 19.12.2015 - 16:29
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
maruo  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 324
Пользователь №: 37433
На форуме: 3 года, 6 месяцев, 19 дней
Карма: 1




Цитата (Kusss @ 19.12.2015 - 16:26)
запрос вернул несколько строк
echo '<br>запрос вернул '.mysql_num_rows($res).' строк<br>';

while - это цикл.
// без точки значение перезаписывается каждый раз. И актуальные данные - последняя строка из запроса.

Сложно это понять, но понял что без точки цикл выведет только последнее значение

Это сообщение отредактировал maruo - 19.12.2015 - 16:29
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
maruo  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 324
Пользователь №: 37433
На форуме: 3 года, 6 месяцев, 19 дней
Карма: 1




Вопрос еще образовался.
Решил выводить вопросы рандомно из бд.
Свернутый текст

$end_line = "\n";
$q_id = rand (1,4);

$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;
}
}
}


$q_id = rand (1,5);
Я конечно понимаю что это нелогично и не правильно, если у нас будет меньше 5ти записей в таблице и сгенерирует 5 то выйдет ошибка.
Как можно еще вывести рандомно вопрос?
Или лучше добавить проверку если нету такого id? то сгенерировать еще раз?


Это сообщение отредактировал maruo - 19.12.2015 - 16:46
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1355
Пользователь №: 28976
На форуме: 5 лет, 4 месяца, 4 дня
Карма: 77




тут смотря что тебе нужно.
Если все вопросы но в произвольном порядке - то лучше всего использовать сессию.
1) тебе нужно узнать все номера вопросов, записать в сессию в виде массива.
2) вытаскиваем случайный вопрос из списка.
3) удалять номера которые были показаны.


Если просто случайный вопрос, который может повториться, то делается в запросе.
ORDER BY RAND() LIMIT 1
PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
maruo  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 324
Пользователь №: 37433
На форуме: 3 года, 6 месяцев, 19 дней
Карма: 1




Первый вариант более подходит.

Желательно не выводить уже показанные вопросы.

И еще - Правильно ли будет выглядеть так:
У меня выводится вопрос - Человек отвечает неверно. Удаляем сессию.

К чему я , смотрите мне надо что бы когда был дан не верный ответ нельзя было вернуться назад в браузере и ответить заново?

PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1355
Пользователь №: 28976
На форуме: 5 лет, 4 месяца, 4 дня
Карма: 77




Цитата (maruo @ 19.12.2015 - 16:00)
У меня выводится вопрос - Человек отвечает неверно. Удаляем сессию.

Да при любом ответе удалять номер вопроса.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5489
Пользователь №: 35718
На форуме: 4 года, 13 дней
Карма: 167




SerginhoLD, верно заметил, сначала инициализируем переменную, потом её используем.
Это всё-таки лишь каркас, а не готовый к употреблению код.

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


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
maruo  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 324
Пользователь №: 37433
На форуме: 3 года, 6 месяцев, 19 дней
Карма: 1




Цитата
Для того что бы нельзя было вернуться и ответить повторно на вопрос, пользователь должен быть как минимум зарегистрирован. Но и этого мало.
И кстати, я уже говорил, выводя рандомные вопросы + 1 правильный, шансы вычислить правильный ответ растут в геометрической прогрессии, а уж если без повторов, то со второго раза можно уже знать правильный ответ.


А теперь я скажу как я хотел сделать.

Выводится вопрос . 4 ответа (1 верный)
Каждый раз когда будет выводится этот вопрос варианты ответов будут разные , оставаться одинаковым будет только 1 (валидный)
Но пока решаю задачу как выводить по 4 варианта ответа, когда в таблице более 4х вариантов.

Это сообщение отредактировал maruo - 19.12.2015 - 20:14
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5489
Пользователь №: 35718
На форуме: 4 года, 13 дней
Карма: 167




maruo, проходя твой тест второй раз, я 100% отвечу на все вопросы правильно.
Нахер вообще делать такой тест?


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
maruo  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 324
Пользователь №: 37433
На форуме: 3 года, 6 месяцев, 19 дней
Карма: 1




Цитата
maruo, проходя твой тест второй раз, я 100% отвечу на все вопросы правильно.
Нахер вообще делать такой тест?

Предлагаете не выводить более 1 раза вопрос для 1го пользователя?
Да и это для того что бы набить руку

ps поспорить могу что за 2 раза вы его не сможете пройти) но методом постоянного прохождения можно

Кто му же можно сделать и по другому, менять каждый раз только 1 неверный

Это сообщение отредактировал maruo - 19.12.2015 - 21:10
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5489
Пользователь №: 35718
На форуме: 4 года, 13 дней
Карма: 167




Цитата (maruo @ 19.12.2015 - 20:08)
Кто му же можно сделать и по другому, менять каждый раз только 1 неверный

в этом случае пройду 100% с четвёртого раза

Цитата (maruo @ 19.12.2015 - 20:08)
Предлагаете не выводить более 1 раза вопрос для 1го пользователя?

вы физически не сможете это сделать в вебе
я могу зарегистрировать 2 и более вспомогательных аккаунта для вычисления правильных ответов.

Нормальный тест - это когда пользователь отвечает на все вопросы теста, затем происходит подсчёт правильных ответов и выдаётся результат. Т.е. пользователь не знает правильно или нет он ответил на конкретный вопрос (ну кроме случая 100% правильных ответов)


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (20) « Первая ... 8 9 [10] 11 12 ... Последняя » Ответ в темуСоздание новой темыСоздание опроса