php - 7 fetch_assoc 一会儿 fetch_assoc

标签 php mysql database html-table fetch

希望您今天过得愉快。我有一个拖放系统
在我的网站上,它基本上是一个为居民制定计划的网站。如果你想做一个新的
计划你有一个象形文字(图标)列表,你拖动代表事件的图标
在每个居民旁边。现在插入完美,但显示数据却不行。

这是我的表结构:

<强>1。方案:

  • IDScheme
  • 平日
  • 居民(INDEX -> IDResident)
  • 事件(索引 -> IDActivity)
  • Rangnr(从 1 到 7,因为每个居民每天有 7 项事件)
  • 基准

<强>2。居民(=bewoners):

  • IDResident
  • 照片
  • ...

<强>3。事件(=象形文字):

  • IDActivity
  • 图标

这正是我显示数据所需要的。如您所见,“方案”表是
主要的。现在我要显示方案,它将通过 HTML 表发生。让我跳
直接上代码:Rangnr基本上就是activity(图标)所在的地方

<div id="MainDiv">
  <div id="ListBewoners">
      <table id="ListBewonersUL">                                          
          <?php                                      
          $sql = "SELECT *
                  FROM ActiviteitenSchema A, Bewoners B
                  WHERE A.Bewoner = B.IDBewoner  
                  GROUP BY Bewoner
                  ";

      $sqlrang1 = "SELECT * FROM ActiviteitenSchema A, Pictogrammen P 
                  WHERE P.IDPictogram = A.Activiteit AND Rangnr = 1 
                  AND DatumAangemaakt = $datumAangemaakt";
      $sqlrang2 = "SELECT * FROM ActiviteitenSchema A, Pictogrammen P 
                  WHERE P.IDPictogram = A.Activiteit AND Rangnr = 2 
                  AND DatumAangemaakt = $datumAangemaakt";
      $sqlrang3 = "SELECT * FROM ActiviteitenSchema A, Pictogrammen P 
                  WHERE P.IDPictogram = A.Activiteit AND Rangnr = 3
                  AND DatumAangemaakt = $datumAangemaakt";
      $sqlrang4 = "SELECT * FROM ActiviteitenSchema A, Pictogrammen P 
                  WHERE P.IDPictogram = A.Activiteit AND Rangnr = 4
                  AND DatumAangemaakt = $datumAangemaakt";
      $sqlrang5 = "SELECT * FROM ActiviteitenSchema A, Pictogrammen P 
                  WHERE P.IDPictogram = A.Activiteit AND Rangnr = 5 
                  AND DatumAangemaakt = $datumAangemaakt";
      $sqlrang6 = "SELECT * FROM ActiviteitenSchema A, Pictogrammen P 
                  WHERE P.IDPictogram = A.Activiteit AND Rangnr = 6 
                  AND DatumAangemaakt = $datumAangemaakt";
      $sqlrang7 = "SELECT * FROM ActiviteitenSchema A, Pictogrammen P 
                  WHERE P.IDPictogram = A.Activiteit AND Rangnr = 7 
                  AND DatumAangemaakt = $datumAangemaakt";

      $res = mysqli_query($mysqli, $sql); 
      $resRang1 = mysqli_query($mysqli, $sqlrang1);
      $resRang2 = mysqli_query($mysqli, $sqlrang2);
      $resRang3 = mysqli_query($mysqli, $sqlrang3);
      $resRang4 = mysqli_query($mysqli, $sqlrang4);
      $resRang5 = mysqli_query($mysqli, $sqlrang5);
      $resRang6 = mysqli_query($mysqli, $sqlrang6);
      $resRang7 = mysqli_query($mysqli, $sqlrang7);

        while ($row = mysqli_fetch_assoc($res)){
      ?>
      <tr>
          <td><?php echo $row["IDBewoner"] ?></td>  
          <td><?php echo '<img src="data:image/jpeg;base64,' . base64_encode($row['Foto']) . '" width="90" height="90">'  ?></td>
      <?php                
          $row1 = mysqli_fetch_assoc($resRang1);
          $row2 = mysqli_fetch_assoc($resRang2);
          $row3 = mysqli_fetch_assoc($resRang3);
          $row4 = mysqli_fetch_assoc($resRang4);
          $row5 = mysqli_fetch_assoc($resRang5);
          $row6 = mysqli_fetch_assoc($resRang6);
          $row7 = mysqli_fetch_assoc($resRang7);

          ?>
      <!-- Rang1 Controle --> 
      <?php 
          if(!empty($row1)) {
      ?>
          <td><?php echo '<img src="data:image/jpeg;base64,' . base64_encode($row1['Pictogram']) . '" width="90" height="90">' ?></td>
      <?php 
          } else {
      ?> 
          <td><?php echo "Empty"; ?></td>
      <?php        
          }
      ?>

      <!-- Rang2 Controle -->    
      <?php 
          if(!empty($row2)) {
      ?>
          <td><?php echo '<img src="data:image/jpeg;base64,' . base64_encode($row2['Pictogram']) . '" width="90" height="90">' ?></td>
      <?php
          } else { 
      ?>
          <td><?php echo "Empty2"; ?></td>
      <?php  
          }
      ?>

      <!-- Rang3 Controle -->    
      <?php 
          if(!empty($row3)) {
      ?>
          <td><?php echo '<img src="data:image/jpeg;base64,' . base64_encode($row3['Pictogram']) . '" width="90" height="90">' ?></td>
      <?php
          } else { 
      ?>
          <td><?php echo "Empty3"; ?></td>
      <?php  
          }
      ?>

      <!-- Rang4 Controle -->    
      <?php 
          if(!empty($row4)) {
      ?>
          <td><?php echo '<img src="data:image/jpeg;base64,' . base64_encode($row4['Pictogram']) . '" width="90" height="90">' ?></td>
      <?php
          } else { 
      ?>
          <td><?php echo "Empty4"; ?></td>
      <?php  
          }
      ?>

      <!-- Rang5 Controle -->    
      <?php 
          if(!empty($row5)) {
      ?>
          <td><?php echo '<img src="data:image/jpeg;base64,' . base64_encode($row5['Pictogram']) . '" width="90" height="90">' ?></td>
      <?php
          } else { 
      ?>
          <td><?php echo "Empty5"; ?></td>
      <?php  
          }
      ?>

      <!-- Rang6 Controle -->    
      <?php 
          if(!empty($row6)) {
      ?>
          <td><?php echo '<img src="data:image/jpeg;base64,' . base64_encode($row6['Pictogram']) . '" width="90" height="90">' ?></td>
      <?php
          } else { 
      ?>
          <td><?php echo "Empty6"; ?></td>
      <?php  
          }
      ?>

      <!-- Rang7 Controle -->    
      <?php 
          if(!empty($row7)) {
      ?>
          <td><?php echo '<img src="data:image/jpeg;base64,' . base64_encode($row7['Pictogram']) . '" width="90" height="90">' ?></td>
      <?php
          } else { 
      ?>
          <td><?php echo "Empty7"; ?></td>
      <?php  
          }
      ?>

      </tr>
      <?php                                                   
          }
      ?>

  </table>

  </div>
