0

このようなカテゴリのテーブルがあります

テーブル名:パーソナリティ

 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>}?>

パーソナリティ テーブルのカテゴリを複数のカテゴリを持つ他のテーブルに投稿するにはどうすればよいですか?

結果の例を次に示します。 テーブル名: people

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

3 に答える 3

0

1つは、入力要素に名前がありません。

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

その後、 people テーブルを更新するための値を取得するには、単に使用します

$attributes = implode(",", $_POST["attribute"]);
于 2013-06-16T05:15:03.730 に答える
0

私の提案は、複数のカンマ区切りの値を SQL フィールドに格納しようとしないことです。を含む多くの欠点があります。

  • 個々の値を取得するのは面倒なプロセスです
  • 読めません
  • 維持が難しくなる

そのため、代わりに多対多のリンク テーブルを使用します。たとえば、次のようにテーブルを作成できます。

表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');
于 2013-06-16T05:18:33.910 に答える
0

people_personality次のように、という別のテーブルを作成します。

  • id<-- 主キー
  • person_id<-- 「People」テーブルの主キー
  • personality_id<-- 「パーソナリティ」テーブルの主キー

Peopleテーブルに次のものがあるとします。

id - name
1  - abby
2  - andy

abby cute、、richおよびを割り当てますfunny

INSERT INTO people_personality VALUES ('',1,1),('',1,2),('',1,3)
于 2013-06-16T05:12:39.610 に答える