dtudj42064 2017-03-15 21:02
浏览 64
已采纳

无法在html表中显示多个mysql查询结果

So my problem is that in the MySqL table that i have the values: "minas" and "subject" might be doubled but the comment" value will be different. How can i display in the table all the rows that have the same "subject" and "minas" values and not the last one only?

Also, if you have any further comments on my way of writing the code feel free to correct me

In case your having trouble understanding here are some photos:
http://imgur.com/gallery/Oa9Jc

This is my Code (PHP and html combined)

<?php

include 'dbconn.php';

 if(isset($_POST['Submit'])) {

   $subject = trim(mysqli_real_escape_string($conn, $_POST['mathima']));
   $month = trim(mysqli_real_escape_string($conn, $_POST['minas']));

   $sql = "SELECT subject, month, comment FROM mathimata WHERE subject = '$subject' AND month = '$month'";

   $result = $conn->query($sql);

   $noresult = "Δεν έχει καταχωρηθεί το συγκεκριμένο μάθημα";

   if ($result->num_rows > 0) {
         // output data of each
         while($row = $result->fetch_assoc()) {
             $comment =  $row["comment"];
              }
            }
          }
  ?>
<!DOCTYPE html>
<html lang="el">

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->

    <link rel="icon" href="../../favicon.ico">

    <title>E•Pagkrition</title>

    <!-- Bootstrap core CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">

    <!-- Custom styles for this template -->
    <link href="cover.css" rel="stylesheet" >

    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
    <link href="../assets/css/ie10-viewport-bug-workaround.css" rel="stylesheet">
  </head>

    <body>
      <div class="container">
        <h2>Αποτελέσματα αναζήτησης</h2>
        <p>Εδώ είναι το μάθημα που επέλεξες</p>
        <table class="table">
          <thead>
            <tr>
              <th>Μάθημα</th>
              <th>Μήνας</th>
              <th>Περιγραφή</th>
            </tr>
          </thead>
          <tbody>
        <tr>
          <td><?php echo "$subject"; ?></td>
          <td><?php echo "$month"; ?></td>
          <td><?php if (isset($comment)) {
            echo $comment;
          } else {
            echo $noresult;
          }?></td>
        </tr>
      </tbody>
    </table>
  </div>
</body>
</html>
  • 写回答

3条回答 默认 最新

  • dqudtskm49788 2017-03-15 21:20
    关注

    so, this is your scenario,

    you are looping over the database results , then define the result to the same variable every time.

    so instead of storing values in a single variable and append it's value in every iterate, you will need to store it in an array like this :

    if ($result->num_rows > 0) {
        // output data of each
        $comments = [];
        while($row = $result->fetch_assoc()) {
            $comments[] =  $row["comment"];
        }
    }
    

    then in your table , iterate over your comments array and build your html like this :

    foreach ($comments as $comment) {
        $template = '';
        $template .= '<tr>';
        $template .= '<td>' . $subject . '</td>';
        $template .= '<td>' . $month . '</td></td>';
        if (isset($comment)) {
            $template .= $comment;
        } else {
            $template .= $noresult;
        }
        $template .= '</td></tr>';
        echo $template;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟
  • ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在
  • ¥15 前端echarts坐标轴问题