在链接的新页面上显示mysql查询结果

时间:2017-02-07 20:54:54

标签: php mysql

我创建一个表并以简短的表格报告格式显示来自MySQL的条目。当我点击其名称中的链接时,表中的每个条目都有其他属性,我想在单独的页面上显示。

<?php
        require_once 'includes/db.php';
        connect();

                    $query = "SELECT * FROM persons order by date_entered DESC LIMIT 5";
                    $response = mysqli_query($con, $query);
                    if($response){
                    echo '<div id="frm"> <h2> Last 5 candidates entered </h2> <table align="left">
                    <tr>
                            <td align="left"><b>First Name</b></td>
                            <td align="left"><b>Email</b></td>
                            <td align="left"><b>Sex</b></td>
                            <td align="left"><b>City</b></td>
                            <td align="left"><b>Phone Number</b></td>
                            <td align="left"><b>Education</b></td>
                            <td align="left"><b>Salary</b></td>
                    </tr>';

                    while($row = mysqli_fetch_array($response)){
                    echo '<tr>
                            <td align="left">' . '<a href="person.php">' . $row["first_name"] . " " .$row['last_name'] . '</a>' . '</td>
                            <td align="left">' . $row['email'] . '</td>
                            <td align="left">' . $row['sex'] . '</td>
                            <td align="left">' . $row['city'] . '</td>
                            <td align="left">' . $row['phone'] . '</td>
                            <td align="left">' . $row['education'] . '</td>
                            <td align="left">' . $row['salary'] . '</td>';
                    echo '</tr>';
                    }
                    echo '</table>';
                    } else {
                    echo "Couldn't issue database query<br />";
                    echo mysqli_error($con);
                    }
                    mysqli_close($con);
            ?>

这给了我一个表格报告,其中包含名称中的链接:

brief report with link in names

我的问题是:如果我在表格中单击Mary Swanson,我在person.php中使用了哪些变量,以便我可以检索该记录的MySQL数据?

感谢。

1 个答案:

答案 0 :(得分:0)

您可以通过链接将此ID作为GET变量传递,并在另一端使用它来查询数据库中的特定记录,如下所示:

<?php
    require_once 'includes/db.php';
    connect();

    $query = "SELECT * FROM persons order by date_entered DESC LIMIT 5";
    $response = mysqli_query($con, $query);
    if($response){
        echo '<div id="frm"> <h2> Last 5 candidates entered </h2> <table align="left">
                        <tr>
                                <td align="left"><b>First Name</b></td>
                                <td align="left"><b>Email</b></td>
                                <td align="left"><b>Sex</b></td>
                                <td align="left"><b>City</b></td>
                                <td align="left"><b>Phone Number</b></td>
                                <td align="left"><b>Education</b></td>
                                <td align="left"><b>Salary</b></td>
                        </tr>';

        while($row = mysqli_fetch_array($response)){
            echo '<tr>
                                <td align="left">' . '<a href="person.php?id=' . $row["id"] . '">' . $row["first_name"] . " " .$row['last_name'] . '</a>' . '</td>
                                <td align="left">' . $row['email'] . '</td>
                                <td align="left">' . $row['sex'] . '</td>
                                <td align="left">' . $row['city'] . '</td>
                                <td align="left">' . $row['phone'] . '</td>
                                <td align="left">' . $row['education'] . '</td>
                                <td align="left">' . $row['salary'] . '</td>';
            echo '</tr>';
        }
        echo '</table>';
    } else {
        echo "Couldn't issue database query<br />";
        echo mysqli_error($con);
    }
    mysqli_close($con);
    ?>

然后你可以访问另一方的变量,如$ _GET [“id”])

<?php
require_once 'includes/db.php';
connect();

$query = "SELECT * FROM persons where id = " . $_GET["id"]);
$response = mysqli_query($con, $query)

在此之后,您可以打印查询返回的值,就像多行选择的位置一样,但只返回一行,您仍需要执行while,因为它返回的是一个数组。