Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сложность с занесение в БД
 
 автор: wtf bro   (13.11.2013 в 23:38)   письмо автору
 
 

Не могу справится с поставленной задачей. Есть одна переменная которая принимает два раза данные ($data). Я её парсю по символу *. И данные из неё заношу в БД MySQL. Хочу реализовать следующее:

1) Занести значение переменной input в колонку name и полученный IP($ip = $_SERVER['REMOTE_ADDR'];) в колонку IP
- перед этим в коде я делаю парс ($input = explode ('*', $data);)
2) Дальше мне нужно занести значения переменной $input (а именно login и city ) в колонку login и city
- name, login и city должны быть в одной строке, так как это одна запись

Вся сложность заключается в том, что одна переменная принимает разные значения, и занести их нужно в разные колонки в базе данных и что бы не было путаницы

  Ответить  
 
 автор: Sfinks   (14.11.2013 в 08:22)   письмо автору
 
   для: wtf bro   (13.11.2013 в 23:38)
 

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

  Ответить  
 
 автор: wtf bro   (14.11.2013 в 20:41)   письмо автору
 
   для: Sfinks   (14.11.2013 в 08:22)
 

Они берутся из клиента на ПК

Пример данных при первом их приёме: name* (тут просто)
Пример данных при втором их приёме: login*city*

  Ответить  
 
 автор: Sfinks   (15.11.2013 в 09:19)   письмо автору
 
   для: wtf bro   (14.11.2013 в 20:41)
 

Т.е. данные вводятся несколькими запросами? Что-то типа многостраничной формы?

Лучше бы в этом случае сделать "перелистывание страниц" на клиенте с помощью JavaScript, а данные отправлять на сервер 1 раз уже в самом конце.

Если же вам принципиально нужно в несколько запросов, то вы должны при первом запросе данные заносить (INSERT), извлекать insert_id этой новой записи и передавать его на вторую (и все остальные) страницу формы. А при получении данных со 2, 3, ..., 10ой страницы, выполнять уже не INSERT, а UPDATE запрос. Т.е. не вставлять новую строку, а обновлять уже существующую, ID которой известен из первого запроса.

  Ответить  
 
 автор: Deed   (15.11.2013 в 13:48)   письмо автору
 
   для: Sfinks   (15.11.2013 в 09:19)
 

Если я правильно понял вопрос, можно после "первого приема" данных заносить их в переменную сессии, после второго - "контакенатить" это новое значение в созданную переменную сессии, а затем уже эти данные заносить в базу.
А? Чтобы был только один запрос.

  Ответить  
 
 автор: wtf bro   (15.11.2013 в 21:05)   письмо автору
 
   для: Deed   (15.11.2013 в 13:48)
 

Сессии нету как таковой. На первых парах я могу идентифицировать ПК(и клиент на нему) могу только за IP. Но такая реализация не есть глупа, так как после того как я занес в БД первоначальные данные клиента, он получает что-то типа уникального номера. Но это всё потом, всё сложность как занести данные в БД

  Ответить  
 
 автор: wtf bro   (15.11.2013 в 21:06)   письмо автору
 
   для: Sfinks   (15.11.2013 в 09:19)
 

Да, несколькими запросами. Принимаю я их на одну переменную, а после мне нужно занести их в разные колонки в БД

Для буквенно-числовых типов данных нужно использовать же VARCHAR тип данных в БД?

  Ответить  
 
 автор: wtf bro   (15.11.2013 в 21:30)   письмо автору
 
   для: wtf bro   (15.11.2013 в 21:06)
 

Нужно сделать по сути как:

1) Занести в БД name(из переменной input) и IP из переменной IP (эта часть кода есть, тут всё просто)
2) Если IP в БД есть, то переменная input приняла не name, а login и city, которые нужно занести в другие колонки, но в одну строку c name

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования