Вернуться   Дизайнерский форум » ВЕБ-ПРОГРАММИРОВАНИЕ » ASP, Perl, PHP и MySQL

Помогите пожалуйста найти ошибку!

Обсуждение темы Помогите пожалуйста найти ошибку! в разделе ASP, Perl, PHP и MySQL, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; Делаю административную панель, ошибок вроде бы нет, а урок не добавляется! Проверил код уже несколько раз - всё та же проблема. Выходит сообщение: ...


Закрытая тема
 
Опции темы
Старый 15.05.2008, 21:39   #1
bum

Делаю административную панель, ошибок вроде бы нет, а урок не добавляется!
Проверил код уже несколько раз - всё та же проблема. Выходит сообщение:
"Ваш урок не добавлен!", и в базе урок не добавился.
Буду очень признателен за помощь!

Первый файл:
<form name="form1" method="post" action="add_lesson.php">
<p>
<label>Введите название урока.<br>
<input type="text" name="title" id="title">
</label>
</p>
<p>
<label>Введите описание урока для поисковика.<br>
<input type="text" name="meta_d" id="meta_d">
</label>
</p>
<p>
<label>Введите ключевые слова для поисковика.<br>
<input type="text" name="meta_k" id="meta_k">
</label>
</p>
<p>
<label>Введите дату добавления урока.<br>
<input name="data " type="text" id="data " value="2008-05-15">
</label>
</p>
<p>
<label>Введите автора урока.<br>
<input type="text" name="author" id="author">
</label>
</p>
<p>
<label>Введите краткое описание урока с тегами.
<textarea name="description" id="description" cols="40" rows="5"></textarea>
</label>
</p>
<p>
<label>Введите полное описание урока с тегами.
<textarea name="text " id="text " cols="40" rows="5"></textarea>
</label>
</p>
<p>
<label>
<input name="submit" type="submit" class="table_fon" id="submit" value="Добавить урок в базу!">
</label>
</p>
</form>

Второй файл:
<?php
include ("block/bd.php");/*Подключение к базе данных*/
if (isset($_POST['title'])) {$title = $_POST['title']; if ($title == '') {unset($title);}}
if (isset($_POST['meta_d'])) {$meta_d = $_POST['meta_d']; if ($meta_d == '') {unset($meta_d);}}
if (isset($_POST['meta_k'])) {$meta_k = $_POST['meta_k']; if ($meta_k == '') {unset($meta_k);}}
if (isset($_POST['data'])) {$data = $_POST['data']; if ($data == '') {unset($data);}}
if (isset($_POST['author'])) {$author= $_POST['author']; if ($author == '') {unset($author);}}
if (isset($_POST['description'])) {$description= $_POST['description']; if ($description == '') {unset($description);}}
if (isset($_POST['text'])) {$text = $_POST['text']; if ($text == '') {unset($text);}}
?>
<?php
if (isset($title) && isset($meta_d) && isset($meta_k) && isset($data) && isset($author) && isset($description) && isset($text))
{
$result = mysql_query ("INSERT INTO lessons (title,meta_d,meta_k,data,description,text,author) VALUES ('$title', '$meta_d','$meta_k','$data','$author','$descriptio n','$text')");

if ($result == 'true') {echo "<p>Ваш урок успешно добален!</p>";}
else {echo "<p>Ваш урок не добален!</p>";}


}
else

{
echo "<p>Вы ввели не всю информацию, поэтому урок в базу не может быть добален.</p>";
}
?>
 
Старый 15.05.2008, 21:39
Ссылки
Старый 16.05.2008, 00:26   #2
Структуру таблицы покажите
 
Старый 16.05.2008, 07:04   #3
Вот это:
PHP код:
$result mysql_query ("INSERT INTO lessons (title,meta_d,meta_k,data,description,text,author) VALUES ('$title', '$meta_d','$meta_k','$data','$author','$descriptio n','$text')"); 
Замените на это:
PHP код:
$request="INSERT INTO lessons (title,meta_d,meta_k,data,description,text,author) VALUES ('$title', '$meta_d','$meta_k','$data','$author','$descriptio n','$text')";

$result mysql_query ($request) or die(mysql_error().'<br>slect request:<br>'.$request); 
Станет понятнее в чем проблема - мускуль напишет об ошибке, а по запросу идущему в базу (который высветится на странице) можно будет понять в чем она заключается.
 
Старый 17.05.2008, 01:41   #4
ага, а в результате конструкции
$result = mysql_query ($request) or die(mysql_error().'<
$result может стать равным true....
 
Старый 17.05.2008, 21:39   #5
Цитата:
Сообщение от Makarenya Посмотреть сообщение
ага, а в результате конструкции
$result = mysql_query ($request) or die(mysql_error().'<
$result может стать равным true....
Неа.. Во первых, если mysql_query завершится с ошибкой, то скрипт на этом месте перестанет выполняться, а в браузер будет выведена ошибка и запрос (что бы глядя на запрос можно было понять в чем проблема). Это происходит благодаря "or die()".
Т.е. в целом совершенно безразлично чему равным будет result если произойдет ошибка.
Во вторых, если происходит ошибка, то mysql_query возвращает false соответственно в случае ошибки $result=mysql_query никак не изменит значение $result и эта переменная так и будет false.

Пример который я показал, сам повсеместно использую для отлова ошибок связанных с мускулем, едиенственное, после того как ошибка поймана, or die() со всем содержимым нужно убрать в целях безопасности.
 
Старый 19.05.2008, 15:13   #6
ILA

Цитата:
Сообщение от bum Посмотреть сообщение
$result = mysql_query ("INSERT INTO lessons (title,meta_d,meta_k,data,description,text,author) VALUES ('$title', '$meta_d','$meta_k','$data','$author','$descriptio n','$text')");
А это только меня смущает неправильный порядок пересичления названия полей и их значений?
 
Старый 19.05.2008, 15:13
Закрытая тема




Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите найти ошибку в php коде 74ivan74 ASP, Perl, PHP и MySQL 9 30.05.2010 18:13
найти ошибку parch ASP, Perl, PHP и MySQL 1 24.12.2009 13:12
Помогите найти ошибку ECorWar HTML, CSS, JavaScript 0 08.11.2006 06:50
Помогите найти ошибку в функции Lander ASP, Perl, PHP и MySQL 2 26.02.2006 13:34
Помогите найти ошибку.... MaDW HTML, CSS, JavaScript 2 19.08.2005 12:23


Текущее время: 14:57. Часовой пояс GMT +4.

Реклама на форуме Условия размещения рекламы
Биржа ссылок Заработай на сайте!
Дизайнерский форум