0

我实际上不太确定我是否需要加入。这确实是我学习 SQL 时唯一没有真正理解或关注的东西,但基本上我有 2 个表:

games
subgames

在游戏中,我有游戏名称行:

Final Fantasy
Metal Gear Solid
Yu-Gi-Oh

在子游戏中,我有 subgamesname 行:

Metal Gear Rising

他们都有一个 id 的自动增量。但是我试图将我的游戏显示为可点击的链接,然后刷新页面并显示子游戏。因此,例如,如果我单击Metal Gear Solid它将带您到games.php?subgame=Metal%20Gear%20Solid并显示Metal Gear Rising. 这是我到目前为止所拥有的,但它没有显示Metal Gear Rising,可能是因为我在一张桌子上有游戏,而在另一张桌子上有子游戏,彼此没有参考。

所以我的问题是,如何在我的代码中引用它们以正确显示?

<?php
$sub = $_GET['subgame'];
if($sub){
$result = mysql_query("SELECT $sub FROM games");
 while ($row = mysql_fetch_array($result)) {
printf("%s<br />", $row["subgamename"], $row["subgamename"]);
 }
}
else{
$result = mysql_query("SELECT gamename FROM games ORDER BY gamename");
 while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
printf("<a href='games.php?subgame=%s'> %s </a><br />", $row["gamename"], $row["gamename"]);
 }
}
?>
4

2 回答 2

1

你的查询是错误的。什么是:

$result = mysql_query("SELECT $sub FROM games");???

它应该是

mysql_query("SELECT subgamesname FROM subgamesname where gamesName ='".$_GET['subgame']."'");

但是你的参数名称不直观subgame,应该是gameName因为你搜索游戏名称

于 2013-10-17T17:26:18.457 回答
0

您可能想要的查询是:

$sub = mysql_real_escape_string($_GET['sub']);
$query = "
    SELECT subgamesname
    FROM subgames s
    JOIN games g ON g.id = s.game_id
    WHERE g.gamesname = '$sub'
";

我假设该subgames表有一game_id列是该表的外键games。您需要将这些列名替换为您在架构中实际使用的名称。

于 2013-10-17T17:32:52.017 回答