通过js 得到文本域的值后,我把值传递给了 隐藏域(以上这部成功)!
隐藏域的名称是“qq”下面是我的数据处理页代码<?php
    $conn=mysql_connect("localhost","root","") or die("数据库服务器连接错误".mysql_error());
    mysql_select_db("shunfeng",$conn) or die("数据库访问错误".mysql_error());
    mysql_query("set names gb2312");
    $q=($_POST[qq]);
$qq=explode(",",$q);
    $sql=mysql_query("insert into ruku(spmc,guige,jldw,danjia,jianshu,shuliang,sale)values('$qq[0]','$qq[1]','$qq[2]','$qq[3]','$qq[4]','$qq[5]','$qq[6]')");通过explode转化为数组插入到MYSQL,只能插入表格中的一行数据。我的表格式多行的,怎么实现。为了看起来直观我把图贴上来。
图一:--隐藏域中的值就是取出这个表中每个单元格的值,值是字符串的形式。图二:
这个是我MYSQL中的字段表我的目的就是图一中的:从商品名称到金额 每一行 与图二 当中的SPMC到sa相对应
但是EXPLODE后的数组中的值有很多,我想每7个值插入到MYSQL表中。超过7个的数据插入到第2行,超过14个的数据插入到第3行,以此类推

解决方案 »

  1.   

    把隐藏域的内容放出来看看啊,应该是类似:
    10,11,12,13,14,15,16|20,21,22,23,24,25,26|....
    每7个一组,提交后先以“|”把每条记录分开,再用“,”把每个字段值分开,然后将每条记录插入。
    如果你提交的数据不分组,类似:
    10,11,12,13,14,15,16,20,21,22,23,24,25,26,....
    那么$q=($_POST[qq]);
        $qq=array_chunk(explode(",",$q),7);
    你输出$qq看看就知道了,能得到7个一组的2维数组,再循环添加
      

  2.   

    谢谢ls的提示。通过array_chunk 得到7个一组的二维数组后。 写入MYSQL的循环语句该怎么写啊?
      

  3.   

    一次添加多行的sql语句:
    insert into 表 (字段1,字段2,字段3,...) Values (值1,值2,值3,...),(值1,值2,值3,...),(值1,值2,值3,...),...
    标准写法:
    insert into 表 (字段1,字段2,字段3,...) SELECT 值1,值2,值3,... UNION SELECT 值1,值2,值3,... UNION SELECT 值1,值2,值3,...
      

  4.   

    这个好写呀!假如$qq为
    10,11,12,13,14,15,16|20,21,22,23,24,25,26|.... 
    $tt=explode("|",$qq); 
    for($$i=0;$i<7;$i++)
    {
    $t=$tt[$i];
    $a=explode(",",$t);
    写你插入语句}
      

  5.   

    楼主你把你  $q=($_POST[qq]);
    值发过来看看! 
      

  6.   

    往MYSQL插入数据,是不是不支持二维数组啊。我先做了个测试,
    $sql=mysql_query("insert into ruku(spmc,guige,jldw,danjia,jianshu,shuliang,sale,beizhu)values('$qq[0][0]','$qq[0][1]','$qq[0][2]','$qq[0][3]'。。
    结果到了MYSQL中变成了这个样子:
    spmc      guige    jldw    danjia  jianshu  shuliang  sale  beizhu  
                         
    Array[0] Array[1] Array[2] Array[3] Array Array Array Array 
      

  7.   

    往MYSQL插入数据,是不是不支持二维数组啊。我先做了个测试, 
    $sql=mysql_query("insert into ruku(spmc,guige,jldw,danjia,jianshu,shuliang,sale,beizhu)values('$qq[0][0]','$qq[0][1]','$qq[0][2]','$qq[0][3]'。。 
    结果到了MYSQL中变成了这个样子: 
    spmc      guige    jldw    danjia  jianshu  shuliang  sale  beizhu  
                        
    Array[0] Array[1] Array[2] Array[3] Array Array Array Array 
      

  8.   

    好的,我把 $q=($_POST[qq]); 
    值发过来 
      

  9.   

    晕倒。一个账号不能连续3次回复。我换了个账号把隐藏域中的值发过来隐藏域中的值1,2,3,4,5,6,24,7,8,9,10,11,12,13,14,15
    经过array_chunk 后变成:
    Array ( [0] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 24 [7] => 7 ) [1] => Array ( [0] => 8 [1] => 9 [2] => 10 [3] => 11 [4] => 12 [5] => 13 [6] => 14 [7] => 15 ) ) 说明一下:图一当中的一行是8个元素。 我一次要往MYSQL中插入8个数据
      

  10.   

    sql里面$qq[0][0]加个大括号{$qq[0][0]}
      

  11.   

    好的,谢谢lS兄弟~我加个大括号 成功的从MYSQL当中显示出我想要的值!!!
      

  12.   

    $q=($_POST[qq]); 
    $qq=array_chunk($q,8); 
    for($i=0;$i<50;$i++)
    {
    $t=$qq[$i];
            $sql=mysql_query("insert into ruku(spmc,guige,jldw,danjia,jianshu,shuliang,sale)values($t[0],....$t[7])")
    ;}
      

  13.   

    $conn=mysql_connect("localhost","root","") or die("数据库服务器连接错误".mysql_error());
    mysql_select_db("shunfeng",$conn) or die("数据库访问错误".mysql_error());
    mysql_query("set names gb2312");
    $q=($_POST[qq]);
    $qq=array_chunk(explode(",",$q),7);//这里可以修改分组个数
    function _implode($item)
    {
    return "('".implode("','",$item)."')";
    }
    $qq_str = implode(',',array_map('_implode',$qq));
    //输出 $qq_str 看看,可以不用for一次添加多条记录
    $sql=mysql_query("insert into ruku(spmc,guige,jldw,danjia,jianshu,shuliang,sale) values ".$qq_str);
      

  14.   

    我先把我思考的思路写出来。当然我这个思路最后失败了,但不知道哪出错了。神人们有时间帮我分析下
       $q=($_POST[qq]);//得到1,2,3,4,5,6,24,7,8,9,10,11,12,13,14,15 (隐藏域中的值)

    $qq=explode(",",$q);//得到一维数组Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 24 [7] => 7 [8] => 8 [9] => 9 [10] => 10 [11] => 11 [12] => 12 [13] => 13 [14] => 14 [15] => 15 )



    $qqq=array_chunk($qq,8);//得到二维数组Array ( [0] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 24 [7] => 7 ) [1] => Array ( [0] => 8 [1] => 9 [2] => 10 [3] => 11 [4] => 12 [5] => 13 [6] => 14 [7] => 15 ) ) 



    $count=(count($qq))/8; //这一步是计算出表格的行数,也就是往MYSQL当中插入几次。得出$count=2;
    for($i=0;$i<$count;$i++){   //问题出在了这里!!我分析的是往MYSQL插入的次数,与二维数组有一定的规律关系。所以values('{$qqq[0][0]}' 换成values('{$qqq[i][0]}' 就不行了。MYSQL中无数据
    $sql=mysql_query("insert into ruku(spmc,guige,jldw,danjia,jianshu,shuliang,sale,beizhu)values('{$qqq[i][0]}','{$qqq[i][1]}','{$qqq[i][2]}','{$qqq[i][3]}','{$qqq[i][4]}','{$qqq[i][5]}','{$qqq[i][6]}','{$qqq[i][7]}')");

    }
      

  15.   

    呵呵~找出原因了,循环内出错了,不能用$i作为元素的循环,只能作为行数的循环。我现在想着用数组的KEY值作为元素的循环。
      

  16.   

    --------------------------------------------------------------------------------
    之前的GFREE999不能继续发帖了。特地换马甲上来,我按照你的思路,成功了~非常感谢,今天又学了一招,谢谢!呵呵