4

我对 Web 开发非常陌生(我对 HTML 的经验有限)。我正在创建一个辩论网站。目前,每场辩论都存储在 MySQL 数据库中。当用户将信息提交到数据库时,我希望创建一个新页面,其中包含他们的辩论,以及评论和评分的能力。

我遇到的问题是,从我迄今为止所做的研究来看,我没有找到解决方案来为每次辩论建立一个新的网页。有人对如何将数据写入独特的网页有任何建议吗?

谢谢,乔治

4

3 回答 3

2

假设您使用的是 PHP 和 MySQL。

我将保持这个非常简单,可能在一个基本示例中需要这些文件以及您希望的解释性 SQL 表(辩论、评论等)。

  • /debatelist.php | Dipslays 所有辩论都有一个创建辩论的表格
  • /辩论处理器.php | 您的“一体化”数据操作文件。
  • /debate_detail.php | 辩论索引指向的详细信息页面。

形成辩论的表格

<form action='debateprocessor.php' action='POST'>
<input type='hidden' name='action' value='create'/>
<input type='text name='debate_name'/>
/// Other inputs - debate topic, debate author, subject etc? same as above
</form>

然后将表单数据发送到debateprocessor.php,我们将在其中进行清理和预处理。

$_GET['action']="create" #这告诉我们我们正在创建辩论 $_GET['debate_name']="SomeDebate"

辩论处理器.php - 你想把它拉进来:

if (mysql_real_escape_text($_GET['action'])) == 'create'){
    $debate_name = mysql_real_escape_text($_GET['debate_name']);
    //sanitize other variables as above

    //Insert debate name
    mysql_query=("INSERT INTO debates (debate_id,debate_name) VALUES ('$debate_name'");

}

注意动作 if($action == 'foo'){ //do something; } 声明 - 这将允许您在一个文件中处理所有更新(评论、编辑辩论名称等)。表单中的其他操作值可能是“编辑”、“添加评论”等 - 您可以使用单独的文件来完成所有这些操作,但这允许您全部完成。您所要做的就是为每个操作添加上面的 elseifs 或其他 if 语句来修改表。

因此,显示您的辩论,您会在表格中获得类似辩论的主列表,假设您有

辩论列表.php

<?
$getDebates = mysql_query("SELECT * FROM debates";); 
$rowNum = 0;

while($row = mysql_fetch_array($getDebates))
{
    $thisDebate = $row['debate_name'];
    $thisDebateID = $row['debate_id'];;

    echo
    "
        <tr>
        <td>
           <a href='debate_detail.php?debateid=$thisDebateID'>
            $thisDebate
        </a>
        </td>

    </tr>
    ";
    $rowNum++;
}

这将输出一个带有 ea 链接的辩论名称列表。PK 拉取的给定辩论的debate_detail.php 页面,辩论ID。在该文件中,您将使用类似的 SELECT 组合(仅使用 'WHERE辩论ID ='xyz',并且可能会在辩论 ID ='zyx' =辩论_id ='zyx'上加入评论等表。

于 2012-12-03T01:51:30.810 回答
1

有一个脚本来查看请求的 URI(查询字符串是最简单的地方查看foo.php?debate=1$_GET['debate'])并使用它来获取一条唯一标识您想要的辩论的信息(例如,您用于主键的列的值在数据库表中)。

在数据库中查找该行,并将内容输出到页面。

(确保以一种防御 SQL 注入的方式将数据发送到数据库,并且在没有转义或清理它以防御 XSS 的情况下,不会将用户输入回显到 HTML)。

于 2012-12-02T19:53:07.037 回答
0

您需要使用模板引擎,例如 PHP。对于每个辩论,您传递一个不同的查询字符串,例如您可能有的辩论 id 1

www.example.com/debates?id=1

然后,在您的 php 代码中,您可以检查此查询参数的值并使用它从数据库中提取正确的信息,从而允许您动态创建页面。

于 2012-12-02T19:53:13.117 回答