0

我以前问过这个问题,但需要更多帮助。阅读此内容,然后我将在最后提供确切的详细信息。

我已经成功地将我为我的播客 (www.noformatpodcast.com) 构建的静态网站转换为 Dreamweaver 中的动态网站(目前在测试服务器上)。通过使用 Dreamweaver 中的“数据库”、“绑定”和“服务器行为”选项卡,我无需真正学习 PHP 或 MySQL 就可以做到这一点。我唯一无法弄清楚的是,当有人单击链接时,如何使用有关该链接的信息来创建页面时动态生成页面。例如,我在 index.php 页面上有一个动态生成的剧集网格。当有人单击第 55 集的链接时,我希望它加载第 55 集的页面(我已经创建)并填写第 55 集的信息,例如日期、标题、简介等。如果有人单击链接第43集,

我得到的答案都告诉我,我需要学习如何使用 $_GET。我已经在 w3schools.com 上查看了它的基础知识,但仍然需要很多帮助。这是我的动态重复代码块,它在我的 index.php 页面上制作剧集网格

<div id="post_container">
    <?php do { ?>
        <div id="post">
            <a href="episode.php" onmouseout="this.style.opacity=1;" onmouseover="this.style.opacity=0.7;">
                <h2>
                    <span class="darkblock"><?php echo $row_Episodes['post_id']; ?> | <?php echo $row_Episodes['ep_title']; ?>
                    </span>
                </h2>
                <img src="ep_artwork/ep_<?php echo $row_Episodes['post_id']; ?>.jpg"  width="260" height="260" />
            </a>
        </div>
    <?php } while ($row_Episodes = mysql_fetch_assoc($Episodes)); ?>
</div>

所以基本上我有一堆大的方形图像,它们是指向 episode.php 页面的链接。我还编写了 episode.php 页面以动态显示数据:

<div id="summary">
    <div id="artwork">
        <img src="ep_<?php echo $row_Episodes['post_id']; ?>.jpg" width="260" height="260" />
    </div>
    <div id="ep_title">Ep. <?php echo $row_Episodes['post_id']; ?> | <?php echo $row_Episodes['ep_title']; ?>
    </div>
    <p class="episode_date"><?php echo $row_Episodes['ep_date']; ?>
    </p>
    <p><?php echo $row_Episodes['ep_blurb']; ?>
    </p>
</div>
<audio src="ep_media/ep_<?php echo $row_Episodes['post_id']; ?>.m4a" controls="controls">
</audio>

我缺少的是将这两件事粘合在一起的代码。我的意思是,就目前而言,如果您单击任何一集,它只会将您带到 episode.php 页面并显示第一集的信息(因为它是数据库中的第一集)。我需要让它显示点击的情节的信息。我猜这涉及到使用 $_GET。有人可以确切地告诉我我需要包含哪些代码,以及在哪里包含它?我在这里发布的内容是否足够?或者您是否还需要了解有关我的 MySQL 数据库的更多信息?

4

2 回答 2

0

为此,使用apache rewrite module 此模块将帮助您重写 url,然后将您的请求转发到指定的脚本。

请参阅下面如何使用.htaccess文件重写 url。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

现在您所要做的就是解析数据库$_SERVER['REQUEST_URI'],然后与数据库交互以获取所需的内容。

于 2012-11-03T08:14:17.247 回答
0

有很多解决方案,但我认为最简单的方法是在您的第一页(网格页面或 index.php)中,您将链接设置如下:

<div id="post_container">
    <?php do { ?>
        <div id="post">
            <a href="episode.php?episodeID=<?php echo $row_Episodes['post_id'] ?>" onmouseout="this.style.opacity=1;" onmouseover="this.style.opacity=0.7;">
                <h2>
                    <span class="darkblock"><?php echo $row_Episodes['post_id']; ?> | <?php echo $row_Episodes['ep_title']; ?>
                    </span>
                </h2>
                <img src="ep_artwork/ep_<?php echo $row_Episodes['post_id']; ?>.jpg"  width="260" height="260" />
            </a>
        </div>
    <?php } while ($row_Episodes = mysql_fetch_assoc($Episodes)); ?>
</div>

然后在您的 episode.php 页面中,您应该使用

$_GET['episodeID'];

建议的代码是:

$postID = $_GET['episodeID'];

// WRITE CODE TO GET CORRESPONDING TITLE, DATE, BLURP, AND OTHER INFO FROM THE DATABASE FOR THE SUBMITTED POST ID
// ASSUME THIS TITLE IS SAVED TO $postTitle, $postDate, $postBlurp, ...etc.

<div id="summary">
    <div id="artwork">
        <img src="ep_<?php echo $postID; ?>.jpg" width="260" height="260" />
    </div>
    <div id="ep_title">Ep. <?php echo $$postID; ?> | <?php echo $postTitle; ?>
    </div>
    <p class="episode_date"><?php echo $postTitle; ?>
    </p>
    <p><?php echo $postBlurp; ?>
    </p>
</div>
<audio src="ep_media/ep_<?php echo $postID; ?>.m4a" controls="controls">
</audio>

您还必须确保您的代码安全。但这就是它背后的想法。

我的建议是学习 php 和 mysql 以使生活更轻松。

干杯。

于 2012-11-03T08:14:34.607 回答