如何在php中以表格形式显示同一数据库中所选表格的数据?

时间:2019-12-04 12:52:25

标签: php html mysql

我在一个网站上工作,我从用户那里获得学期号的输入,我想显示他们相应输入的学期中的科目。 为此,我计划为每个学期创建一个表,其中包含各个科目。 现在,我已经成功地从一个表中检索了数据。但是我被要求按学生输入的学期选修科目。 以下是适合于第5学期的代码。请按照上述要求提出修改建议。

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <!-- very important -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="subject.css">
    </head>
<body>

<h1 class="text-center text-capitalize font-weight-bold">Subject Information</h1>

<div class="container">
    <div>
        <br>

    <div>
    <form class="form-inline">
        <!-- <div class="mx-auto" style="width: 200px;"> -->
<div class="form-group">
    <label for="Sem"> Semester:  </label>
    <div>
        <input type="text" name="sem_no" placeholder="Enter current semester" id=sem class="form-control">
    </div>
    <br>

</div>
</form>
</div>
</div>
</div>
<div>

<!-- TABLE DISPLAYED WITH DATA FROM RESPECTIVE DATABASE -->
            <div class= "container"> 
                <div class="col-lg-12 ">
                    <br><br>
                    <h2 class="text-center">Subjects</h2>

                    <table class="table table-striped table-hover table-bordered">
                        <tr>
                                <th>Subject code</th>
                                <th>Subject Name</th>
                                <th>Faculty name</th>
                            </tr>

                            <?php
                                $con = mysqli_connect('localhost','root');

                                mysqli_select_db($con,'subjects');

                                $q= "select * from sem5";

                                $query = mysqli_query($con,$q);

                                while($res = mysqli_fetch_array($query))
                                {
                            ?>  

                            <tr>
                                <td><?php echo $res['subject_no']; ?></td>
                                <td><?php echo $res['subject_name']; ?></td>
                                <td><?php echo $res['faculty_name']; ?></td>
                            </tr>

                            <?php
                                }
                            ?>
                    </table>

</div>
</div>

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
</body>
</html>

请提出修改建议。将非常有责任。

1 个答案:

答案 0 :(得分:0)

您需要执行HTTP GET请求,并使用PHP获取值。然后使用PHP进行SQL查询。这是最简单的形式。

我添加了一个提交按钮,用于提交表单并执行带有URL附加参数的HTTP GET。提交后,您将看到?sem_no=x。那就是Query String

...
...
<div class="form-group">
    <label for="Sem"> Semester:  </label>
    <div>
        <input type="text" name="sem_no" placeholder="Enter current semester" id=sem class="form-control">
    </div>
    <div>
        <input type="submit"/>
    </div>
    <br>
...
...
...
...
//check the value was submitted and it is not blank
<?php if(isset($_GET['sem_no']) && !empty($_GET['sem_no'])) { ?>

<!-- TABLE DISPLAYED WITH DATA FROM RESPECTIVE DATABASE -->
<div class= "container"> 
    <div class="col-lg-12 ">
        <br><br>
        <h2 class="text-center">Subjects</h2>

        <table class="table table-striped table-hover table-bordered">
<tr>
        <th>Subject code</th>
        <th>Subject Name</th>
        <th>Faculty name</th>
    </tr>

    <?php
        $con = mysqli_connect('localhost','root');

        mysqli_select_db($con,'subjects');

        $q= 'select * from sem'.$_GET['sem_no'];

        $query = mysqli_query($con,$q);

        while($res = mysqli_fetch_array($query))
        {
    ?>  

    <tr>
        <td><?php echo $res['subject_no']; ?></td>
        <td><?php echo $res['subject_name']; ?></td>
        <td><?php echo $res['faculty_name']; ?></td>
    </tr>

    <?php
        }
    ?>
        </table>

</div>
</div>
<?php 
   //closing if
   } ?>
...
...

如前面的评论中所述,此数据库设计相当差。我知道你虽然在学习。您是否考虑过带有Semester列的Subjects表?然后,您可以执行以下查询:

SELECT * FROM subjects where semester_number = x

除此之外,还有更好的方法可以这样做,但这对您来说是一个很好的起点。