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

报告相同问题?

悬赏问题

  • ¥15 怎么获取下面的: glove_word2id.json和 glove_numpy.npy 这两个文件
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug