如何动态链接PHP子类别(页面)

时间:2015-03-21 02:17:34

标签: php mysql

我有PHP文件从MySQL数据库获取数据:

clubs.php
club.php
player.php

clubs.php列出tbleclubs表中的所有俱乐部,它看起来像:

clubs.php

$database = new Database();
$res = $Db->query("SELECT * FROM tblclubs");
foreach ($res as $dataRow): ?>
    <span><?php echo $dataRow['id']; ?></span>
    <span><a hrer=""><?php echo $dataRow['name']; ?> </a></span>
<?php endforeach; ?>

和club.php列出了来自tblclub

的俱乐部中的所有玩家

club.php

$database = new Database();
$res = $Db->query("SELECT * FROM tblpclub");
foreach ($res as $dataRow): ?>
    <span><?php echo $dataRow['id']; ?></span>
    <span><a hrer=""><?php echo $dataRow['name']; ?> </a></span>
<?php endforeach; ?>

最后player.php来自tbleplayer

player.php

$database = new Database();
$res = $Db->query("SELECT * FROM tblplayers");
foreach ($res as $dataRow): ?>
    <span><?php echo $dataRow['id']; ?></span>
    <span><a hrer=""><?php echo $dataRow['name']; ?> </a></span>
<?php endforeach; ?>

我已将tblclub的外键(FK)设置为clubs_id,将tblplayers设置为club_id

现在,我的问题是,如何动态导航到下一页中的每个选定项目,如:

clubs-&GT;俱乐部 - &GT;播放器

由于

enter image description here

2 个答案:

答案 0 :(得分:2)

首先,您的HTML中存在一些错误(链接应该href而不是hrer

其次,使用select *类型的查询是不好的形式;你通常应该从你的桌子上选择特定的钥匙,而不仅仅是所有钥匙。如果你想让它正常工作,你还需要链接你的表;很难说出你的表中有哪些特定的行;一些结构会有所帮助。

那就是说你需要像这样构建你的查询。例如,获取特定俱乐部的球员名单:

SELECT p.playerid, p.name,
FROM tblplayers p, tblclub c
WHERE p.club_id = c.club_id

此查询将获得特定分会上所有玩家的列表。

至于链接,您可以将链接修改为类似的内容。要链接到特定俱乐部中的特定玩家,这将是club.php到player.php的链接:

<a href="player.php?<?php echo $dataRow['playerid']; ?>"><?php echo $dataRow['name']; ?></a>

然后要获取信息,您可以使用GET变量从URL获取playerid,如下所示:$playerid = $_GET['playerid']

然后从查询中获取您的信息,做您喜欢的事情。您可以从那里以任何您喜欢的方式使用数据。

这只是一个开始,但你应该可以从中推断出其余的问题。希望这会有所帮助。

答案 1 :(得分:1)

好的,您现在正在渲染静态列表。

要使导航动态,你基本上需要3件事:

  • 使用ids创建链接
  • 从网址
  • 获取此ID
  • 并使用WHERE语句查询数据库以选择该特定ID

您已经开始使用链接:<a hrer="">,但它是href

clubs.php - 会提供所有俱乐部的概览,并附上每个俱乐部的链接

将它放在你的foreach中,通过附加id来构建链接。

foreach ($res as $dataRow) {
    $id = $dataRow['id'];
    $name = $dataRow['name'];
    $link = 'club.php?id=' . $id;

    echo '<span>' . $id . '</span>';
    echo '<span><a href="' . $link . '">' . $name. '</a></span>';
}

现在您可以点击club.php?id=2。 但是club.php需要处理传入的id,对吗?

club.php - 呈现包含每个玩家链接的玩家列表

你基本上重复了上面的模式,但是使用不同的锚基础,这次它是player.php。您应该获得包含player.php?id=x个链接的列表。

如何处理每个脚本中的id

id通过$_GET传入。

您可以使用var_dump($_GET['id'])查看该值。使用变量,如$id = $_GET['id']

(稍后,当一切正常时:不要忘记正确保护和转义传入数据。)

然后在数据库查询中使用$id

SELECT * FROM tblplayers WHERE player_id = ' . $id;