我有两个表
是关于做插入数据的
网页上有30个字段要填,其中ID是tt1,tt2,tt3...tt30这种格式的SQL语句应该怎么样写才好
如果在表1有字段没输入的话,就传递到表2的时候为空,当有字段为空的时候就插入不到数据!
应该怎么样判断表1传递过来的数据?
<?php
for ($i=1; $i<31; $i++){
    $tt="tt".$i;
    $value = $_POST[$tt];
    if($i == 30){
        $colums .= $tt; //字段名
        $values .= $value;// 值
    }else{
        $colums .= $tt.",";
        $values .= $value.",";
    }
}$sql="insert into test(".$colums.") values(".$values.")";
?>

解决方案 »

  1.   

    首先,你要确认数据库的字段能否插入空字符。
    如果可以的话,可以如下操作:
    <?php
    for ($i=1; $i<31; $i++){
        $tt="tt".$i;
        // 如果没有设置$tti的值,则默认为空字符
        $value = (isset($_POST[$tt])) ? $_POST[$tt] : "";
        if($i == 30){
            $colums .= $tt; //字段名
            $values .= $value;// 值
        }else{
            $colums .= $tt.",";
            $values .= $value.",";
        }
    }$sql="insert into test(".$colums.") values(".$values.")";
    ?>
      

  2.   


    $sql = "insert into test set ";
    for ($i=1; $i<31; $i++){
      $tt="tt".$i;
      if(isset($_POST[$tt]) && $_POST[$tt]!=""){
    $sql .= ($i==1?"":",")."`{$tt}`='{$_POST[$tt]}'";
      }else{
    die($tt.' 输入为空!');
      }
    }
    echo $sql;
      

  3.   

    你的表中一定有不允许为空的数值型字段,否则按你的代码不可能出现数据插不进的现象你可以先按你的表结构定义一个基础数组,并赋予初值
    $jg = array(
      'tt1' => '',
      'tt2' => 0,
      'tt3' => 0,
      ...
    )
    然后,用提交的数据充填这个数组
    $t = array_merge($jg, $_POST);
    最后组装成 sql 语句
    $fields = join(',', array_keys($t)); //提取关联键并连接为串
    $values = "'". join("','", $t) ."'"; //提取数据并连接成串
    $sql = "insert into tbl_name ($fields) values ($values)";对于表单元素名就是字段名的这种情况,不用循环要通用些
      

  4.   

    不行呀,依然有错
    声明一下:我表1里有单选按钮的
    SQL如果表1里有空的字段值就会出错,数据库是可以存放空数据的
    if(mysql_query($sql))
    {
    echo("<script language='javascript'>alert('成功');parent.location.href='test.php';</script>");
    exit();
    }
    else
    {
    echo("<script language='javascript'>alert('失败!');parent.location.href='test1.php';</script>");
    exit();