我实际上不太确定我是否需要加入。这是学习SQL的唯一一件事,我并不是真的理解或关注,但基本上我有2个表:
games
subgames
在游戏中,我有游戏名称行:
Final Fantasy
Metal Gear Solid
Yu-Gi-Oh
在子游戏中我有subgamesname row:
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"]);
}
}
?>
答案 0 :(得分:1)
你的查询错了。是什么:
$result = mysql_query("SELECT $sub FROM games");
????
应该是
mysql_query("SELECT subgamesname FROM subgamesname where gamesName ='".$_GET['subgame']."'");
但是你的参数名称不直观subgame
,它应该是gameName
,因为你搜索游戏名称
答案 1 :(得分: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
表的外键。您需要将这些列名替换为您在架构中实际使用的列名。