2013-06-16 2 views
0

Я имею таблицу категории, как этотОбновление SQL с несколькими категориями и флажком (PHP)

Таблица Название: личность

id | Category 
    1 | cute 
    2 | rich 
    3 | stupid 
    4 | funny 
    5 | famous 

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

и моей форме:

<form> 
    Name : <input name="user" type="text" id="user" value="<?php echo $line['user'];?>" /> 
    Personality : <?php $personality=mysql_query("select * from personality"); 
        while($data=mysql_fetch_array($personality)){ 
        $check = ($line['usr_char']==$data['category'])?"checked" : ""; 
        <label for='$data[kategori]'> 
        <input type='checkbox' id='usr_char' checked value='$data[category]'> 
        <span class='custom checkbox $check'></span> $data[category]</label><br>}?> 

Как разместить таблицу категорий персонажей в другой таблице с несколькими категориями?

Вот пример результата: Таблица Название: люди

name | usr_char 
    abby | cute,rich,funny 
    andy | famous,funny 

ответ

0

Для одного вы не указали имя на входном элементе.

<input type='checkbox' id='usr_char' name='attribute[]' checked value='$data[category]'> 

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

$attributes = implode(",", $_POST["attribute"]); 
+0

работы greattt, большое спасибо, вы можете дать мне пример "для каждой команды" взорвется $ атрибутов и поставить его на флажок? –

0

Создайте другую таблицу с именем people_personality, со следующим:

  • id < - ваш первичный ключ
  • person_id < - ваш первичный ключ из таблицы «Люди»
  • personality_id < - ваш первичный ключ из таблицы "Личность"

Предположим, у вас есть в вашем People таблице:

id - name 
1 - abby 
2 - andy 

Теперь вы хотите назначить abbycute, rich и funny:

INSERT INTO people_personality VALUES ('',1,1),('',1,2),('',1,3) 
0

Мое предложение не пытайтесь хранить несколько значений, разделенных запятой, в поле SQL.Он имеет много недостатков, в том числе,

  • Получение отдельных значений представляет собой трудоемкий процесс
  • Это не читается
  • становится трудно поддерживать

Таким образом, вместо того, чтобы использовать many-to-many link table. Например, вы могут иметь таблицы таким образом:

Таблица 1:

Id | Category 

1 | cute 
2 | rich 
3 | stupid 
4 | funny 
5 | famous 

Таблица 2:

Name | Usr_char 

abby | cute 
abby | rich 
abby | funny 
andy | famous 
andy | funny 

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

Чтобы получить:

SELECT * FROM table_name WHERE Name = 'abby'; 

Чтобы добавить:

INSERT INTO table_name (Name, Usr_char) VALUES ('abby', 'cute'); 
+0

где ответ «Как разместить таблицу категорий личности в другой таблице с несколькими категориями?» –

+0

@dianuj Не рекомендуется хранить несколько значений в одном поле. Я не думаю, что основная проблема OP заключается в том, чтобы найти способ хранения нескольких категорий в одном поле. Ее проблема заключается в том, чтобы сделать работу «эффективным» и «простым способом». Посмотрите на эти ответы: http://stackoverflow.com/questions/4804841/mysql-storing-multiple-value-in-single-column-from-another-table http://stackoverflow.com/questions/ 1973905/multiple-value-stored-in-single-coloumn-in-mysql-database? Rq = 1 – Kevin

+0

Я согласен с тем, что не стоит хранить значения, разделенные запятыми, но она просит, как получить эти значения для каждого пользователя после форма подает –

Смежные вопросы