【问题标题】:7 fetch_assoc in a while fetch_assoc7 fetch_assoc 一会儿 fetch_assoc
【发布时间】:2015-06-24 22:32:58
【问题描述】:

我希望你今天过得愉快。我有一个拖放系统
在我的网站上,基本上它是一个居民计划网站。如果你想做一个新的
方案你有一个象形图(图标)列表,你拖动代表活动的图标
紧挨着每一位居民。现在插入完美,但显示数据却不行。

这是我的表格结构:

1.方案:

  • IDScheme
  • 工作日
  • 居民(INDEX -> ID居民)
  • 活动(索引 -> IDActivity)
  • Rangnr(从 1 到 7,因为每位居民每天有 7 次活动)
  • 基准

2。居民(=bewoners):

  • 身份证居民
  • 照片
  • ...

3.活动(=象形文字):

  • IDActivity
  • 图标

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

<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>

因此,数据如下所示:

但问题是,这就是我插入它们的方式(抱歉有点 css 问题):

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

【问题讨论】:

  • 您应该使用 一个 数据库查询,以及一个循环来输出数据……
  • @CBroe 你能举个例子吗?
  • 如果您在查询中不使用ORDER BY 子句,则结果行的顺序是完全不可预测的。它不一定按照插入的顺序返回它们。如果您希望它们按此顺序排列,则应包含一个使用 auto_increment 的 ID 列,然后在 SQL 中使用 ORDER BY id
  • @Barmar 我ORDER BY Rangnr可以吗?
  • Rangnr 对于每个查询中的所有行都是相同的。

标签: php mysql database html-table fetch


【解决方案1】:

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

您只需使用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        
    }
}

【讨论】:

  • 我应该如何得到这个? &lt;tr&gt; &lt;td&gt;&lt;?php echo $row["IDBewoner"] ?&gt;&lt;/td&gt; &lt;td&gt;&lt;?php echo '&lt;img src="data:image/jpeg;base64,' . base64_encode($row['Foto']) . '" width="90" height="90"&gt;' ?&gt;&lt;/td&gt; 我需要从另一个表中获取居民的id
  • 我也需要选择IDBewoner & Foto
  • 这将是基本的 SQL 语法。你可以使用JOINs 来获取你想要的信息。 dev.mysql.com/doc/refman/5.0/en/join.html
猜你喜欢
  • 2017-01-09
  • 2010-11-07
  • 2021-12-26
  • 2016-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多