如何使用最后一页设置的变量动态填充新页面?

时间:2016-05-27 21:55:22

标签: php html mysql

我是PHP的新手,我正在尝试建立一个网站来显示存储在MySQL数据库中的电视节目的信息。我目前有一个网页会创建一个表格来显示数据库中的信息,但是我希望每一行都链接到一个动态填充的页面,每个节目都有更多的信息(也来自数据库) )。我的问题是如何让网站知道哪个链接被点击,然后将其保存为变量,以便可以在新的网站上调用它来填充正确的信息?

我目前正在使用它来填充页面。

<!--Populate page with data from SQL-->
            <?php
                $servername = "localhost";
                $username = "root";
                $password = "";
                $dbname = "media_server";

                // Create connection
                $conn = new mysqli($servername, $username, $password, $dbname);
                // Check connection
                if ($conn->connect_error) {
                    die("Connection failed: " . $conn->connect_error);
                } 

                $sql = "SELECT show_title, show_desc, thumbnail_path FROM tv_shows WHERE status = 'Y'";
                $result = $conn->query($sql);

                if ($result->num_rows > 0) {
                    echo "<table><tr><th></th><th></th></tr>";
                    // output data of each row
                    while($row = $result->fetch_assoc()) {
                        echo "
                        <tr>
                            <td> 
                                <img src='../images/thumbnails/tv/".$row["thumbnail_path"]."'>
                            </td>

                            <td class='td_title'> 
                                <a href='#' onclick='show_var_set();'>".$row["show_title"]."</a>
                            </td>

                            <td class='td_desc'>".$row["show_desc"]."</td>
                        </tr>";
                    }
                    echo "</table>";
                } else {
                    echo "Error - 0 results were returned my the database. Please try again.";
                }
                $conn->close();
            ?>

3 个答案:

答案 0 :(得分:0)

有很多方法可以将值从一个页面传递到另一个页面,但其中一种方法是使用会话变量:

//Include this at the top of your php scripts that use session variables
session_start();

$_SESSION['your_variable_name_here'] = value_you_want_to_store;

然后在您要访问此页面的页面上使用:

$someVariable = $_SESSION['your_variable_name_here'];

答案 1 :(得分:0)

更改SQL以返回show_id

$sql = "SELECT show_id, show_title, show_desc, thumbnail_path FROM tv_shows WHERE status = 'Y'";

并将其用作show_var_set()函数的参数。

    <a href='#' onclick='show_var_set(".$row["show_id"].");'>".$row["show_title"]."</a>

show_var_set()函数可以使用该参数从数据库中获取该节目的详细信息。

答案 2 :(得分:0)

一种选择是将您的href链接更改为指向此页面并传递您可以检索的GET变量。此方法的额外好处是您可以为特定节目添加书签并返回该页面,因为书签将包含该GET变量。

因此,您可以将链接更改为以下内容:

echo '<a href="thispage.php?show=', $row['show_title'], '">', $row['show_title'],'</a>';

然后你通过测试检索该变量,然后读取GET变量并执行db查询以使用该show的数据填充页面。

以下是您测试和检索该变量的方法:

if (isset($_GET['show']))
{
    $show = $_GET['show'];
    // Perform database lookup using $show
}

请记住从不将用户输入直接放入查询中,但使用预准备语句并绑定用户数据以避免SQL注入的风险。