先上表结构
现在想要通过pid查询lessiontypeid,在通过lessiontypeid查出这一条信息,最后返回全部查询信息。
下面的我写的一个递归
问题在于 他每循环一次就要输出一次结果并且循环继续
所以
1、我不能用retuen:否则跳出循环。
2、我要在控制器里调用这个函数,获取他返回的结果集,也不能用var_dump之类的函数
用的是ic框架,小弟求大神们指点一二!
public function getlessiontypearray($pid = 0)
{
//getlessiontype 输入条件获取上表的全部信息
$all_t = $this -> course_model -> getlessiontype(array(‘pid’=>$pid));
if($all_t){
foreach ($all_t as $k => $v) {
//将lessiontypeid取出来作为pid的条件
$ltid = $all_t[$k][‘lessiontypeid’];
$all = $this -> course_model -> getlessiontype(array(‘pid’=>$ltid));
if($all){
//需要的结果
var_dump($all);
}
//回调自己
$res = $this -> getlessiontypearray($ltid);
}
}
}
回复讨论(解决方案)
感觉这么写很矛盾。。。。
要是有好的想法也可以提出来
嗯,我想到了这个,你可以试一下。
$query = mysqli_query(“select lessiontypeid from table where pid = 1”);
while($res = mysqli_fetch_array($query)) {
$sql = “select * from table where lessiontypelessiontypeid’]}'”;
$query2 = mysqli_query($sql);
while ($row = mysqli_fetch_array($query2)) {
$rows[] = $row;
}
}
这个while循环最后也是要retuen的呀 跳出来就不循环了
返回的值需要按父子关系排列么?不需要的话直接select * from table where pid >= $pid不就都出来了么。或者先用这条sql查出符合条件的数据再进行整理。
返回的值需要按父子关系排列么?不需要的话直接select * from table where pid >= $pid不就都出来了么。或者先用这条sql查出符合条件的数据再进行整理。
事实是需要的 pid存的就是他父集的id!
返回的值需要按父子关系排列么?不需要的话直接select * from table where pid >= $pid不就都出来了么。或者先用这条sql查出符合条件的数据再进行整理。
事实是需要的 pid存的就是他父集的id!
如果要是必须按照你的做法来做的话,就用 引用传递吧
参考:
http://www.php.net/manual/zh/language.references.pass.php
除非在递归过程中直接输出,否则返回是必须的
可以设置一个全局变量,把输出的写入这个变量。
递归执行后,就可以读取这个变量了,例如
除非在递归过程中直接输出,否则返回是必须的
是的 感觉思路有问题,不能这样写。。。
可以设置一个全局变量,把输出的写入这个变量。
递归执行后,就可以读取这个变量了,例如
试过了 不行,因为是在ci框架里。我想想其他的解决办法吧,感谢!
和框架应该没什么关系吧,框架内也可以自定义方法调用的。
需求是
和框架应该没什么关系吧,框架内也可以自定义方法调用的。
额 之前有点蒙