在php mysql中创建列数等于当月天数的表的查询
表结构将像在php mysql中创建列数等于当月天数的表的查询,php,mysql,Php,Mysql,表结构将像 day1、day2、…..、day31(对于10月(10日),一个月有31天)您应该使用以下方法: $month='10'; $year='2012'; $d=cal_days_in_month(CAL_GREGORIAN,$month,$year); $month='10'; $year='2012'; $d=每月的计算天数(计算公历,$month,$year); $sql='CREATE TABLE`TABLE_name`('; 对于($i=1;$i可能不是最优雅的解决方案
day1、day2、…..、day31
(对于10月(10日),一个月有31天)您应该使用以下方法:
$month='10';
$year='2012';
$d=cal_days_in_month(CAL_GREGORIAN,$month,$year);
$month='10';
$year='2012';
$d=每月的计算天数(计算公历,$month,$year);
$sql='CREATE TABLE`TABLE_name`(';
对于($i=1;$i可能不是最优雅的解决方案,但它允许一些灵活性:
$month = '10';
$year = '2012';
$d = cal_days_in_month(CAL_GREGORIAN, $month, $year);
$sql = 'CREATE TABLE `table_name` (';
for ($i = 1; $i <= $d; $i ++)
{
$sql .= '`day' . $i . '` int(2) DEFAULT NULL';
if ($i != $d)
$sql .= ',';
}
$sql .= ') DEFAULT CHARSET=latin1';
mysql_query($sql);
函数getQuery($days、$tableName、$columnName、$columnLength、$columnType='VARCHAR'){
$query='CREATE TABLE'.$tableName'.(';
对于($i=1;$i创建表TABLE\u name
(创建表TABLE\u name
)(day1 int(2)默认空创建表TABLE\u name
(day1 int(2)默认空,day2 int(2)默认空创建表TABLE\u name
(day1 int(2)默认空,day2)默认空,day3 int(2)默认为空创建表表\u名称
(第1天int(2)默认为空,第2天int(2)默认为空,第3天int(2)默认为空,第4天int(2)默认为空------------结果如下“创建表\u名称”不能重复两次,因为在代码中它没有在循环中使用。请检查您是否使用相同的代码。结果是:创建表TABLE\u name
(day1
int(2)默认空值,day2
int(2)默认空值,day3
int(2)默认空值,day4
int(2)默认空值,day5
int(2)默认空值,day6
int(2)默认空值,day7
int(2)默认空值,day8
int(2)默认空值,day9
int(2)默认空值,day10
int(2)默认空值,day11
int(2)默认空值,day12
int(2)默认空值,day13
int(2)默认为空,day14
int(2)默认为空,day15
int(2)默认为空,day16
int(2)默认为空,day31
int(2)默认为空)默认字符集=1
function getQuery($days, $tableName, $columName, $columnLength, $columnType = 'VARCHAR'){
$query = 'CREATE TABLE ' . $tableName . ' (';
for($i = 1; $i <= $days; $i++){
$query .= $columName . $i . ' ' . $columnType . '(' . $columnLength . ') NOT NULL, ';
if($i == $days){
$query .= $columName . $i . ' ' . $columnType . '(' . $columnLength . ') NOT NULL)';
}
}
return $query;
}