为每个项目页面创建一个唯一的页面

时间:2013-08-02 14:53:34

标签: php mysql

我正在构建一个简单的错误跟踪工具。 登录后,您可以创建一个新项目,当您创建一个新项目时,您将被重定向到项目页面。

我的问题是,我如何为每个项目提供一个独特的页面? 我知道我只需创建1个页面(projectpage.php),然后为每个项目创建一个唯一的页面。我必须从每个项目中获取id。

填写表单以创建新项目后,该表单将发布到此页面:

project.class.php

$name        = $_POST['name'];
$descr       = $_POST['description'];   
$leader      = $_POST['leader'];    
$email       = $_POST['email'];

$sql="INSERT INTO projects (name, description, leader, email, registration_date)
VALUES ('$name', '$descr', '$leader', '$email', NOW())";
$result = mysql_query($sql); 

if($result){
header('Location: ../projectpage.php');
}
else {
echo "Oops, there is something wrong. Try again later.";
}

mysql_close();

这会将数据存储在MySQL数据库中。

那么,我如何为每个项目创建一个独特的页面? 最好的方法是什么?

提前致谢!

2 个答案:

答案 0 :(得分:2)

您有一个PHP文件,通过查询字符串(或URL的其他部分)获取项目ID,并在数据库中查询与该ID相关联的数据。然后使用该数据为项目页面生成HTML。

答案 1 :(得分:0)

首先,mysql_ *函数已经过时,你应该使用PDO ......

您应该有一个PHP脚本,它通过ID从数据库中获取项目。您的表中可能应该有一个ID列。以下是示例代码:

if($result){
    header('Location: ../project.php?id='.mysql_insert_id());
}

mysql_insert_id返回最后插入的id。请参阅documentation。 然后,project.php:

<?php
if (!isset($_GET['id']) || empty($_GET['id']) {
   echo "error : bad url";
   exit();
}

$cn = new PDO(...); // Check PDO documentation for this

$sql = "SELECT * FROM projects WHERE project_id = :id";
$stmt = $cn->prepare($sql);

$stmt->bindParam(":id", $_GET['id']);
$stmt->execute();

$project = $stmt->fetch(PDO::FETCH_OBJ);

// $project will behave like an Object, you can display for example the project name
echo $project->name;

// or the project date...
echo $project->registration_date;