Maison >développement back-end >tutoriel php >求php多数组组合写入数据库方法

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

WBOY
WBOYoriginal
2016-06-23 14:25:051362parcourir

本帖最后由 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<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 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<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语句的话就完美了。

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

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


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

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:memcache 的使用环境Article suivant:PHP 表单提交/Post地址求助