带超链接的PHP / MySQL表 [英] PHP/MySQL Table with Hyperlinks
问题描述
我有2个PHP表单。一个显示事件列表,另一个显示每个特定事件的结果。在包含我想要的事件列表的页面上,以便可以创建超链接来访问每个单独事件的结果。
I have 2 PHP forms. One displays a list of events and the other displays the results of each specific event. On the page with the list of events I would like it so that a hyperlink can be created to access each individual event's results.
例如,在事件页面上,我单击在第2行的超链接上,然后将我带到结果页面,其中包含该特定事件的结果。
For example, on the Events page I click on row 2's hyperlink which will then take me to the Results page that has the results for that specific event.
任何帮助都将受到赞赏,因为我非常非常新的PHP。如果需要任何额外的细节,请随时询问。
Any help would be appreciated as I am very, very new to PHP. If any extra details are needed, please feel free to ask.
谢谢。
编辑:对不起我' ll显示到目前为止事件表单的样子:
Sorry I'll show you what the Events form looks like so far:
<?php
mysql_connect('localhost','root','');
mysql_select_db('clubresults') or die( "Unable to select database");
$sql = "SELECT *, DATE_FORMAT(EventDate, '%d/%m/%y') as newdate FROM Events";
$result = mysql_query ($sql);
?>
<table border = 1>
<tr>
<th>Event ID</th>
th>Event Name</th>
<th>Event Date</th>
<th>Location</th>
</tr>
<?php
while ($row = mysql_fetch_array($result))
{
echo "</td><td>" . $row['EventID'] . "</td><td>" . $row['EventName'] . "</td><td>" . $row['newdate'] . "</td><td>" . $row['Location'] . "</td><tr>";
}
echo "</table>";
mysql_close();
?>
推荐答案
您不需要两个脚本,只需一个:
You don't need two scripts, but just one:
events.php?list
events.php?event=1234
在那里你只需要检查一下:
in there you only need to check for things:
$db = new Database(); # simplified
/* show event details if requested */
if (isset($_GET['event']) {
if ($event = $db->getEventByID($_GET['event'])) {
printf('<h2>Event: %s</h2>', htmlspecialchars($event->title));
# ...
}
}
/* show the list if requested (or show it always, whatever pleases you) */
if (isset($_GET['list']) {
echo '<table>';
foreach($db->getEventList() as $event) {
printf('<tr><td><a href="?event=%d">%s</a></td></tr>'
, $event->ID, htmlspecialchars($event->title));
}
echo '</table>';
}
编辑正如我在更新后的问题中看到的,你应该从那些oldskool mysql _ *
函数切换到我在我的例子中概述的类样式,因为它很多更简单易用。这是一个接近你的代码示例:
As I saw in your updated question, you should switch from those oldskool mysql_*
functions to the class style I outlined in my example, because it is much simpler to use. Here is a code-example that is close to yours:
<?php
/**
* My First PDO Databaseclass
*/
class Database extends PDO
{
public function __construct()
{
$host = 'localhost';
$name = 'clubresults';
$user = 'root';
$pass = NULL;
parent::__construct("mysql:host=$host;dbname=$name", $user, $pass);
$this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// $this->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
}
public function getEvents()
{
$sql = "SELECT *, DATE_FORMAT(EventDate, '%d/%m/%y') as newdate FROM Events";
return $this->query($sql, PDO::FETCH_OBJ );
}
public function getEventByID($id)
{
$sql = sprintf("SELECT * FROM Events WHERE EventID = %d;", $id);
return $this->query($sql)->fetchObject();
}
}
$db = new Database();
?>
<table border=1>
<tr>
<th>Event ID</th>
th>Event Name</th>
<th>Event Date</th>
<th>Location</th>
</tr>
<?php
foreach($db->getEvents() as $event)
{
echo "</td><td>" . $event->EventID . "</td><td>" . $event->EventName . "</td><td>" . $event->newdate . "</td><td>" . $event->Location . "</td><tr>";
}
?>
</table>
这篇关于带超链接的PHP / MySQL表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!