2013-03-21 378 views
0

我想創建一個具有在另一個表中定義列的行條目的表。這樣,如果更改或添加表單的問題,我可以稍後輕鬆更新表格。從表1創建或更新列,並從表2創建或更新列

例如,

表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的形式,檢查是否存在的所有列,如果表2不能創建,然後添加條目

$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) 
} 
} 
+0

我想要一個二進制寵物! :-) – Teson 2013-03-21 11:10:42

+0

顯然,上述表格中的數據是重複的。如何在結果表中添加「問題」列?你有幾個問題? – 2013-03-21 11:11:43

+0

我在實際的東西里有63+個問題 – ingrid 2013-03-21 11:14:01

回答

0

請使用信息模式在mysql中檢查 此表是否包含這個字段或不 你可以找到INFORMATION_SCHEMA表名這 使用這樣

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

請試試這個