K,V表结构的批量插入:
step1:
先定义表单的name数组
step2:
foreach循环
insert into 表名(表名的name数组[i],Request.form(表名的name数组[i]))

解决方案 »

  1.   

    动态添加利用jquery能够实现,插入数据库中,将文本框的name后都加上[]这样接受到的是一个数组,稍作处理插入数据库即可!
      

  2.   

    用一个数组就可以了, 楼上说得好,就是在name后面加一个[] 例如 name="name[]" 然后用数组输出一点$_POST
    你就知道怎么用了.
      

  3.   

    我现在这样改,但数组打印都打不出来?插入更没法<form action="bbcc22.php" method="POST">   
      <input   type="button"   onclick="addline()"   value="增加一行">   
      <table   border="1"   id="test" cellpadding="1" cellspacing="1">       
         <tr>
         <td width="250">提醒项目&nbsp;&nbsp;提醒时间&nbsp;&nbsp;提醒邮件 </td></tr>
          <tr>   
            <td colspan="3"><input size=10 type="text" name="tt[]"><input size=10 type="text" name="aa[]"><input size=10 type="text" name="bb[]"></td> 
            </tr>   
      </table>   
      <input value="bbccdd"type="submit">   
      </form>   
      <script>   
      function   addline(content){   
      newline=document.all.test.insertRow();   
      newline.insertCell().innerHTML='<input size=10 type="text" name="tt[]"><input size=10 type="text" name="aa[]"><input size=10 type="text" name="bb[]"><input type="button" value="删除"   onclick="del()"></tr>'   
        
      }   
      function   del(){   
      document.all.test.deleteRow(window.event.srcElement.parentElement.parentElement.rowIndex);   
      }   
      </script>
    下面怎么修改啊?<?php
    date_default_timezone_set('Asia/Shanghai'); 
    $tt[]=$_post["tt[]"];
    $aa[]=$_POST["aa[]"];
    $bb[]=$_POST["bb[]"];
    $db=mysql_connect('localhost','root','') or die(mysql_error());
    mysql_select_db('test',$db);
    $sql="insert into testmail(tt,aa,bb)values
    ('$tt','$aa','$bb')"; 
    mysql_query("set names gb2312"); 
    $result=mysql_query($sql,$db);
    mysql_close(); 
    echo "$tt[]";
    ?>
      

  4.   

    $tt=$_POST["tt"];
    $aa=$_POST["aa"];
    $bb=$_POST["bb"];
    print_r($tt);
    print_r($aa);
    print_r($bb);
      

  5.   

    这个只要你弄清楚你添加的文本框的name就行了吧.就好像
    <input ... name="text1" .. />
    <input ... name="text2" .. />
    <input ... name="text3" .. />
    <input ... name="text4" .. />
    .
    .
    .
    <input type="hidden" name="textcount" value="1" />每增加一个文本框这里就加1
    再用循环读取:
    $num=(int)$_POST["textcount"];//这里取得POST过来的文本框的数目
    for($i=1;$i<=$num;$i++){
       if($_POST["text$i"]!=""){
        mysql_query("insert into .....",$conn);
       }
    }
    这是我常用的手段.不知道对你有没用....
      

  6.   


    foreach($tt as $k => $v) {
      mysql_query("insert into testmail (tt, aa, bb) values ('$v','{$aa[$k]}','{$bb[$k]}')");
    }
      

  7.   

    为什么我这样插入数据库的是乱码??mysql5.0<?php
    date_default_timezone_set('Asia/Shanghai'); 
    $tt=$_POST["tt"];
    $aa=$_POST["aa"];
    $bb=$_POST["bb"];$db=mysql_connect('localhost','root','') or die(mysql_error());
    mysql_select_db('test',$db);foreach($tt as $k => $v) 
    {

      mysql_query("insert into testmail (tt, aa, bb) values ('$v','{$aa[$k]}','{$bb[$k]}')");
    mysql_query("set names gb2312");

    $result=mysql_query($sql,$db);
    mysql_close(); 
    ?>
      

  8.   

    set names放在查询前面,一次即可
    mysql_query("set names gb2312");
    foreach($tt as $k => $v)
    {
      mysql_query("insert into testmail (tt, aa, bb) values ('$v','{$aa[$k]}','{$bb[$k]}')");} 建表的时候设置好字符集,类似
    CREATE TABLE xx (
      ...
    ) ENGINE=MyISAM DEFAULT CHARSET=gbk;
      

  9.   

    ……,上面那个sql类似CREATE TABLE xx (
      ...
    ) ENGINE=MyISAM DEFAULT CHARSET=gbk;
      

  10.   

    问题解决了一些,能插入了,现在是加一个日历控件,报错<META NAME="Description" CONTENT="">
      <link rel="stylesheet" type="text/css" media="all" href="calendar-win2k-cold-1.css" title="win2k-cold-1" />  
      <script type="text/javascript" src="js/calendar.js"></script>  
      <script type="text/javascript" src="js/calendar-zh.js"></script>  <script type="text/javascript" src="js/calendar-setup.js"></script>
    </HEAD>
      <script>   
      function   addline(content){   
      
      newline=document.all.test.insertRow();   
      newline.insertCell().innerHTML='
    <input size=10 type="text" name="tt[]"><input size=10 type="text" name="aa[]" id="begin_date_b"><input type="reset" value="..."
    onclick="return showCalendar('begin_date_b', 'y-m-d');">--------这行是在每增加的一行中加日历控件,加了这行就不能增加了,不加这行程序运行正常,不知应该怎么增加???
    <input size=10 type="text" name="bb[]">
    <input type="button" value="删除"   onclick="del()"></tr>'   
        
      }   
      function   del(){   
      document.all.test.deleteRow(window.event.srcElement.parentElement.parentElement.rowIndex);   
      }   
      </script>
      <form action="bbccmail.php" method="POST">   
      <input   type="button"   onclick="addline()"   value="增加一行">   
      <table   border="1"   id="test" cellpadding="1" cellspacing="1">       
         <tr>
         <td width="250">提醒项目&nbsp;&nbsp;提醒时间&nbsp;&nbsp;提醒邮件 </td></tr>
          <tr>   
            <td colspan="3"><input size=10 type="text" name="tt[]" >
    <input size=10 type="text" name="aa[]" id="begin_date_b" >
    <input type="reset" value="..."
    onclick="return showCalendar('begin_date_b', 'y-m-d');"><input size=10 type="text" name="bb[]"></td> 
            </tr>   
      </table>   
      <input value="bbccdd"type="submit">   
      </form>  
      

  11.   

    保证你的id唯一,类似
    // js code
    var i = 1;
    function addline(...){
    ...
    id="begin_date_b_" + i;
    ...
    showCalendar("begin_date_b_" + i, ...
    ...
    i++;
    }
      

  12.   

    楼上,我的代码不是递增的意思。现在已经实现了动态文本框的增加,但是在每次增加动态文本框时,在第二个动态文本框name=aa增加一个日历控件,
      

  13.   


    1、id不能重复,所以利用i的递增产生不重复的id2、设置innerHTML的时候值不要换行
    类似innerHTML = '<input name="tt" \/><input name="aa" \/>';3、格式的话那个日历控件应该可以设置的
      

  14.   

    1、id不能重复,所以利用i的递增产生不重复的id 
    为什么不能重复?因为就是一个日历控件啊,ID就是关联日期控件2、设置innerHTML的时候值不要换行 
    类似innerHTML = ' <input name="tt" \/> <input name="aa" \/>'; 这好像没什么关系,我试子
    3、格式的话那个日历控件应该可以设置的不需要。不知是大家明白我的意思没有?我想要做的就是在动态增加文本框中的第二个字段,即,我每增加一个动态文本框,有三个字段,即:tt aa bb,我要动态增加的每行的aa字段上加一个日历控件。相反如果是静态文本框肯定没问题,静态这样即可:<input size=10 type="text" name="aa[]" id="begin_date_b" > 
    <input type="reset" value="..." onclick="return showCalendar('begin_date_b', 'y-m-d');"> 现在要把这个方式加载到动态的文本框上:即代码: <script>  
      function  addline(content){  
      
      newline=document.all.test.insertRow();  
      newline.insertCell().innerHTML=' 
    <input size=10 type="text" name="tt[]"> 
    ------下面这行---------
    <input size=10 type="text" name="aa[]" id="begin_date_b"> <input type="reset" value="..." 
    onclick="return showCalendar('begin_date_b', 'y-m-d');">
    --------上面这行------------
    <input size=10 type="text" name="bb[]"> 
    <input type="button" value="删除"  onclick="del()"> </tr>'  
        
      }  
      function  del(){  
      document.all.test.deleteRow(window.event.srcElement.parentElement.parentElement.rowIndex);  
      }  
      </script> 
      

  15.   

    1、id如果重复了,你怎么区分那些对象?我理解的是你每行都有个日历控件,而日历控件根据id确定输入框,所以每个id都要有区别2、印象中js的字符串不能有换行,即不能var html = "<p>
    xx
    </p>";,如果要用写\n,var html = "<p>\nxx\n</p>",否则好像会出错3、2 & 1
      

  16.   

    print_r($_REQUEST);
    一目了然.
    为数组foreach插入