thinkkphp 用foreach遍历如何where

lidaoying 2016-07-22 04:00:28
thinkkphp 用foreach遍历如何where


下面是前台如何显示这种效果,就是推荐人等级显示对应的推荐人等级


控制器代码:

public function userlist()
{
$game = M('characters');

$count=$game->count();
$page=new \Think\Page($count,10);
$show = $page->show();//分页显示输出
$list = $game->order('guid')->limit($page->firstRow.','.$page->listRows)->select();

$this->assign('list',$list); // 赋值数据集
$this->assign('page',$show);
$this->display('Index/userlist');

}


前台代码:

<table class="tablelist">
<thead>
<tr>
<th>编号<i class="sort"><img src="/sncss/images/px.gif" /></i></th>
<th>用户</th>
<th>等级</th>
<th>推荐人</th>
<th>推荐人等级</th>
</tr>
</thead>
<tbody>

<foreach name='list' item='v'>
<tr>
<td><{$v.guid}></td>
<td><{$v.name}></td>
<td><{$v.level}></td>
<td><{$v.tuijianren}></td>
<td ><{$v.tuijianrenlevel}></td>
</tr>
</foreach>
</tbody>
</table>
...全文
289 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
justS0 2016-07-25
  • 打赏
  • 举报
回复
引用 3 楼 lidaoying 的回复:
[quote=引用 2 楼 justS0 的回复:] $list = $game->alias('a')->field('a.guid,a.name,a.level,a.tuijianren,b.level as tuijianrenlevel')->order('guid')->join(" left join characters b on b.tuijianren=a.name")->limit($page->firstRow.','.$page->listRows)->select();
我的不是两个表,而是在同一个表的[/quote] 你可以把这一张表 当做两张一样的表啊 根据链接条件链接这两张表被
u014567183 2016-07-24
  • 打赏
  • 举报
回复
可以呀,if标签,看tp手册。不过还是建议逻辑上的能在后台写,干嘛要写到前台去。
lidaoying 2016-07-23
  • 打赏
  • 举报
回复
引用 12 楼 u014567183 的回复:

header("Content-type:text/html;charset=utf8");      
$a =array(array('id'=>'1','level'=>'1','name'=>'zhangsan','tuijianren'=>'2'),
	array('id'=>'2','level'=>'2','name'=>'lisi','tuijianren'=>'3')
	);
foreach($a as $v){
	echo $v['id'];
	foreach($a as $vv){
		if($v['tuijianren'] ==$vv['id']){
			echo '的推荐人等级是'.$vv['level'];
		}
	}
	echo '<br>';
}
前台是不是没有办法套循环在判断,只能在后台
u014567183 2016-07-23
  • 打赏
  • 举报
回复

header("Content-type:text/html;charset=utf8");      
$a =array(array('id'=>'1','level'=>'1','name'=>'zhangsan','tuijianren'=>'2'),
	array('id'=>'2','level'=>'2','name'=>'lisi','tuijianren'=>'3')
	);
foreach($a as $v){
	echo $v['id'];
	foreach($a as $vv){
		if($v['tuijianren'] ==$vv['id']){
			echo '的推荐人等级是'.$vv['level'];
		}
	}
	echo '<br>';
}
u014567183 2016-07-23
  • 打赏
  • 举报
回复
加颜色没加上。。。

select a.guid,a.name,a.level,a.tuijianren,b.level from a LEFT JOIN (select name,level from a)as b on a.tuijianren = b.name;
u014567183 2016-07-23
  • 打赏
  • 举报
回复

select a.guid,a.name,a.level,a.tuijianren,b.level from a LEFT JOIN (select name,level from a)as b on a.tuijianren = b.name;
lidaoying 2016-07-23
  • 打赏
  • 举报
回复
引用 10 楼 u014567183 的回复:
循环里套循环然后做判断。
循环里套循环然后做判断 这个没有玩过,能给个列子我参考看看吗,谢谢你
u014567183 2016-07-23
  • 打赏
  • 举报
回复
循环里套循环然后做判断。
lidaoying 2016-07-23
  • 打赏
  • 举报
回复
引用 8 楼 u014567183 的回复:
看来你也没理解我们的意思。你不想改代码就直接写推荐人等级?
我看了你的代码 select a.guid,a.name,a.level,a.tuijianren,b.level from a LEFT JOIN (select name,level from a)as b on a.tuijianren = b.name; a.guid,a.name,a.level,a.tuijianren,b.level 这里是A表,和B表 ,然后你这里是关联了A表的tuijianren和b表的name人后在进行查询 这个代码我看得懂意思, 我是想问我哪种方法有没有办法实现呢,就是推荐人对应等级,不重新建数据,直接在进行个筛选, 筛选tuijianren和name对应的等级
lidaoying 2016-07-23
  • 打赏
  • 举报
回复
引用 1 楼 zhangbin1988 的回复:

//没用过thinkphp,但是可用用SQL

