我有表单,当用户提交表单时,信息存储在MySQL数据库中。我想要它,以便当用户提交表单时,它将为该表单提供一个URL,其中包含他们在该表单上提交的信息。我需要为每个提交的表单提供一个唯一的URL。当我转到该URL时,将显示该表单中的信息。我该怎么做?
答案 0 :(得分:1)
我已经设置了php demo,因此您可以看到以下代码的作用。
(注意:如果您稍后查看此帖子,则演示可能会脱机,因为它是我使用的个人免费网站,可能会断开连接)
你可以通过为表中保存的每个表单分配一个id,然后创建另一个.php page
来获取你想要的内容,然后创建另一个<form action="process.php" method="post">
Name:<input type="text" name="name"><br>
Description:<textarea name="description"></textarea><br>
<input type="submit" value="Send">
</form>
来获取id等于x id的表单的表单数据。
所以,假设您使用以下内容保存表单:
您还会自动保存:
然后你会通过这个网址获得表单信息:
form
这是一个简单的input
,包含两个<?php
$servername = "mysqlhost";
$username = "mysqluser";
$password = "mysqlpass";
$dbname = "mysqldatabasename";
$id = rand(0,100000000);
$name = $_POST["name"];
$description = $_POST["description"];
$url = "../getform.php?id=".$id;
//Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO someTable (id,name, description) VALUES ('".$id."','".$name."','".$description."')";
if ($conn->query($sql) === TRUE) {
echo "<a href='".$url."'>".$url."</a>";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
元素和一个提交按钮。您可以将其更改为您需要的任何输入。
$_POST["name"]
我们为表单分配 id (0到1000000000之间的随机数),然后我们从$_POST["description"]
变量中获取名称,并且说明 HTML
变量。
语法为$ _POST [“ n ”],其中 n 是您在
echo
中指定元素的名称。
然后我们创建一个mysql连接并将值id,name,description推送到表字段id,name,description。
语法为“INSERT INTO 表(字段,字段,字段)VALUES('值','值','值')“其中表是表名,字段< / strong>是表格字段名称,值是您要在该字段中推送的值。
然后我们getform.php
或打印指向自定义表单网址的链接,该链接将由<?php
$servername = "mysqlhost";
$username = "mysqluser";
$password = "mysqlpass";
$dbname = "mysqldatabasename";
$id = $_GET["id"];
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM someTable WHERE id = $id";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "id: " .$row["id"]. "<br>";
echo "name: ".$row["name"]."<br>";
echo "description: ".$row["description"]."<br>";
}
} else {
echo "No results with that id";
}
$conn->close();
?>
文件处理。
以下是sql表在我的服务器的phpMyAdmin中的样子。 (您应该创建此表以便代码工作)
$_GET["id"]
我们连接到数据库,我们从get method
变量得到 id ,这几乎与$ _POST变量完全相同,但在form
中使用get request
{1}}。
然后我们选择包含我们通过id过滤表单数据的特定行,其语法是:
“SELECT * FROM 表 WHERE id = id ”其中表是表名,而id是{中提供的ID {1}}。
然后,我们通过Connection->query(sql)
获取查询结果,其中 sql 是实际查询。
然后我们检查选择的行数是否大于0,然后我们使用while($row = $result->fetch_assoc())
遍历每一行,其中 $ row 是一个包含表的每个字段的数组,它的价值。
最后,我们使用以下语法来获取字段的值:
$行[ “字段强>”]
其中字段是字段名称。
希望这有助于男人,对不起,如果我没有得到你想做的事情:)
答案 1 :(得分:0)
我用一个例子解释你需要的东西:
假设表单提交有关文章的信息(您还需要数据库中的文章表),因此每次用户提交表单时,文章表中的新行都会插入唯一ID。
然后为了展示这篇文章(这是你想要的问题:提交的每个表单的唯一URL)使用这样的URL:showArticle.php?id =(pu article id here)