SQL

如何在视图中显示数据库记录而不重复字段?

发布于 2021-04-15 10:35:30

在我的数据库中,我有两个表,一个是政治(politics_id,policy,policy_type_id),另一个是tipo_politics(politics_type_id,policy_type)。
这是餐桌 政治

politics_id | politics    | politics_type_id
--------    | --------    | -------------
1           | Politic 1   | 1
2           | hello world | 2
3           | magic       | 1
4           | love        |1

这是表 tipo_politics

 politics_type_id | politics_type
  -------------    | --------
  1                | general
  2                | life

我需要的是在视图中显示以政治类型为标题的政治表格的记录,但是标题不会重复。这样的事情。

**General**
- Politic 1
- magic
- love

**Life**
- hello world

我希望通过group by进行查询,但只显示一个带有policy_type_id 1的 记录。这是视图代码。

 <?php
   for ($j = 0; $j < $contador; $j++) {
 ?>
   <div class="content-layout">
         <p>
           <span>
                <?php echo $list_politic[$j]['politics_type']; ?> 
           </span> 
         </p>
    </div>
    <div>
      <ul style="text-indent: 0px;">
         <li>
             <span>
                   <?php echo $list_politic[$j]['politics']; ?>   
             </span>
         </li> 
       </ul>
    </div>
 <?php } // for j ?>

使用此表格显示如下记录:

 **General**
    - Politic 1
 **General**
    - magic
 **General**
    - love

  **Life**
    - hello world

希望您能帮助我,我的问题是一个很好的问题。

关注者
0
被浏览
121
1 个回答
  • 面试哥
    面试哥 2021-04-15
    为面试而生,有面试问题,就找面试哥。

    您似乎希望仅在中有更改时才显示标题politics_type。这将需要在每次迭代中跟踪其值,因此逻辑可以按以下方式构造:

    <?php
    $previous_politics_type = "";
    for ($j = 0; $j < $contador; $j++) {
        if($previous_politics_type != $list_politic[$j]['politics_type']){  // <-- new if condition
    ?>
    
            <div class="content-layout">
                <p>
                    <span>
                        <?php echo $list_politic[$j]['politics_type']; ?> 
                    </span> 
                </p>
            </div>
    <?php
        }       // <-- end if
        $previous_politics_type = $list_politic[$j]['politics_type'];
    ?> 
        <div>
            <ul style="text-indent: 0px;">
                <li>
                    <span>
                        <?php echo $list_politic[$j]['politicas']; ?>   
                    </span>
                </li> 
            </ul>
        </div>
    <?php 
    } // for j 
    ?>
    

    <div>上面s的布局可能与您需要的布局完全不同,但可能希望它可以为您提供有关如何使用新$previous_politics_type变量的想法。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看