从Table1获取Row并从Table2创建或更新Column

时间:2013-03-21 11:06:13

标签: php mysql database forms

我想创建一个包含行条目的表,这些行条目定义了另一个表中的列。这样,如果更改或添加表单的问题,我可以在以后轻松更新表。

EG。

表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)
 }
}

2 个答案:

答案 0 :(得分:1)

您要求的伪代码如下:

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

这是一个粗略的实现,我从中得到了这个想法: http://forums.phpfreaks.com/topic/193330-alter-table-add-column-if-not-exists-possible/

答案 1 :(得分:0)

请使用mysql中的信息架构进行检查 此表是否包含此字段 你可以在information_schema中查找表名 像这样使用

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

请试试这个