Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Формирование запроса в зависимости от введённых, пользователем данных. 
V
    Опции темы
Avaj
Дата 22.7.2010, 05:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 212
Регистрация: 14.7.2008
Где: Владивосток.

Репутация: нет
Всего: 3



Есть таблица с полями a, b, c, d, e, в которой a и b - NOT NULL.
Есть форма с полями a, b, c, d, e, в которой обязательны для ввода только a и b.
И нужно занести в таблицу данные, введённые с формы, учитывая, что поля c, d, e могут быть пустыми.

Не могу сообразить как написать такой "динамический" запрос.

Конечно можно делать проверки isset для каждого поля формы и в зависимости от них дабавлять к запросу поля ( как тут http://forum.vingrad.ru/topic-121458.html ), но это как-то криво  smile,

может есть какая-нибудь удобная библиотека для этого, или стандартный класс какой-нить?
PM MAIL   Вверх
Photon
Дата 22.7.2010, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Злобный программер
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 27.2.2009
Где: Таганрог

Репутация: 1
Всего: 12



Даже если ты в форме ничего не введёшь, на сервер просто придут пустые поля..
Т.е. будет например $_REQUEST['temp_data'] = ''


--------------------
With best regards..
PM MAIL ICQ Skype GTalk Jabber   Вверх
CruorVult
Дата 22.7.2010, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 1
Всего: 28



Цитата(Avaj @  22.7.2010,  05:49 Найти цитируемый пост)
Конечно можно делать проверки isset для каждого поля формы и в зависимости от них дабавлять к запросу поля


В любом случае нужно делать проверку isset, но не для всех полей, а для обязательных. Если валидация не прошла, то и пытаться в базу что-то запихнуть не нужно.
А для осатальных полей просто указываешь значение из реквеста, если оно пустое - ничего страшного не случится.
PM MAIL Skype   Вверх
skyboy
Дата 22.7.2010, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



дополнять за автора - гиблое дело, но все же.
если есть поля, в которых может быть NULL значение, то неужель запросы эквивалентны:
Код

insert into t(a,b,c) values(1,2,'')

и
Код

insert into(a,b) values(1,2)
?
PM MAIL   Вверх
Avaj
Дата 22.7.2010, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 212
Регистрация: 14.7.2008
Где: Владивосток.

Репутация: нет
Всего: 3



Да, чё-то я не въехал в свою проблему. smile 
А как при bind'ить NULL в prepared statement?
PM MAIL   Вверх
skyboy
Дата 22.7.2010, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



PM MAIL   Вверх
Avaj
Дата 22.7.2010, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 212
Регистрация: 14.7.2008
Где: Владивосток.

Репутация: нет
Всего: 3



skyboy

    
Цитата

в mysqli вполне можно


а как? Я пытался так :

Код

bind_param("s","NULL");
bind_param("NULL");
bind_param(NULL);


и не получается.


А если вот так:

Код

$Null = Null;
bind_param("s", $Null);
, то получается  smile 

Это сообщение отредактировал(а) Avaj - 22.7.2010, 13:57
PM MAIL   Вверх
skyboy
Дата 22.7.2010, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



Цитата(Avaj @  22.7.2010,  12:53 Найти цитируемый пост)
а как?

четыре минуты открывал ссылку? smile
PM MAIL   Вверх
Avaj
Дата 22.7.2010, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 212
Регистрация: 14.7.2008
Где: Владивосток.

Репутация: нет
Всего: 3



Цитата

You can, in fact, use mysqli_bind_parameter to pass a NULL value to the database. simply create a variable and store the NULL value (see the manpage for it) to the variable and bind that. Works great for me anyway.
 - це ж слова, я обычно примеры сразу смотрю, а их нет.  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0789 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.