查询创建具有列数的表,等于php mysql中当前月份的天数

时间:2015-04-09 07:07:12

标签: php mysql

$month='10';

$year='2012';

$d=cal_days_in_month(CAL_GREGORIAN,$month,$year);
表结构将

day1,day2,.......,day31(10月10日,每月31天)

2 个答案:

答案 0 :(得分:1)

你应该用这个:

$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);

答案 1 :(得分:0)

也许不是最优雅的解决方案,但它允许一点灵活性:

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;
}