我有一个带有记分板的wordpress网站,该记分板可以从wp数据库中的视图中获取结果,并且我已经在自定义页面模板上设置了该板。我的麻烦是将记分板中的玩家链接到带有玩家的新页面我希望能够在记分板中点击玩家名称,然后转到包含该玩家统计数据的页面。
以下是显示记分板的相关代码:
<?php //Table with SQL Query
$connection = mysql_connect('localhost', 'root', '');
mysql_set_charset('utf8',$connection);
mysql_select_db('worldsbestblog');
$query = "SELECT * FROM Sammenlagt LIMIT 0,20";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)){ //Loop through results
echo "<tr><td>" . $row['Dato'] . "</td>
<td>
<a href=\"fasan.php?id=". $row["spillerid"]."\">" . $row['Navn'] . "</a>
</td>
<td>" . $row['hull1'] . "</td><td>" . $row['hull2'] .
"</td><td>" . $row['hull3'] . "</td><td>" . $row['hull4'] .
"</td><td>" . $row['hull5'] . "</td><td>" . $row['hull6'] .
"</td><td>" . $row['hull7'] . "</td><td>" . $row['hull8'] .
"</td><td>" . $row['hull9'] . "</td><td>" . $row['hull10'] .
"</td><td>" . $row['hull11'] . "</td><td>" . $row['hull12'] .
"</td><td>" . $row['hull13'] . "</td><td>" . $row['hull14'] .
"</td><td>" . $row['hull15'] . "</td><td>" . $row['hull16'] .
"</td><td>" . $row['hull17'] . "</td><td>" . $row['hull18'] .
"</td><td>" . $row['Sammenlagt'] . "</td><td>" . $row['Par'] .
"</td><td>" . $row['Poeng'] . "</td></tr>"; //$row['index'] the index here is a column name
}
?>
我已经看过无数类似的问题,其中使用了SESSIONS,$ _POST和$ _GET,虽然我还没有能够理解或看看如何/如果这是为了使它工作的缺失。 现在我得到一个显示播放器用户ID的URL,但点击后,wordpress无法找到该页面。
[编辑]
好的,我做了一些编辑,找到了我的问题的答案。不确定如何在stackoverflow上进行此操作(如果我应该在其他地方执行此操作,请指示我),但我想告诉您这项工作是做什么的,以便下一个人能够找到这篇文章并附上解释。
所以这是当前的代码,感谢@Cal Evans和@Hamed Momeni提供的有用指导:
记分牌:
$query = "SELECT * FROM Sammenlagt";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)){ //Creates a loop to loop through results
echo "<tr><td>" . $row['Dato'] . "</td>
<td>
<a href=\"/wordpress/teststats?id=". $row["spillerid"]."\">" . $row['Navn'] . "</a>
</td>
<td>" . $row['hull1'] . "</td><td>" . $row['hull2'] .
"</td><td>" . $row['hull3'] . "</td><td>" . $row['hull4'] .
"</td><td>" . $row['hull5'] . "</td><td>" . $row['hull6'] .
"</td><td>" . $row['hull7'] . "</td><td>" . $row['hull8'] .
"</td><td>" . $row['hull9'] . "</td><td>" . $row['hull10'] .
"</td><td>" . $row['hull11'] . "</td><td>" . $row['hull12'] .
"</td><td>" . $row['hull13'] . "</td><td>" . $row['hull14'] .
"</td><td>" . $row['hull15'] . "</td><td>" . $row['hull16'] .
"</td><td>" . $row['hull17'] . "</td><td>" . $row['hull18'] .
"</td><td>" . $row['Sammenlagt'] . "</td><td>" . $row['Par'] .
"</td><td>" . $row['Poeng'] . "</td></tr>"; //$row['index'] the index here is a column name
}
?>
.../wordpress/teststats
是一个带有自定义页面模板的新页面,其中包含以下代码:
<?php
$spid = (int) filter_input(INPUT_GET,'id', FILTER_SANITIZE_NUMBER_INT);
$spillerquery = mysql_query("SELECT * FROM Sammenlagt WHERE spillerid='$spid'") or die ("Somthing went wrong!!");
if (mysql_num_rows($spillerquery) < 1){
die ("Couldnt find that player");
}
$navnequery = mysql_query("SELECT Navn FROM Sammenlagt WHERE spillerid='$spid'") or die ("Player does not exist");
$spillernavn = mysql_result($navnequery,MYSQL_BOTH);
?>
<h2>Her er <?php echo "$spillernavn"; ?> sine resultater</h2>
<?php
while($row = mysql_fetch_array($spillerquery, MYSQL_ASSOC)){
echo "<tr><td>" . $row['Dato'] .
"</td><td>" . $row['hull1'] . "</td><td>" . $row['hull2'] .
"</td><td>" . $row['hull3'] . "</td><td>" . $row['hull4'] .
"</td><td>" . $row['hull5'] . "</td><td>" . $row['hull6'] .
"</td><td>" . $row['hull7'] . "</td><td>" . $row['hull8'] .
"</td><td>" . $row['hull9'] . "</td><td>" . $row['hull10'] .
"</td><td>" . $row['hull11'] . "</td><td>" . $row['hull12'] .
"</td><td>" . $row['hull13'] . "</td><td>" . $row['hull14'] .
"</td><td>" . $row['hull15'] . "</td><td>" . $row['hull16'] .
"</td><td>" . $row['hull17'] . "</td><td>" . $row['hull18'] .
"</td><td>" . $row['Sammenlagt'] . "</td><td>" . $row['Par'] .
"</td><td>" . $row['Poeng'] . "</td></tr>";
}
?>
答案 0 :(得分:0)
如果您实际使用的是Wordpress,我建议您使用提供的$wpdb
对象来满足您的数据库需求。
另一个建议是,当使用Wordpress时,您需要使用模板文件来创建不同的页面。你可以create different page templates查看Wordpress中的各种页面。这样,您就可以使用Wordpress重新路由引擎来实现其强大而简单的功能。
例如,想象一下你想为玩家统计数据创建一个页面。首先在主题目录中创建一个名为tpl-player_stats.php
的文件,其中包含以下标题:
<?php
/*
Template Name: Player Stats Page
*/
然后在Wordpress dashboar中创建一个页面并将上面的模板分配给它。之后,您可以转到http://example.com/your_page_slug/?id=player_id
进入您的页面
一般来说,这就是使用Wordpress的方式。所以我建议你深入研究。
答案 1 :(得分:0)
试试这个。
<?php
//Table with SQL Query
$player_id = (int) filter_input(INPUT_GET,'id', FILTER_SANITIZE_NUMBER_INT);
$connection = mysql_connect('localhost', 'root', '');
mysql_set_charset('utf8',$connection);
mysql_select_db('worldsbestblog');
$query = "SELECT * FROM Sammenlagt where player_id = {$player_id} LIMIT 0,20";
$result = mysql_query($query);
虽然,我同意with @Hamed您应该使用$wpdb
而不是创建自己的连接。这假设您的表与WordPress表位于同一个数据库中。