Форум программистов, компьютерный форум, киберфорум
Наши страницы

PHP

Войти
Регистрация
Восстановить пароль
 
logig
0 / 0 / 0
Регистрация: 06.05.2014
Сообщений: 11
#1

Проверьте пожалуйста код - PHP

06.05.2014, 19:58. Просмотров 278. Ответов 7
Метки нет (Все метки)

Проверьте пожалуйста код.Каждый раз выводит Вопроса не найдено в базе.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?PHP
header('Content-Type: text/html; charset=utf-8');
// подключение к mysql - localhost (host), root (login), '' (password)
mysql_connect('localhost','root','') or die(mysql_error());
// подключение к базе данных test
mysql_select_db('test') or die(mysql_error());
// index.php?questiion=номер  - тут мы получаем тот самый номер
$question_id = (int)$_GET['question'];
// выбираем ответ, вопрос и trueanswer из базы по id (id это номер из $question_id
$sInfo = mysql_query("SELECT `answer`,`question`,`trueanswer` FROM `test` WHERE `id` = '$question_id'") or die(mysql_error());
$tInfo = mysql_fetch_assoc($sInfo);
// очищаем от тэгов и ковычек данные, которые пришли из (textarea)
$_POST['answer'] = strip_tags(mysql_real_escape_string($_POST['answer']));
// если нажата кнопка submit
if (isset($_POST['submit'])){
        // сравниваем одинаковые ответы (введенный пользователем и тот, что в базе), если одинаковы, то идем дальше
        if ($tInfo['answer'] == $_POST['answer']){
                // увеличиваем trueanswer на 1
                $sInfo['trueanswer']++;
                // и записываем его в базу
                $uTrueAnswer = mysql_query("UPDATE `test` SET `trueanswer` = '{$trueAnswer['trueanswer']}' WHERE `id` = '$question_id'") or die(mysql_error());
                // перенаправляем пользователя на следующий вопрос
                header('Location: index.php?question='. $question_id+=1);
        }
}
?>
<?PHP
// если вопроса нет (?question=номер), а номер является id вопроса. Если пользователь перешел на страницу, с несуществующим id
// то выведем ему "Вопроса не найдено в базе" (в самом конце кода)
if (mysql_num_rows($sInfo) == 1):
?>
<form method="post" action="">
        <p><?=$tInfo['question']; //выводим вопрос?></p>
        <textarea name="answer"></textarea>
        <p><input type="submit" name="submit" /></p>
</form>
<?PHP else:?>
Вопроса не найдено в базе
<?PHP endif;?>
SQL
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE TABLE IF NOT EXISTS `test` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `question` text NOT NULL,
  `answer` text NOT NULL,
  `trueanswer` INT(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
 
 
INSERT INTO `test` (`id`, `question`, `answer`, `trueanswer`) VALUES
(1, 'Сколько будет 2+2?', '4', 0),
(2, 'Сколько пальцев у человека на руке?', '5', 0),
(3, 'Дима - единственный ребенок в семье, его отца зовут Олег Александрович.\r\n\r\nКак зовут сына Олега Александровича?', 'Дима', 0);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2014, 19:58
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Проверьте пожалуйста код (PHP):

Пожалуйста напишите код программы вычисляющий общую площадь треугольника на PHP - PHP
Здравствуйте напишите пожалуйста скрипт программы вычисляющий общую площадь треугольника на PHP. Заранее спасибо)

Посоветуйте пожалуйста, как запустить web-сервер на PHP (есть только код) - PHP
Всем доброго дня. Прошу помощи по PHP. Имеется код web-приложения, переданный мне. Нужно запустить этот код запустить и продемонстрировать...

PHP. Не могу отправить cookie. Код внутри. Пожалуйста подскажите где ошибся - PHP
&lt;? include ('block/db.php'); $login = $_POST; $pass = $_POST; $a = 1; if ($login == '') {$a = 0; $go = 'index.php';}; if...

Проверьте PHP-калькулятор - PHP
Проверьте код, у всех он работает нормально, а то у меня на локальном нормально работал, а на хостинге нет. Пробовал делать все &lt;?php, а не...

Проверьте код [Загрузка файла на сервер] - PHP
Сайт: site.ru Расположение файла update.php: site.ru/updater/update.php Куда нужно загрузить файл: site.ru/updater/update/ ...

Разъясните, пожалуйста, код - PHP
$d = opendir(&quot;somewhere&quot;); while (($e=readdir($d)) !== false) { . . .} Мне не очень понятно выражение условия Ну вот, некоторое...

