0

別のテーブルの列を定義する行エントリを持つテーブルを作成したいと思います。このようにして、フォームの質問が変更または追加された場合に、後でテーブルを簡単に更新できます。

例えば。

表 1: 質問

Question            column_name     column_type   characters    default
What is your name?      name           Char         255           ''
When where you born?    birth          char         255           ''
What is today's date?   date           int                        ''
Do you have a pet?      pet            bin                        0   

表 2: 結果

name        birth       date
Cammy      Teaneck      1988
Tommy      Tenefly      2001
Tasha      Brooklyn     1950    

PHPフォームで、すべての列が存在するかどうかを確認し、存在しない場合はtable2に作成してからエントリを追加します

$collect = db_query("SELECT column_name FROM {Table1}");
while ($data = db_fetch_array($collect)){

$name = $data['column_name'];
$stretch = db_query("SELECT $name FROM {Table2}");
if ($stretch == null or false){

UPDATE TABLE Table2 ($name   $type($char) DEFAULT $default)
 }
}
4

2 に答える 2

1

あなたが求めているものの擬似コードは次のとおりです。

foreach column in table1 {
  $res = query("select column from table2");
  if( ! $res ) {
    query("alter table add field datatype(size) to table 2");
  }
}

私がアイデアを得た場所からの大まかな実装を次に示します

于 2013-03-21T11:24:41.953 に答える
0

このテーブルにこのフィールドが含まれているかどうかを確認するには、mysql の情報スキーマを使用してください。

SELECT * FROM  information_schema.COLUMNS WHERE TABLE_NAME='Table2' and COLUMN_name IN ('name','birth','date')

これを試してください

于 2013-03-21T11:28:55.683 に答える