php - 迭代 for 循环以形成自定义 html 表
问题描述
我想通过 db 查询在 php 中形成一个自定义 html 表。我的 sql 查询是
$query = db_select('taxonomy_term_data','td');
$query->join('drone','dg','dg.tid = td.tid ');
$query->fields('td',array('tid','name'));
$query->fields('dg',array('drone_name'));
$result=$query->execute()->fetchAll();
查询返回的数据如下所示:
Drone Name Drone Assigned
Huge DJI
Huge Parrot
Beginner Skydio
Beginner Insitu
Beginner EHANG
$drone_table='<br/>
<table id = width="40%" cellspacing="5" cellpadding="5" border="1" align="center";">
<th>Drone Name</th>
<th>Drones Assigned</th>';
我写了一个for循环语句
foreach ($result as $ts){
$drones_assigned[] = $ts->name;
$drn_name = $ts->drone_name;
$com_arr = implode(",",$drone_assigned);
$drone_table.='<tr>
<td>'.$drn_name.'</td>
<td>'.$com_arr.'</td>
</tr>';
}
这不构成我想要的表格。t 形成一个表格,由所有分配的无人机和一架无人机组成。
我想要类似的东西
Drone Name Drone Assigned
Huge DJI, Parrot
Beginner Skydio,Insitu,EHANG
但我越来越
Drone Name Drone Assigned
Beginner DJI, Parrot, Skydio,Insitu,EHANG
解决方案
您可以更改您的 sql 查询以获得如下格式的结果:
$result = db_query("SELECT dg.drone_name , GROUP_CONCAT(td.name) FROM taxonomy_term_data td
INNER JOIN drone dg ON dg.tid = td.tid GROUP BY dg.drone_name")->fetchAllKeyed();
foreach ($result as $drone_name => $drones_assigned){
$drone_table.='<tr>
<td>'.$drone_name.'</td>
<td>'.$drones_assigned.'</td>
</tr>';
}
你也可以看看drupal的主题表渲染来轻松创建html表https://api.drupal.org/api/drupal/includes%21theme.inc/function/theme_table/7.x
推荐阅读
- django - Django:添加更多代码或新的数据库表
- facebook-graph-api - 为 API graph messenger instagram 标准访问创建帐户测试 Instagram
- python - Enterprise Architect:GetBaselines 在 python 中不起作用
- javascript - 正则表达式包含失控部分
- azure - 尝试登录 azure 容器注册表并收到错误
- java - 使用“mvn package”时未生成 MapStruct 实现
- angular - Angular HTTP客户端接受responseType:'json'但不接受responseType:'text'?
- ruby-on-rails - 有没有办法在 Ruby on Rails routes.rb 中定义没有“/new”的新操作路径?
- flutter - 颤振扩展面板在没有不可变布尔的情况下无法扩展
- database - POCT01-A协议功能