Heim >Backend-Entwicklung >PHP-Tutorial >求php多数组组合写入数据库方法

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

WBOY
WBOYOriginal
2016-06-23 14:25:051366Durchsuche

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

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

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


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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:memcache 的使用环境Nächster Artikel:PHP 表单提交/Post地址求助