7
pav1uxa
1855 / 1709 / 645
Регистрация: 23.01.2014
Сообщений: 6,082
Завершенные тесты: 1
06.05.2014, 20:49 #2
Цитата Сообщение от logig Посмотреть сообщение
Проверьте пожалуйста код.Каждый раз выводит Вопроса не найдено в базе.
А Вы в ручную дописываете ?question= когда переходите на данную страницу?
0
logig
0 / 0 / 0
Регистрация: 06.05.2014
Сообщений: 11
06.05.2014, 22:22  [ТС] #3
pav1uxa, Я хочу что бы вопросы появлялись автоматически.Когда прописываю вручную, то они отображаются.
0
pav1uxa
1855 / 1709 / 645
Регистрация: 23.01.2014
Сообщений: 6,082
Завершенные тесты: 1
06.05.2014, 22:44 #4
Цитата Сообщение от logig Посмотреть сообщение
pav1uxa, Я хочу что бы вопросы появлялись автоматически.Когда прописываю вручную, то они отображаются.
У Вас есть условие
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<?PHP
// если вопроса нет (?question=номер), а номер является id вопроса. Если пользователь перешел на страницу, с несуществующим id
// то выведем ему "Вопроса не найдено в базе" (в самом конце кода)
if (mysql_num_rows($sInfo) == 1):
?>
<form method="post" action="">
        <p><?=$tInfo['question']; //выводим вопрос?></p>
        <textarea name="answer"></textarea>
        <p><input type="submit" name="submit" /></p>
</form>
<?PHP else:?>
Вопроса не найдено в базе
<?PHP endif;?>
Оно выполняется, только когда переменная $sInfo имеет полезную информацию, которую она берет из следующей строки:
PHP
1
$sInfo = mysql_query("SELECT `answer`,`question`,`trueanswer` FROM `test` WHERE `id` = '$question_id'") or die(mysql_error());
Соответственно только когда SQL запрос возвращает какие то значения. А это происходит только в том случае если установлена переменная $question_id, которая устанавливается так:
PHP
1
$question_id = (int)$_GET['question'];
- то есть берет свое значение из GET запроса.

Соответственно если отсутствует переменная GET ['question'], всегда будет выводиться "вопроса не найдено в базе".

Вот почему так происходит, а уж как Вам надо сами решайте. Можно сделать условие, что если переменная $_GET['question'] пуста или отсутствует, то присвоить переменной $question_id значение 1.
0
logig
0 / 0 / 0
Регистрация: 06.05.2014
Сообщений: 11
06.05.2014, 23:45  [ТС] #5
pav1uxa, сделал как Вы говорили, но ничего не получилось.Или я делаю что то не так.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?PHP
if ($_GET['question'] == 0) {
        $question_id = 1;
}
// если вопроса нет (?question=номер), а номер является id вопроса. Если пользователь перешел на страницу, с несуществующим id
// то выведем ему "Вопроса не найдено в базе" (в самом конце кода)
if (mysql_num_rows($sInfo) == 1):
?>
<form method="post" action="">
        <p><?=$tInfo['question']; //выводим вопрос?></p>
        <textarea name="answer"></textarea>
        <p><input type="submit" name="submit" /></p>
</form>
<?PHP else:?>
Вопроса не найдено в базе
<?PHP endif;?>
0
pav1uxa
1855 / 1709 / 645
Регистрация: 23.01.2014
Сообщений: 6,082
Завершенные тесты: 1
07.05.2014, 09:27 #6
Цитата Сообщение от logig Посмотреть сообщение
pav1uxa, сделал как Вы говорили, но ничего не получилось.Или я делаю что то не так.
не так.
Цитата Сообщение от logig Посмотреть сообщение
PHP
1
2
3
if ($_GET['question'] == 0) {
* * * * $question_id = 1;
}
должно быть
PHP
1
2
3
4
if (!isset($_GET['question']) || empty($_GET['question'])) 
    $question_id = 1;
else
    $question_id = $_GET['question'];
И все это должно быть на 8 строке вашего исходного кода, вместо строки
PHP
1
$question_id = (int)$_GET['question'];
0
Programmer_
88 / 88 / 20
Регистрация: 22.05.2012
Сообщений: 403
07.05.2014, 11:57 #7
HTML5
1
<form method="post" action="">
Идет пост
а ловишь гет
PHP
1
$question_id = (int)$_GET['question'];
0
pav1uxa
1855 / 1709 / 645
Регистрация: 23.01.2014
Сообщений: 6,082
Завершенные тесты: 1
07.05.2014, 17:41 #8
Цитата Сообщение от Programmer_ Посмотреть сообщение
Идет пост
а ловишь гет
он и ловит пост
Цитата Сообщение от logig Посмотреть сообщение
if (isset($_POST['submit'])){
гет отслеживается для номера вопроса...
0
07.05.2014, 17:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2014, 17:41
Привет! Вот еще темы с ответами:

парни разберите код пожалуйста - PHP
&lt;?php // подключаем файл конфигурации require_once &quot;config.php&quot; ; // подключаем файл для работы с базой данных ...

Разложите пожалуйста по полочкам код (не могу понять) - PHP
$connection = new mysqli($db_hostname, $db_username, $db_password, $db_database); if ($connection-&gt;connect_error)...

Поправьте пожалуйста код, выбирает последние строки в файле - PHP
Есть такой код: &lt;?php $domians = &quot;data/domain.txt&quot;; { if(IsSet($array, $filename)) { $fp = fopen($filename, &quot;a+&quot;); ...

Написать код для игры НИМ. проверьте пожалуйста тот ли это код - C++
#include &lt;string&gt; using namespace std; int compChoose(int markers); int userChoose(int markers); int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru