欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

求php多数组组合写入数据库方法

程序员文章站 2024-02-06 18:23:58
...
本帖最后由 wjm_hi 于 2013-10-25 15:55:24 编辑 我做一个成绩管理系统

//学科
$xk = array();

//年级
$nj = array();

//班级
$bj = array();

有三个数组,根据学科*年级*班级这个公式来生成多少条数据,然后写入到数据库。
例如:
count($xk)为2的时候,说明选择了2个学科
count($nj)为3的时候,说明选择了3个年级
count($bj)为7的时候,说明选择了7个年级
这时应该往数据库中插入2*3*7条数据,请问这个该怎么实现呢


回复讨论(解决方案)

php多循环,然后将数据下标循环最后写入数据库,PHP基础差,请求大侠们帮忙

$xk=Array ("1","2");
$nj=Array ("1","2","3");
$bj=Array ("1","2","3","4","5","6","7");
$xk=count($xk);
$nj=count($nj);
$bj=count($bj);
$test="$xk*$nj*$bj";
echo $test;
exit;
?>

晕,理解错了。、

该怎么理解呢

$xk=Array ("1","2");
$nj=Array ("1","2","3");
$bj=Array ("1","2","3","4","5","6","7");
$xk=count($xk);
$nj=count($nj);
$bj=count($bj);
$test="$xk*$nj*$bj";
echo $test;
exit;
?>

我是要生成INSERT INTO语句该怎么写呢


INSERT INTO `examinfo` (`nj`,`bj`,`xk`) VALUES ($nj ,$bj ,$xk),VALUES 后面要插入$xk*$nj*$bj这么多条,该怎么弄呢

到精华区找计算笛卡尔积的代码

写个笨方法。
$xk=Array ("1","2");
$nj=Array ("1","2","3");
$bj=Array ("1","2","3","4","5","6","7");
$arr = array();
for($i=0;$i for($j=0;$j for($k=0;$k $arr[] = array($xk[$i],$nj[$j],$bj[$k]);
}
}
}
foreach($arr as $row){
//插入数据
}

这个有这么复杂嘛,用FOR可以做吗

for($i=0;$i

$xk=Array ("1","2");$nj=Array ("1","2","3");$bj=Array ("1","2","3","4","5","6","7");$arr = array();for($i=0;$i

写个笨方法。
$xk=Array ("1","2");
$nj=Array ("1","2","3");
$bj=Array ("1","2","3","4","5","6","7");
$arr = array();
for($i=0;$i for($j=0;$j for($k=0;$k $arr[] = array($xk[$i],$nj[$j],$bj[$k]);
}
}
}
foreach($arr as $row){
//插入数据
}

这个好像可行,foreach里面插入数据该怎么写SQL语句呢

$xk=Array ("1","2");$nj=Array ("1","2","3");$bj=Array ("1","2","3","4","5","6","7");$arr = array();for($i=0;$i


能不能把 //插入数据 echo一下调用方法。

$xk=Array ("1","2");$nj=Array ("1","2","3");$bj=Array ("1","2","3","4","5","6","7");$arr = array();for($i=0;$i

我要的就是这个效果,我要将INSERT INTO `examinfo` (`nj`,`bj`,`xk`) VALUES ($nj ,$bj ,$xk)放到//插入数据的位置,我该怎么写呢。

$xk=Array ("1","2");$nj=Array ("1","2","3");$bj=Array ("1","2","3","4","5","6","7");$arr = array();for($i=0;$i

$xk=Array ("1","2");$nj=Array ("1","2","3");$bj=Array ("1","2","3","4","5","6","7");$arr = array();for($i=0;$i


非常感谢,但这SQL语句能做点优化最好了,INSERT INTO `examinfo` (`nj`,`bj`,`xk`) VALUES ($nj ,$bj ,$xk)一直是这句在循环,如果做成INSERT INTO `examinfo` (`nj`,`bj`,`xk`) VALUES (1 ,1 ,1),(1 ,1 ,2),(1 ,1 ,3)这样的SQL语句的话就完美了。

晕咯。哥们,你想实现怎么不自己想想呢。不能指望别人什么都给你做好,别人只能给你思路啊。。

晕咯。哥们,你想实现怎么不自己想想呢。不能指望别人什么都给你做好,别人只能给你思路啊。。


嗯,有这个思路,我可以继续往下做了,谢谢,优化的事我有思路了,谢谢了