1

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

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

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

项目.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 数据库中。

那么,如何为每个项目制作一个独特的页面呢?最好的方法是什么?

提前致谢!

4

2 回答 2

2

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

于 2013-08-02T14:55:49.310 回答
0

首先,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;
于 2013-08-02T15:03:27.840 回答