很多站长朋友们都不太清楚while的嵌套php,今天小编就来给大家整理while的嵌套php,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 关于php中的foreach,while的嵌套循环问题?比如执行完sql后执行第一个while循环,然后在while循环里边在 2、 php 嵌套循环 3、 php while 嵌套,外部WhILE未循环 4、 php 里面while 嵌套 取值只能取到最后一个。 5、 关于PHP 中while嵌套循环问题,求解决 6、 php while循环里面还能再套while循环吗 关于php中的foreach,while的嵌套循环问题?比如执行完sql后执行第一个while循环,然后在while循环里边在两个while用的$conn连接要不一样才行
$conn1=mysql_connect(...);
$conn2=mysql_connect(...);
$sql1第一个循环语句
$sql2第二个循环语句
mysql_query($sql1,$conn1)
while($rows=mysql_fetch_array(...)){
mysql_query($sql2,$conn1);
while($rows=mysql_fetch_array(...)){
.......
}
}
关键是建立不同的连接对象如,$conn1和$conn2,不能用一种连接对象,让数据库查询while里面套while
php 嵌套循环首先是外面的循环用了$dosql->GetArray() 然后里面的循环又用了 $dosql->GetArray($row['id'])。$dosql是同一个吧,同一个就会在里面循环的时候把外面要循环的东西替换掉了。
php while 嵌套,外部WhILE未循环你这个故障是因为,$dsql 被重新使用了。
把内循环的$dsql 改成新建的 $dsql2 应该就没有问题了。
php 里面while 嵌套 取值只能取到最后一个。$replay=array($result[mid]=>array("con"=>$reply_result[con],"reply_id"=>$reply_result[id],"date"=>$reply_result[date]));
这句话就是把array赋值给$replay,当然后面的赋值会覆盖前面的了。
你的想法是$replay是一个数组,数组的每个元素是array函数生成的数组。所以可以用
$index++;
$replay[$index]=array(....);
关于PHP 中while嵌套循环问题,求解决数据库
PHP处理部分
public function index(){
//我这里用的thinkPHP框架,不知道你是原生还是什么,就简单说一下思路。
$tb_type = M("Type");
$tb_product = M("Products");//这里我是实例化我的数据表,说通俗点就是连接数据库,指定某个表
$types = $tb_type->select(); //这里是在我的products表中进行select查询,而且得到的$types是一个二维数组
foreach($types as $key=>$type){ //这里foreache循环遍历$types,为了取到$type得id号,以此作为条件去产品信息表中进行查询
$where["typeid"] = $type["typeid"]; //这里是where条件,如果是原生的就相当于$where="where typeid = ".$type["id"];
$products = $tb_product->where($where)->select(); //这个sql语句转换为原生是$sql = "select * from tb_products where typeid=".$value['typeid'];
$types[$key]["products"] = $products;//出现你那种情况的主要原因是数组的重构这里,我把得到的产品信息的二维数组与先得到的类别信息的数组进行组合
//因为$types是一个二维数组,键值默认为0 1 2 3内部数组的键值是数据库字段的值,这里我将紧挨着数据库
//字段的值给内部的一维数组添加一个除了数据库字段的值之外的products键,是为了你能够顺利的循环输出在模板页面
}
$this->assign("info",$types);
$this->display();
}
最终的结果
php while循环里面还能再套while循环吗能,但是你犯了一个常识性的错误
php是解释性语言
代码是从第一行开始运行到最后一行的!
换个说法,如果一个页面存在相同的两个变量
那么,下面的会覆盖上面的:
比如:
$a
=
10;
$a
=
123;
echo
$a;
你说最后的结果是什么呢?总不会是10吧?
再看看你的代码,同理
你第一下循环
while(
$row
=
............){
//这有个变量$row了
接着你又
while(
$row
=
............../这又有一个变量$row了,那你自己想想,在第一次循环,并且嵌套的那个循环中的
$row是不是会覆盖父循环中的变量$row呢???
建议,php中,如果不是需要对变量重新赋值定义的话,变量名不要老是那几个转,应该区分开来,比如,大小写了,或者干脆换个名称了,以防冲突!
关于while的嵌套php的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于while的嵌套php while嵌套while循环的详细内容...