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

求php多数组组合写入数据库方法,第1张

本帖最后由 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基础差,请求大侠们帮忙

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

?>

晕,理解错了。


该怎么理解呢

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

?>


我是要生成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<count($xk);$i++){

for($j=0;$j<count($nj);$j++){

for($k=0;$k<count($bj);$k++){

$arr[] = array($xk[$i],$nj[$j],$bj[$k]);

}

}

}

foreach($arr as $row){

//插入数据

}

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


for($i=0;$i<count($bj);$i++){echo $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<count($xk);$i++){ for($j="0;$j<count($nj);$j++){" for($k="0;$k<count($bj);$k++){" $arr[]="array($xk[$i],$nj[$j],$bj[$k]);" }="" }}foreach($arr="" as="" $row){="" 插入数据} 

写个笨方法。



$xk=Array ("1","2");

$nj=Array ("1","2","3");

$bj=Array ("1","2","3","4","5","6","7");

$arr = array();

for($i=0;$i<count($xk);$i++){

for($j=0;$j<count($nj);$j++){

for($k=0;$k<count($bj);$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<count($xk);$i++){ for($j="0;$j<count($nj);$j++){" for($k="0;$k<count($bj);$k++){" $arr[]="array($xk[$i],$nj[$j],$bj[$k]);" }="" }}foreach($arr="" as="" $row){="" 插入数据}  



能不能把 //插入数据 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<count($xk);$i++){ for($j="0;$j<count($nj);$j++){" for($k="0;$k<count($bj);$k++){" $arr[]="array($xk[$i],$nj[$j],$bj[$k]);" }="" }}foreach($arr="" as="" $row){="" 插入数据}  


我要的就是这个效果,我要将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<count($xk);$i++){ for($j="0;$j<count($nj);$j++){" for($k="0;$k<count($bj);$k++){" $arr[]="array($xk[$i],$nj[$j],$bj[$k]);" }="" }}foreach($arr="" as="" $row){="" $sql="INSERT INTO `examinfo` (`nj`,`bj`,`xk`) VALUES ('" .$row[0]."'="" ,'".$row[1]."','".$row[2]."')";} 

$xk=Array ("1","2");$nj=Array ("1","2","3");$bj=Array ("1","2","3","4","5","6","7");$arr = array();for($i=0;$i<count($xk);$i++){ for($j="0;$j<count($nj);$j++){" for($k="0;$k<count($bj);$k++){" $arr[]="array($xk[$i],$nj[$j],$bj[$k]);" }="" }}foreach($arr="" as="" $row){="" $sql="INSERT INTO `examinfo` (`nj`,`bj`,`xk`) VALUES ('" .$row[0]."'="" ,'".$row[1]."','".$row[2]."')";}  



非常感谢,但这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语句的话就完美了。


晕咯。


哥们,你想实现怎么不自己想想呢。


不能指望别人什么都给你做好,别人只能给你思路啊。




晕咯。


哥们,你想实现怎么不自己想想呢。


不能指望别人什么都给你做好,别人只能给你思路啊。







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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zaji/472325.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018-06-01
下一篇 2018-06-01

发表评论

登录后才能评论

评论列表(0条)

保存