2014-03-07 52 views
-2

在我的第一页我有 我有这种格式PHP使用SQL查询从一个页面结果查询在其他

echo "<td><a href='tournament.php'>" . $info['tournament'] . "</a></td>"; 

$信息[“比赛”]返回​​一个表比赛名称查询有点击它时,比赛名称带我到页面tournament.php在那里我有这样的代码

$data = mysql_query("SELECT team1,score1,team2,score2 FROM table where tournament='';") or die(mysql_error()); 

我想是有值链接到这一前一页面点击,在tournament='HERE'使查询检索该比赛的数据

+0

查找'$ _GET'和'PDO',不要使用已弃用'mysql_ *'函数,如果你的建议没有对输入进行消毒,会造成SQLi漏洞,我不会为你自己写好完整的代码,你需要做一些阅读,但我确定别人会这么做,但你仍然应该做一些阅读 –

+0

我的不好我认为那些刚刚接触编码的人可以来这里问问题以帮助他们学习谢谢你的建议和投票下来 – user3386406

+0

我猜你被我的评论冒犯了。这不是我的意图,我只是给你一些好的意见建议,因为我认为你从长远来看可以从你自己的研究中获益。我没有按顺序投票。 –

回答

2

第一,如果你还没有(我的意思是在桌上)创建比赛的ID,这是一个很好的做法。然后,你将有一个像这样的链接:

echo "<td><a href='tournament.php?id=".$info['id']."'>" . $info['tournament'] . "</a></td>"; 

然后,有关查询:mysql functions are deprecated from PHP 5.5, and you are strongly encouraged to use PDO statements or mysqli

但对于这个教训,你会使用类似的东西(了解过滤 - 在这种情况下intval()

$tournament_id = intval($_GET['id']); 
if($tournament_id > 0) 
    $data = mysql_query("SELECT team1,score1,team2,score2 FROM table where id = ".$tournament_id.";") or die(mysql_error()); 
+0

你能探讨一下吗? ain您为比赛创建ID的含义是什么?表中有很多随机比赛,其中有些比赛是重复的,因为每个比赛都有很多比赛结果,比赛结果如下(matchid,team1,score1,team2,score2,tournament)matchid是一个随机int – user3386406

+0

在表中创建新列锦标赛称为'ID',给它属性'AUTO_INCREMENT'和整数作为一种类型。 – sunshinejr

+0

matchid是主键,它是一个随机整数每个比赛可以有很多比赛,所以没有办法标识每个比赛桌上有近500场比赛 – user3386406

0

你可以改变提供赛事名称的链接(或者甚至更好,一个id):

echo "<td><a href='tournament.php?tournament=".$info['tournament']."'>" . $info['tournament'] . "</a></td>"; 

在tournament.php您现在可以通过访问比赛:

$tournamentName = $_GET['tournament'];//Remember to check if it exists 

你然后可以在您的查询中使用$tournamentName。请记住转义$tournamentName,因为它可能包含恶意值。

另请考虑从mysqli_*函数切换。这些现在已被弃用。考虑PDOmysqli。切换到这些时,查看准备好的语句也是一个好主意。

+0

你是什么意思逃脱?对不起,我是这个新手 – user3386406

+0

@ user3386406不需要道歉,每个人在某个时候都是新手。逃逸意味着移除或安全地保护任何危险值。参见[mysql_real_escape](http://uk1.php。net/mysql_real_escape_string)(尽管正如我所提到的,我建议切换到“PDO”或“mysqli”)。原因是用户可以将SQL键入到GET参数中,并且您的查询将运行SQL。 – Jim

+0

由于某种原因,它不适用于我我可以在网址中看到每个单词之间有%20的比赛名称,但是当我尝试回显%锦标赛名称时它会出现空 – user3386406

0

更改代码中使用GET方法

echo "<td><a href='tournament.php?tournament=" . $info['tournament'] . "'>".$info['tournament'] . "</a></td>"; 

通过比赛来一个页面,并使用此代码

$data = mysql_query("SELECT team1,score1,team2,score2 FROM table where tournament='" . $_GET['tournament'] . "';") or die(mysql_error()); 

希望你能分在第二页上得到...

相关问题