PHP通过单击查看按钮从单个记录查看数据

时间:2019-05-22 17:59:48

标签: php mysql

我有两个页面students_list.php和students_profile.php

在students_list.php上,我有一个表,显示所有学生的所有记录,以及“查看”按钮,单击该按钮应打开students_profile.php页面,并从基于std_id选择的单个记录中获取所有数据

更新:因此,当我单击“查看”按钮时,我得到的ID为http://localhost/sms/student_profiles.php?std_id=3,但我仍然没有从所选记录中检索数据

这是students_list.php的代码

<?php
require_once 'include/database/connect.php';

try {
    $pdo = new PDO("mysql:host=$host_db;dbname=$name_db", $user_db, $pass_db);                                 
    $sql = 'SELECT * FROM students';
    $q = $pdo->query($sql);
    $q->setFetchMode(PDO::FETCH_ASSOC);
    } catch (PDOException $e) {
    die("Could not connect to the database $name_db :" . $e->getMessage());
    }
?>
<table id="data-table-default" class="table">
    <thead>
    <tr>
    <th width="1%">#</th>
    <th width="1%" data-orderable="false"></th>
    <th>Name & Surname</th>
    <th>Gender</th>
    <th>Faculty</th>
    <th>Semester</th>
    <th>Mobile</th>
    <th></th>
    </tr>
</thead>

<tbody>
    <?php while ($row = $q->fetch()): ?>
    <tr class="odd gradeX">
    <td width="1%" class="f-s-600 text-inverse"><?php echo ($row['std_id']) ?></td>
    <td width="1%" class="with-img"><?php echo ($row['std_status']) ?></td>
    <td><?php echo ($row['std_name']) ?></td>
    <td><?php echo ($row['std_gender']) ?></td>
    <td><?php echo ($row['std_faculty']) ?></td>
    <td><?php echo ($row['std_semester']) ?></td>
    <td><?php echo ($row['std_mobile']) ?></td>
    <td align="right">
    <a href="student_profiles.php?std_id=<?php echo $row['std_id']; ?>" class="btn btn-warning btn-xs"><i class="fas fa-eye"></i> View</a>
    </td>
    </tr>
    <?php endwhile; ?>
    </tbody>
</table>

下面是student_profile.php

<?php
require_once('include/database/sharepoint.php');
if(isset($_GET) & !empty($_GET)){
    $std_id = $_GET['std_id'];
    $sql = "SELECT * FROM `students` WHERE std_id=$std_id";
    $res = mysqli_query($connection, $sql);
}
?>

<h4><?php echo ($row['std_name']) ?></h4>

<div class="d-flex">
    <div class="pr-4"><strong>NATIONAL#</strong> <?php echo ($row['std_number']) ?></div>
    <div class="pr-4"><strong>DOB</strong> <?php echo ($row['std_dob']) ?></div>
    <div class="pr-4"><strong>GENDER</strong> <?php echo ($row['std_gender']) ?></div>
    <div class="pr-4"><strong>MOBILE</strong> <?php echo ($row['std_mobile']) ?></div>
</div>
<div class="pt-1 font-weight-bold">Master's Degree (MBA)</div>
<div>STD# <strong><?php echo ($row['std_id']) ?></strong></div>
<div><a href="#" target="new">email@example.com</a></div>

1 个答案:

答案 0 :(得分:0)

您不会从查询中获取数据。因此$ row将永远不会包含您期望的数组:

$row = mysqli_fetch_assoc($res); //this will populate $row

在您的代码中:

<?php
require_once('include/database/sharepoint.php');
if(isset($_GET) & !empty($_GET)){
    $std_id = $_GET['std_id'];
    $sql = "SELECT * FROM `students` WHERE std_id=$std_id";
    $res = mysqli_query($connection, $sql);
    $row = mysqli_fetch_assoc($res);
}
?>