Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2011, 02:11   #1
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию добавление в базу

Код:
 <?php 
if (isset($title) &&  isset($meta_d)  &&  isset($meta_k) && isset($date)  && isset($text) && isset($author) && isset($description)  )


{
	echo "змінні існують";
	/* можна занести в базу */
$result=mysql_query("INSERT INTO lesson(title,meta_d,meta_k,date,description,text,author) VALUES ('$title','$meta_d','$meta_k','$date','$description','$text','$author')");

if ($result=='true') {echo "Урок добавлено";}
else {echo "Урок не добавлено";}
}
?>
вот ета часть кода должна добавить в базу урок. но почему то она не добавляет, кто может подсказать в чем ошыбка?
Pein95 вне форума Ответить с цитированием
Старый 13.04.2011, 07:45   #2
freeeeez
Пользователь
 
Регистрация: 20.12.2010
Сообщений: 55
По умолчанию

А ты переменные как получаешь? POST или GET?
Поставь эхо переменных перед первым if.
И смотри все ли они поступают скрипту.
freeeeez вне форума Ответить с цитированием
Старый 13.04.2011, 11:14   #3
MrJenika
Форумчанин
 
Аватар для MrJenika
 
Регистрация: 07.09.2009
Сообщений: 361
По умолчанию

Скорей всего какая-то переменная утеряна, поэтому присоединяюсь к посту выше и немного конструктивных советов:
- дату можно не передавать, а использовать функцию Now() при записи в БД .
- isset лучше писать так :

Код:
if (isset($title, $meta_d, $meta_k, $date, $text, $author, $description))
И я так полагаю, перед всем этим, у вас стоит такое ?
$title = $_POST['title'];

Последний раз редактировалось MrJenika; 13.04.2011 в 11:17.
MrJenika вне форума Ответить с цитированием
Старый 13.04.2011, 22:58   #4
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

Код:
<?php 
include("blocks/bd.php"); 
if (isset($_POST['title'])) {$title=$_POST['title'];}
if (isset($_POST['meta_d'])) {$meta_d=$_POST['meta_d'];}
if (isset($_POST['meta_k'])) {$meta_k=$_POST['meta_k'];}
if (isset($_POST['description'])) {$description=$_POST['description'];}
if (isset($_POST['text'])) {$text=$_POST['text'];}
if (isset($_POST['author'])) {$author=$_POST['author'];}
if (isset($_POST['date'])) {$date=$_POST['date'];} 
?>

Последний раз редактировалось Pein95; 13.04.2011 в 23:01.
Pein95 вне форума Ответить с цитированием
Старый 13.04.2011, 23:14   #5
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Добавьте к запросу or die(mysql_error()) - посмотрите, какую ошибку выдаст.

Вероятно нужно будет экранировать название полей таблицы:
Цитата:
INSERT INTO `lesson` (`title`, `meta_d`, `meta_k`, `date`, `description`, `text`, `author`) VALUES ...
т.к. не уверен насчет date - а text точно служебное слово MySQL - да и вообще, это нужно всегда делать...

PS: ну и про SQL-injection не забываем...
Andkorol вне форума Ответить с цитированием
Старый 13.04.2011, 23:29   #6
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

я в пхп новичок куда
Код:
or die(mysql_error())
ето добавить и что оно делает?
поля екранизировал не помогло

Последний раз редактировалось Pein95; 13.04.2011 в 23:37.
Pein95 вне форума Ответить с цитированием
Старый 13.04.2011, 23:38   #7
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Pein95 Посмотреть сообщение
я в пхп новичок куда ето добавить и что оно делает?
Вы в чтении тоже новичок?
Цитата:
Добавьте к запросу or die(mysql_error()) - посмотрите, какую ошибку выдаст.
Цитата:
$result=mysql_query("INSERT INTO `lesson` (`title`, `meta_d`, `meta_k`, `date`, `description`, `text`, `author`)
VALUES ('$title','$meta_d','$meta_k','$dat e','$description','$text','$author' )") or die(mysql_error());
Или просто после запроса поставьте:
Цитата:
echo mysql_error();
Andkorol вне форума Ответить с цитированием
Старый 13.04.2011, 23:47   #8
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

спс) все ясно) нашол ошибку)
Pein95 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление в базу mySQL черз DBGrid tirael666 БД в Delphi 1 11.02.2011 21:19
Добавление данных в базу через LINQ to SQL hk47 Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 5 15.11.2010 17:44
Добавление в базу не повторяясь (Делфи) hackmegrom БД в Delphi 9 13.10.2010 12:15
Добавление текста с русскими символами MySQL в базу Яр|/||< (^_^) SQL, базы данных 5 03.07.2010 00:08
добавление массива чисел в базу kate158 БД в Delphi 3 24.09.2008 11:00