2013-03-21 216 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') 

请试试这个