</div>

因此,数据是这样的: Displaying the data using the above code

但问题是,这是我插入它们的方式(抱歉有点 css 问题): Excuse me about the design

问题:插入的数据完全插入,我已经在数据库中检查过它们,但是显示
他们没有按应有的方式工作。有没有更好的方法来取表 8 次?因为
显然我的代码并没有真正起作用。

最佳答案

首先,正如一些评论所指出的,您可以在一个查询中获取数据并循环遍历它。

您只需使用 ORDER BY 子句即可维护插入位置的顺序:

SELECT P.Pictogram, A.Rangnr
FROM ActiviteitenSchema A
INNER JOIN Pictogrammen P ON P.IDPictogram = A.Activiteit
WHERE DatumAangemaakt = $datumAangemaakt
ORDER BY A.Rangnr ASC

这样你就可以在循环中写出结果:

while ($row = mysqli_fetch_assoc($res)) {
    if(!is_null($row["Pictogram"])) {
        ?>
        <td><img src="data:image/jpeg;base64,<?php echo base64_encode($row['Pictogram']) ?>" width="90" height="90"></td>
       <?php 
    } else {
        ?> 
        <td>Empty <?php echo $row["Rangnr"] ?></td>
        <?php        
    }
}

关于php - 7 fetch_assoc 一会儿 fetch_assoc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29709955/

相关文章:

javascript - 在 HTML 表单上保留从数据库接收的数据

mysql - 根据其他表值选择 GROUP BY 的 ID

database - DB2 - 具有唯一默认值 (UUID) 的 ALTER 表 ADD 列

android - android中通过fragment访问Database类

mysql - 错误 1231 (42000) : Variable 'sql_mode' can't be set to the value of 'NO_AUTO_CREATE_USER'

php - 在 PHP 中以单选按钮格式获取数据以用于问答游戏

PHP AWS SDK 创建 S3Client 的 fatal error

php - 在 PHP 中创建和使用匿名对象

javascript - 表单提交后保留输入值(有一个问题)

mysql - 登录用户时奇怪的 nodejs 行为