Вставить несколько значений флажка в базе данных MYSQL - PullRequest
0 голосов
/ 15 февраля 2012

Я хочу вставить несколько выбранных значений флажков для вставки в один столбец, когда я ищу его, я обнаружил, что добавить значения с запятой и вставить в таблицу Пример:

   ID      Value
-------------------
    1        Veg
    2        Non-Veg
    3        Chinese
    4        Italian

если пользователь выбирает 1 3 4, добавьте запятую, как 1,3,4, и вставьте в таблицу. добавление через запятую не эффективный способ, есть ли другой способ? Помогите мне, пожалуйста Заранее спасибо

Ответы [ 4 ]

1 голос
/ 15 февраля 2012

Если предположить, что таблица будет такой же, как для order_id 33 tableA

order_id    item_id
33            1
33            3
33            4

, вы можете получить значение путем внутреннего соединения над таблицей и элементом, таблица значений

(select * from tableA inner join tableB on tableA.item_id=tableB.item_id)

tableB

item_id      value
 1            Veg
 2            Non-Veg
 3            Chinese
 4            Italian

попробуйте это

$order_id=33;
$ids=$_GET['ids']; // $ids= 1,3,4
$ids_Split= explode(",", $ids);
$cnt=count($ids_Split);
for($i=0;$i<$cnt;$i++)
{
mysql_query("insert into hotel_table(order_id,item_id) 
values ($id, $ids_Split[$i])");
}
1 голос
/ 15 февраля 2012

Как насчет двоичных чисел, например:

0101

, что означает

checkbox 1 : true
checkbox 2 : false
checkbox 3 : true
checkbox 4 : false

в дБ, оно будет храниться как 5 (десятичное значение двоичного 0101)

Единственная проблема будет в том случае, если вы хотите искать пользователей, например, с установленным флажком 3.

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

0 голосов
/ 15 февраля 2012

Создание связанной таблицы, в которую можно добавить несколько строк (по 1 для каждого выбора), было бы первым, о чем я бы подумал ...

0 голосов
/ 15 февраля 2012

Никогда не следует помещать несколько значений в один столбец, которые нарушают первую стандартную форму базы данных: http://en.wikipedia.org/wiki/First_normal_form

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...