我正在构建一个简单的错误跟踪工具。 登录后,您可以创建一个新项目,当您创建一个新项目时,您将被重定向到项目页面。
我的问题是,我如何为每个项目提供一个独特的页面? 我知道我只需创建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数据库中。
那么,我如何为每个项目创建一个独特的页面? 最好的方法是什么?
提前致谢!
答案 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;