通过pages / sql传递php变量

时间:2015-04-29 14:45:12

标签: php sql

我显示以下信息

<?php
$my_query="SELECT * FROM games"; 
$result= mysqli_query($connection, $my_query);
if (mysqli_num_rows($result) > 0)
while ($myrow = mysqli_fetch_array($result))
{
$description = $myrow["game_description"];
$image = $myrow["gamepic"];
$game_id = $myrow["game_id"];
$gamename = $myrow["game_name"];
    echo "<div class='cover'>
    <a href='game_details.php?gameid={$game_id}'> <img src=\"games/$image\"       class=\"thumbnail\" width=\"200\" height=\"200\"> </a>
    </div>";
}   
?>

你可以看到我创建了一个game_details页面,它会在点击图像时显示特定的Game_id

我无法理解如何从另一页上的sql中的game_id中提取数据。

这是我在game_details页面上的尝试

 <?php 
 if (!isset($_GET['$game_id']) || empty($_GET['game_id']))
{
echo "Invalid category ID.";
exit();
}

    $game_id = mysqli_real_escape_string($connection, $_GET['game_id']);
     $sql1 = "SELECT * games WHERE game_id={$game_id}'"; 
     $res4 = mysqli_query($connection, $sql1);
 if(!$res4 || mysqli_num_rows($res4) <= 0)
    {

                while ($row = mysqli_fetch_assoc($res4))
                {
                    $gameid = $row['$game_id'];
                    $title = $row['game_name'];
                    $descrip = $row['game_description'];
                    $genre = $row['genretype'];


                    echo "<p> {$title} </p>";

                }           
    }
?>

此尝试为我提供了“无效的类别ID”错误

非常感谢帮助

3 个答案:

答案 0 :(得分:4)

您的代码存在一些问题。

让我们从顶部开始。

['$game_id']您需要在$_GET['$game_id']

中删除美元符号

然后,$row['$game_id']同样的事情;删除美元符号。

然后,game_id={$game_id}'会抛出语法错误。

在你的第一个代码中;你还应该为所有条件陈述使用适当的支撑。

这个没有if (mysqli_num_rows($result) > 0)并且会造成潜在的破坏。

重新写入:

<?php
$my_query="SELECT * FROM games"; 
$result= mysqli_query($connection, $my_query);
if (mysqli_num_rows($result) > 0){
while ($myrow = mysqli_fetch_array($result))
{
$description = $myrow["game_description"];
$image = $myrow["gamepic"];
$game_id = $myrow["game_id"];
$gamename = $myrow["game_name"];
    echo "<div class='cover'>
    <a href='game_details.php?gameid={$game_id}'> <img src=\"games/$image\" class=\"thumbnail\" width=\"200\" height=\"200\"> </a>
    </div>";
}   

}
?>

下面WHERE game_id='{$game_id}'的旁注。如果这不起作用,请从中删除引号。

WHERE game_id={$game_id}

第二体:

<?php 
 if (!isset($_GET['game_id']) || empty($_GET['game_id']))
{
echo "Invalid category ID.";
exit();
}

    $game_id = mysqli_real_escape_string($connection, $_GET['game_id']);
     $sql1 = "SELECT * games WHERE game_id='{$game_id}'"; 
     $res4 = mysqli_query($connection, $sql1);
 if(!$res4 || mysqli_num_rows($res4) <= 0)
    {

                while ($row = mysqli_fetch_assoc($res4))
                {
                    $gameid = $row['game_id'];
                    $title = $row['game_name'];
                    $descrip = $row['game_description'];
                    $genre = $row['genretype'];


                    echo "<p> {$title} </p>";

                }       
    }
?>

在测试期间使用错误检查工具:

答案 1 :(得分:0)

您希望使用$ _GET [&#39; gameid&#39;]作为您传递的参数。

答案 2 :(得分:0)

当转到game_id的链接包含变量game_details.php时,您正在呼叫gameid。将链接中的参数更改为game_id或在gameid中呼叫$_GET['$game_id']

另外,正如Fred -ii-所说,取出$_GET['$game_id']

中的美元符号