select a.guid,a.name,a.level,a.tuijianren,b.level as tuijianrenlevel from 表名 a,表名 b where a.tuijianren = b.name;
理解错了,可能是我表达的不清楚。不是多表查询,哪两个图片 一个图片是数据库,一个是前台显示的,我只是简单做了下
u014567183 2016-07-23
  • 打赏
  • 举报
回复
看来你也没理解我们的意思。你不想改代码就直接写推荐人等级?
lidaoying 2016-07-23
  • 打赏
  • 举报
回复
引用 6 楼 u014567183 的回复:
加颜色没加上。。。

select a.guid,a.name,a.level,a.tuijianren,b.level from a LEFT JOIN (select name,level from a)as b on a.tuijianren = b.name;
你们都理解错误了,没有看到我那个字体的描述;

这个是我数据库内容;


这是我想要达到的效果

这是我现在的代码
lidaoying 2016-07-22
  • 打赏
  • 举报
回复
引用 2 楼 justS0 的回复:
$list = $game->alias('a')->field('a.guid,a.name,a.level,a.tuijianren,b.level as tuijianrenlevel')->order('guid')->join(" left join characters b on b.tuijianren=a.name")->limit($page->firstRow.','.$page->listRows)->select();
我的不是两个表,而是在同一个表的
justS0 2016-07-22
  • 打赏
  • 举报
回复
$list = $game->alias('a')->field('a.guid,a.name,a.level,a.tuijianren,b.level as tuijianrenlevel')->order('guid')->join(" left join characters b on b.tuijianren=a.name")->limit($page->firstRow.','.$page->listRows)->select();
ayzen1988 2016-07-22
  • 打赏
  • 举报
回复

//没用过thinkphp,但是可用用SQL

select a.guid,a.name,a.level,a.tuijianren,b.level as tuijianrenlevel from 表名 a,表名 b where a.tuijianren = b.name;
内容概要:本文聚焦于高维多阶段随机规划问题,深入研究了正则化分解方法与马尔可夫过程在刻画不确定性动态演化中的应用,并提供了完整的Python代码实现。通过引入正则化技术有效降低了高维随机优化问题的计算复杂度,结合马尔可夫链建模多阶段决策过程中的不确定性传播机制,提升了模型在复杂动态环境下的求解效率与鲁棒性。研究涵盖了问题建模、算法设计、数值求解及结果分析全过程,具有较强的理论深度与工程实践价值; 适合人群:具备一定运筹学、优化理论基础及Python编程能力,从事智能决策、人工智能、能源系统优化、金融工程等相关领域的科研人员、高校研究生以及工业界研发工程师; 使用场景及目标:①应用于电力系统调度、供应链管理、金融资产配置等存在多阶段不确定性的复杂决策场景;②掌握高维随机规划的建模思路与高效求解技术,深入理解正则化方法与马尔可夫过程在实际优化算法中的融合机制与实现路径; 阅读建议:建议结合提供的Python代码进行动手实践,重点关注算法实现细节、参数敏感性分析与收敛性验证,鼓励在不同应用场景中迁移和改进该方法,进一步探索其在分布鲁棒优化、动态规划等前沿方向的扩展潜力。
内容概要:本文系统研究了离散时间线性系统中基于共识的分布式滤波器的稳定性与最优性问题,深入探讨了KF(卡尔曼滤波)、DKF(分布式卡尔曼滤波)、SMDKF(基于平方根的最大熵分布式卡尔曼滤波)、CI(协方差交叉)、ICF(信息共识滤波)和HCMCI(基于高阶交叉协方差的信息融合)等多种滤波算法的理论基础、数学推导与实现机制。通过Matlab平台构建多传感器网络仿真环境,实现了各类算法在不同噪声统计特性和通信拓扑结构下的状态估计仿真,重点分析了各算法在估计精度、收敛速度、鲁棒性及一致性方面的性能差异,并对融合策略中的协方差传播、信息权重分配与共识迭代过程进行了细致对比,旨在为复杂环境下多智能体系统的分布式状态估计提供可复现的技术方案与理论支撑。; 适合人群:具备控制理论、信号处理、线性系统理论及Matlab编程基础的研究生、科研人员,以及从事多传感器融合、分布式估计算法开发、无人系统导航与智能电网监控等领域的工程技术人员。; 使用场景及目标:① 掌握主流分布式滤波算法的核心思想与数学建模方法;② 在多节点传感网络中实现高效可靠的状态估计;③ 对比分析不同共识融合策略在非理想通信条件下的性能表现;④ 支持学术论文复现、算法改进与工程化验证,服务于科研创新与系统优化设计。; 阅读建议:建议结合Matlab代码逐模块解析算法实现流程,重点关注状态预测、局部更新、信息融合与一致性达成的关键步骤;可通过调整系统噪声、观测噪声、网络连接拓扑等参数开展扩展性仿真实验,深入理解算法的稳定边界与最优性条件,进一步探索其在实际应用场景中的适应性与改进空间。

4,250

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