将一个表的结果显示为链接以将结果显示到另一个表?

时间:2013-10-17 02:11:44

标签: php mysql sql

我有一个游戏列表,我希望人们能够访问页面games.php并从游戏列表中选择,它会将它们带到同一页面,但作为games.php?subgame = MetalGearRising。

这是我到目前为止所拥有的。

      <?php
      $result = mysql_query("SELECT gamename FROM games ORDER BY gamename");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    printf("%s", $row["gamesname"] . "<br />");
}
      ?>

子游戏是子游戏表,子游戏的名称是子游戏名称。

现在它列出了它们: 最终幻想 潜龙谍影 于游戏王

我无法弄清楚如何使结果可点击,点击后将它们带到games.php?subgame = XXX并显示该游戏下列出的所有子游戏的子游戏表。我确实有自动增量,所以我不确定是否需要在内部连接中引用它或者什么,我对连接不太熟悉。

任何帮助都会很有意义。

编辑:@Jesse

看到我迷路的地方,因为我无法弄清楚如何将它们链接在一起,因为我的子游戏有以下几行: subgameid subgamename subgamedescription

比如说我点击了“合金装备”并将它带到了subgames.php?list =合金装备,它应该列出子公开名称的结果,仅用于 游戏桌中的合金装备游戏。所以说例如subgamename是Metal Gear Rising。然后它应该只显示来自子游戏表。

对于subgames.php

,我的代码如下所示
$_GET['subgamename'];
if ($_REQUEST['do'] == $_GET['subgamename'];)
{
$sql = mysql_query('SELECT subgamename FROM items WHERE ID = "'.$id.'"');
}

但是看到问题就是我没有打印结果的游戏名称?我的意思是肯定有一种更简单的方法来列出它而不是必须输入 游戏名称在两个不同的表中?

@bobthyasian实际上这可能是我需要从这里开始的。让我用我现有的代码尝试一下。

它实际上就是回声&#34;

  • $ row [&#39; gamesname&#39;]

  • &#34 ;;但是这有点工作,但是当我点击一个链接时我得到警告:mysql_fetch_array()期望参数1是资源,在第54行的/public_html/games.php中给出布尔值。我假设因为它没有引用回来游戏表知道要列出哪个子游戏,这是我所融入的部分。

    2 个答案:

    答案 0 :(得分:0)

    因此,您的代码会产生实际的HTML,而您的printf看起来会更像这样:

    printf("<li><a href='games.php?subgame=%s'> %s </a></li>\n", $row["gamename"], $row["gamename"]);
    

    -Jesse

    答案 1 :(得分:0)

    您需要将$_GET[]IF ELSE混合使用,如下所示:

    <?php
    $sub = $_GET['subgame'];
    if($sub){
    //Check if subgame selected
    $result = mysql_query("SELECT $sub FROM games");
     while ($row = mysql_fetch_array($result)) {
      //Display subgame info
     }
    }
    else{
    //No subgame selected
    //Display subgames
    $result = mysql_query("SELECT gamename FROM games ORDER BY gamename");
     while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
       echo "<li><a href='game.php?subgame=".$row['gamesname']."</a></li><br />";
     }
    }
    ?>