如何为下面的代码而不是行创建一组新的列

How can i create a new set of columns to my code below instead of row?

本文关键字:创建 一组 代码      更新时间:2023-09-26

我正在尝试为我的同事创建一个信息网站,他们可以在其中添加他们拥有的所有信息,这样他们就不需要写下来了。变量 $cam_loc 显示某些设备的位置。当我使用以下代码而不是为每个位置使用一个面板标题时,如果该位置有多个设备,它会复制该位置。我想创建一个条件来验证该位置是否重复,如果是,而不是添加另一个面板标题,它应该在该位置添加另一列第二对信息。

这是代码:

<?php
$cam = $db->prepare('select * from camere');
$cam->execute();
while ($cams = $cam->fetch(PDO::FETCH_OBJ)) {?>
  <ul class="list" style="list-style: none;">                                                                               
    <div class="panel panel-primary">
      <div class="panel-heading">
        <li><h3 class="panel-title"><?php $cam_loc = $cams->locatie; ?><?php echo $cam_loc;?></h3> </li>
      </div>
      <div class="panel-body">
        <div class="row">
          <div class="col-md-2" align="center">
            <div class="list-group">
              <a class="list-group-item">Model: <strong><?php echo $cams->model; ?></strong></a>
              <a class="list-group-item">Ip Intern: <strong><?php echo $cams->ip_int; ?></strong></a>
              <a class="list-group-item">Ip Extern: <strong><?php echo $cams->ip_ext; ?></strong></a>
              <a class="list-group-item">Port: <strong><?php echo $cams->port; ?></strong></a>
              <a class="list-group-item">User: <strong><?php echo $cams->user; ?></strong></a>
              <a class="list-group-item">Pass: <strong><?php echo $cams->pass; ?></strong></a>
            </div>
          </div>
        </div>
      </div>
    </div>          
  </ul>
<?php } ?>          
首先,

您需要在SQL语句中按标题对结果进行排序,这会将它们分组在一起,然后使用if语句来确定当前记录是否与前一条记录具有相同的标题。

<?php
$cam = $db->prepare('select * from camere');
$cam->execute();
$heading = "";
while ($cams = $cam->fetch(PDO::FETCH_OBJ)) {?>
  <ul class="list" style="list-style: none;">                                                                               
    <div class="panel panel-primary">
      <?php $cam_loc = $cams->locatie;
      if ($heading != $cam_loc) { ?>
      <div class="panel-heading">
        <li><h3 class="panel-title"><?php echo $cam_loc; ?></h3> </li>
      </div>
      <?php }
          //Update $heading ready for the next row.
          $heading = $cam_loc;
      } ?>
      <div class="panel-body">
        <div class="row">
          <div class="col-md-2" align="center">
            <div class="list-group">
              <a class="list-group-item">Model: <strong><?php echo $cams->model; ?></strong></a>
              <a class="list-group-item">Ip Intern: <strong><?php echo $cams->ip_int; ?></strong></a>
              <a class="list-group-item">Ip Extern: <strong><?php echo $cams->ip_ext; ?></strong></a>
              <a class="list-group-item">Port: <strong><?php echo $cams->port; ?></strong></a>
              <a class="list-group-item">User: <strong><?php echo $cams->user; ?></strong></a>
              <a class="list-group-item">Pass: <strong><?php echo $cams->pass; ?></strong></a>
            </div>
          </div>
        </div>
      </div>
    </div>          
  </ul>
<?php } ?>        

您可能需要在这些新代码行中移动一些 HTML 标记,以提供所需的布局,但如上所述,您不会为每条记录获得一个新标题。