求一段php调用代码
程序员文章站
2024-01-03 16:49:16
...
看图说话。
假设上面是一个表 。。
表里面 有 信息ID 和用户UID 和特定的PID
怎么在loop循环调用变量的时候 判断 其他条信息的PID = 当前信息的ID (红框所示)
我在调用的时候 这么判断
就被判断成当前的这条信息ID是否和PID相同了。关键是PID和ID 肯定不会在一条id的信息数据里 PID是针对ID的
代码我是这样写的
显示的结果是
1 -8 - 25
2 -3 - 36
3 -12 -1
这没有错 输出正确
我想要的结果是 第三条PID等于 第一条的ID 让他显示在第一条下面
怎么写代码啊 求解脱
每条信息包含ID和PID 这个循环是不错 但是会在key为ID的时候 把PID的也读取了
没测试过,你看看行不行
假设上面是一个表 。。
表里面 有 信息ID 和用户UID 和特定的PID
怎么在loop循环调用变量的时候 判断 其他条信息的PID = 当前信息的ID (红框所示)
我在调用的时候 这么判断
{loop $list}......{if $id == $pid}.......{/if} .....{/loop}
就被判断成当前的这条信息ID是否和PID相同了。关键是PID和ID 肯定不会在一条id的信息数据里 PID是针对ID的
代码我是这样写的
{loop $list}$id - $uid -$pid
{/loop}
显示的结果是
1 -8 - 25
2 -3 - 36
3 -12 -1
这没有错 输出正确
我想要的结果是 第三条PID等于 第一条的ID 让他显示在第一条下面
怎么写代码啊 求解脱
回复讨论(解决方案)
其实是自己编写了个留言。
其中的ID就是 留言的信息ID 用于删改信息;其中的UID就是留言的作者ID;还有留言内容、时间等字段就不说了。
最重要的就是PID,是自动生成的 ,就是给第几条信息回复的,
我想比如给信息ID为1的信息留言,让他显示在这条信息下面 。不知道怎么操作。哎
两个数组,一个按照ID排序的数组A(key值是ID),一个按照PID排序的数组B(key值是PID)。
A数组key值:1、2、3、6、8。。。
B数组key值:1、3、34、35.。。
每次从两个数组最开始位置取数据,A指针取到1输出,然后取B的第一个,也是1,输出。再取A指到了2输出,B获取发现是3,不输出。再取A 3输出,再次看B,发现也是3输出。
数组排序就用php自带的方法复杂度大概O(nLgn),遍历两个数组复杂度O(n)。
两个数组,一个按照ID排序的数组A(key值是ID),一个按照PID排序的数组B(key值是PID)。
A数组key值:1、2、3、6、8。。。
B数组key值:1、3、34、35.。。
每次从两个数组最开始位置取数据,A指针取到1输出,然后取B的第一个,也是1,输出。再取A指到了2输出,B获取发现是3,不输出。再取A 3输出,再次看B,发现也是3输出。
数组排序就用php自带的方法复杂度大概O(nLgn),遍历两个数组复杂度O(n)。
每条信息包含ID和PID 这个循环是不错 但是会在key为ID的时候 把PID的也读取了
{loop $list $val}评论{$val['id']}{loop $list $val1}{if $val['id']==$val1['pid']}回复评论{$val['id']}的评论{/if}{/loop}{/loop}
没测试过,你看看行不行
$sqlstr = "select * from table";$query = mysql_query($sqlstr) or die(mysql_error());while($thread=mysql_fetch_assoc($query)){ $result[] = $thread;}foreach($result as $key=>$val){ if(isset($ret[$val['pid'])){ array_push($ret[$val['pid']], $val); }else{ $ret[$val['pid']] = array($val); }}print_r($ret);