Home > Backend Development > PHP Tutorial > 求php多数组组合写入数据库方法

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

WBOY
Release: 2016-06-23 14:25:05
Original
1372 people have browsed it

本帖最后由 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){	//插入数据}
Copy after login
Copy after login
Copy after login

写个笨方法。
$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){	//插入数据}
Copy after login
Copy after login
Copy after login



能不能把 //插入数据 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){	//插入数据}
Copy after login
Copy after login
Copy after login


我要的就是这个效果,我要将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]."')";}
Copy after login
Copy after login

$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]."')";}
Copy after login
Copy after login



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

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

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


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

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template