如何根据链接点击动态生成PHP MySQL的网页

时间:2012-11-03 07:53:04

标签: php mysql get

我之前问过这个问题但需要更多帮助。阅读本文,然后我将在最后提供确切的细节。

我已成功将我为播客(www.noformatpodcast.com)构建的静态网站转换为Dreamweaver中的动态网站(目前在测试服务器上)。通过使用Dreamweaver中的“数据库”,“绑定”和“服务器行为”选项卡,我完全没有学习PHP或MySQL。我唯一不知道的是如何在某人使用有关该链接的信息点击链接创建页面时动态生成页面。例如,我在index.php页面上有一个动态生成的剧集网格。当有人点击第55集的链接时,我希望它加载剧集页面(我已创建)并填写第55集中的信息,如日期,标题,模糊等。如果有人点击链接第43集,我希望加载相同的页面并使用第43集中的信息动态填充页面。这可能与Dreamweaver的GUI有关,还是我需要长大并学会实际编码?

我得到的答案都告诉我,我需要学习如何使用$ _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数据库的更多信息?

2 个答案:

答案 0 :(得分:0)

要执行此操作,请使用 apache rewrite module 此模块将帮助您重写URL,然后将您的请求转发到指定的脚本。

请参阅下文,了解如何使用.htaccess文件重写网址。

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

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

答案 1 :(得分: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,让生活更轻松。

干杯。