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

Php 为每个项目页面创建唯一的页面,php,mysql,Php,Mysql,我正在构建一个简单的bug跟踪工具。 登录后,您可以创建一个新项目,当您创建一个新项目时,您将被重定向到项目页面 我的问题是,如何给每个项目一个独特的页面? 我知道我只需要创建一个页面(projectpage.php),然后为每个项目创建一个唯一的页面。我必须从每个项目中获取id 填写表单以创建新项目后,该表单将发布到此页面: project.class.php $name = $_POST['name']; $descr = $_POST['description']

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

我的问题是,如何给每个项目一个独特的页面? 我知道我只需要创建一个页面(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数据库中

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


提前谢谢

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

首先,mysql_*函数已过时,您应该使用PDO

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

if($result){
    header('Location: ../project.php?id='.mysql_insert_id());
}
mysql_insert_id返回最后一个插入的id。请参阅。 然后,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;

您正在使用并且应该使用。你也很容易受到现代API的影响,因为它会让你更容易从中受益。不要把它看成是每个项目的唯一页面。这将带来可怕的规模。事实上,您正在用不同的数据填充同一页面,这就是服务器端编程的美妙之处。