Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не пойму почему не заносятся данные в базу

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Batyabest
Отправлено: 02 Сентября, 2014 - 20:33:05
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




Здравствуйте, никак не пойму, почему не заносятся значения в БД.

По консоли смотрю, все значения собираются, как положено, но в базу не заносятся.

Вот код обработчика:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. header('Content-type: text/html; charset=UTF-8');
  3. //ПОДКЛЮЧЕНИЕ К БАЗЕ ДАННЫХ (БД)
  4.  
  5. //ПОДКЛЮЧЕНИЕ К БАЗЕ ДАННЫХ (БД)
  6.  
  7.  
  8. if(isset($_POST['date'], $_POST['start'], $_POST['end'], $_POST['status'], $_POST['usernames'], $_POST['type'], $_POST['time'], $_POST['waypoints'], $_POST['float'], $_POST['date1'], $_POST['time1'], $_POST['float1'], $_POST['mesta'], $_POST['price'], $_POST['priceall'], $_POST['comment'], $_POST['adress'], $_POST['adress1'], $_POST['float2'], $_POST['float3']))
  9. {
  10. $result = mysql_query("INSERT INTO mbct_ikimun_poezdki (date,start,end,status,usernames,type,time,waypoints,float,date1,time1,float1,mesta,price,priceall,comment,adress,adress1,float2,float3)
  11. VALUES ('$_POST[date]', '$_POST[start]','$_POST[end]','$_POST[status]','$_POST[usernames]','$_POST[type]','$_POST[time]','$_POST[float]','$_POST[date1]','$_POST[time1]','$_POST[float1]','$_POST[float2]','$_POST[float3]','$_POST[mesta]','$_POST[price]','$_POST[priceall]','$_POST[comment]','$_POST[adress]','$_POST[adress1]','$_POST[waypoints]')");
  12. header("location: http://test.ru/");
  13. }
  14.  
 
 Top
OrmaJever Модератор
Отправлено: 02 Сентября, 2014 - 21:08:15
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




потому что во-первых mysql_error()
во-вторых индексы массивов ВСЕГДА должны быт ьв кавычках
и в-третьих date, float и возможно другие названия ваших колонок это зарезервированые слова в mysql и их нужно брать в обратные кавычки - `


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Batyabest
Отправлено: 02 Сентября, 2014 - 21:10:45
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




Запрос в самой базе через SQL

CODE (SQL):
скопировать код в буфер обмена
  1. INSERT INTO mbct_ikimun_poezdki (date,start,end,STATUS,usernames,type,time,waypoints,float,date1,time1,float1,mesta,price,priceall,comment,adress,adress1,float2,float3)
  2. VALUES ('$_POST[date]', '$_POST[start]','$_POST[end]','$_POST[status]','$_POST[usernames]','$_POST[type]','$_POST[time]','$_POST[float]','$_POST[date1]','$_POST[time1]','$_POST[float1]','$_POST[float2]','$_POST[float3]','$_POST[mesta]','$_POST[price]','$_POST[priceall]','$_POST[comment]','$_POST[adress]','$_POST[adress1]','$_POST[waypoints]')


отрабатывает нормально, данные заносятся.

Значит, беда тут в PHP скорее всего. Может чего-то в условии не так?
Он почему-то не переходит на главную страницу сайта, то есть не выполняется

(Добавление)
OrmaJever пишет:
потому что во-первых mysql_error()
во-вторых индексы массивов ВСЕГДА должны быт ьв кавычках
и в-третьих date, float и возможно другие названия ваших колонок это зарезервированые слова в mysql и их нужно брать в обратные кавычки - `


То есть правильно писать не '$_POST[type]', а $_POST['type']? Или '$_POST['type']'?

А если все слова для верности заключить в обратные кавычки? Хуже не будет?
(Добавление)
mysql_error() ничего не пишет
 
 Top
OrmaJever Модератор
Отправлено: 02 Сентября, 2014 - 21:21:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Batyabest пишет:
То есть правильно писать не '$_POST[type]', а $_POST['type']? Или '$_POST['type']'

в строках правильно писать '{$_POST['type']}'
Batyabest пишет:
mysql_error() ничего не пишет

Поздравляю, запрос выполнен успешно, а значит запись добавленна


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
dcc0
Отправлено: 02 Сентября, 2014 - 21:22:34
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




До header location
не было print или echo? Где-нибудь вначале скрипта.

(Отредактировано автором: 02 Сентября, 2014 - 21:23:05)



-----
Март 2021. Бросил программирование
 
 Top
Мелкий Супермодератор
Отправлено: 02 Сентября, 2014 - 21:24:00
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Batyabest пишет:
То есть правильно писать не '$_POST[type]', а $_POST['type']? Или '$_POST['type']'?

Конкатенировать данные и запрос нельзя в принципе.
Prepared statements и хватить уже мучить десятилетие как протухший mysql_*


-----
PostgreSQL DBA
 
 Top
Batyabest
Отправлено: 02 Сентября, 2014 - 21:31:38
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




dcc0 пишет:
До header location
не было print или echo? Где-нибудь вначале скрипта.

Нет, я весь скрипт выложил. Тут просто форма и обработчик. Причем сначала все работало, когда было 6 полей (date, time, start, end, username,waypoints). Добавил все остальные, вроде все правильно, не заносятся именно в базу. Консоль пишет что отправленные данные формы и перечисляет все правильно.
Когда все работало, то перебрасывало на главную, сейчас же остается на этой же странице и ничего не заноситься в БД.
(Добавление)
Мелкий пишет:
Batyabest пишет:
То есть правильно писать не '$_POST[type]', а $_POST['type']? Или '$_POST['type']'?

Конкатенировать данные и запрос нельзя в принципе.
Prepared statements и хватить уже мучить десятилетие как протухший mysql_*


Мужики, можно по-русски? Я как вы поняли не слишком силен...
 
 Top
Мелкий Супермодератор
Отправлено: 03 Сентября, 2014 - 09:57:13
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Batyabest пишет:
Я как вы поняли не слишком силен...

Именно потому и не учитесь костылям прошлого десятилетия. Учитесь сразу нормальному.
Берите другие учебные материалы.
Где видите функции mysql_* - проходите мимо. Вам нужен PDO или mysqli
Где видите подстановку данных в текст запроса - проходите мимо.


-----
PostgreSQL DBA
 
 Top
Sail
Отправлено: 03 Сентября, 2014 - 10:52:34
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




OrmaJever пишет:
в строках правильно писать '{$_POST['type']}'

Угу, только кавычки, обрамляющие всю строку - двойные... Закатив глазки
 
 Top
Batyabest
Отправлено: 03 Сентября, 2014 - 19:20:28
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




А подскажите, почему же у меня вроде все правильно данные собираются, а в базу не заносятся, причем раньше, когда было всего 6 полей все работало. А добавил много полей в форму, и разбил ее внутри на div и все перестало заноситься. Может выложить код формы или она не причем?
(Добавление)
Так правильно я написал?


CODE (SQL):
скопировать код в буфер обмена
  1. IF(isset($_POST['date'], $_POST['start'], $_POST['end'], $_POST['status'], $_POST['usernames'], $_POST['type'], $_POST['time'], $_POST['waypoints'], $_POST['fl'], $_POST['date1'], $_POST['time1'], $_POST['fl1'], $_POST['mesta'], $_POST['price'], $_POST['priceall'], $_POST['comment'], $_POST['adress'], $_POST['adress1'], $_POST['fl2'], $_POST['fl3']))
  2. {
  3. $result = mysql_query("INSERT INTO mbct_ikimun_poezdki (date,start,end,status,usernames,type,time,fl,date1,time1,fl1,fl2,fl3,mesta,price,priceall,comment,adress,adress1,waypoints) VALUES ('{$_POST['date']}','{$_POST['start']}','{$_POST['end']}','{$_POST['status']}','{$_POST['usernames']}','{$_POST['type']}','{$_POST['time']}','{$_POST['fl']}','{$_POST['date1']}','{$_POST['time1']}','{$_POST['fl1']}','{$_POST['fl2']}','{$_POST['fl3']}','{$_POST['mesta']}','{$_POST['price']}','{$_POST['priceall']}','{$_POST['comment']}','{$_POST['adress']}','{$_POST['adress1']}','{$_POST['waypoints']}')");
  4. header("location: http://site.ru/");
  5. echo mysql_errno() . ": " . mysql_error(). "\n";
  6. exit;
  7. }

(Добавление)
Мелкий пишет:
Вам нужен PDO или mysqli

Вообще все это дело на ModX работает и я понимаю что это каменный век, что нужно все делать на xPDO. Но пока что в нем разбираюсь слабо, хотя понимаю, что за ним будущее...

(Отредактировано автором: 03 Сентября, 2014 - 19:27:09)

 
 Top
Мелкий Супермодератор
Отправлено: 04 Сентября, 2014 - 09:23:11
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Раз это modx, то modx api и надо использовать. Всё остальное будет костылём.

Batyabest пишет:
Так правильно я написал?

Так вы в браузере текст ошибки не увидите. Закомментируйте header.


-----
PostgreSQL DBA
 
 Top
Batyabest
Отправлено: 04 Сентября, 2014 - 09:45:26
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




Нашел в чем была проблема, не без Вашей помощи... Поле adress видимо является резервированным и я его изменил на другое, все стало ОК.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB