gpt4 book ai didi

php - 我如何将一个 php 的值解析为另一个 php

转载 作者:行者123 更新时间:2023-11-29 11:00:57 28 4
gpt4 key购买 nike

首先,我是 php 的新手,所以我仍在努力学习。我在 Wordpress 上创建了一个表单,我想将值插入一个表(data_test 表,我已经管理了),然后从 data_test 表中获取所有列(id 即自动递增编号、名称、电子邮件、产品、数量用户输入的)并插入到其他表中。我使用这个 html 代码作为表单来解析值:

 <form action="../enter_data_insert.php" method="post" onsubmit="return form_validation()" name="myForm">

Name <input id="name" name="name" type="text" />

Email <input id="email" name="email" required type="email"/>

Product<input id="prod" name="prod" required type="text" />

Quantity<input id="quant" name="quant" required type="number" min="1" / >

<input type="submit" value="Submit" />

</form>

然后用这个 php 来获取值:

   <?php 

if(!empty($_POST["name"]) && !empty($_POST["email"]) && !empty($_POST["prod"]) && !empty($_POST["quant"])){

//connect with database
include "database_conn.php";

//get the form elements and store them in variables

session_start();
$name=$_POST["name"];
$email=$_POST["email"];
$prod=$_POST["prod"];
$quant=$_POST["quant"];

//insert data on data_test table
$sql="INSERT INTO `site_db`.`data_test` ( `name` , `email`, `prod`,`quant`) VALUES ( '$name','$email','$prod','$quant')";
if(!mysqli_query($con,$sql)){
echo mysqli_error($con);
} else{

//retrieve data

$sql = "SELECT data_test_id FROM data_test WHERE prod='$prod'";
$result = mysqli_query($con,$sql);
if(!$result){
echo mysqli_error($con);
} else{
while($value = mysqli_fetch_object($result)){
$id = intval($value->id);
$_SESSION['myid'] = $value->id;
var_dump($value);

//insert data on data_test_ins table
$sql="INSERT INTO site_db.data_test_ins` ( id,name , email, prod,quant) VALUES ( $id,'$name','$email','$prod','$quant')";
if(!mysqli_query($con,$sql)){
echo mysqli_error($con);
} else{

//Redirects to the specified page
// header("Location: http://localhost/site/");
}
}
}
}
}
?>

现在它插入了除了data_test表上的id之外的所有值,我猜它是空的,因为它必须关闭php上的第一个插入,然后我必须调用第二个插入(使用//在data_test_ins表上插入数据)在其他 php 上?但我不确定,有人可以帮助我吗?或者只是指导我什么是正确的做法。我开始认为我必须创建两个 php 来解析这些值并采用第一个表,然后在另一个 php 上插入值?任何想法都有帮助! :-)

最佳答案

你的做法是不对的。手动向数据库中的 id 字段添加值并不是一个好方法。它应该由数据库自动生成。我建议的是,在 data_test_ins 表中添加另一个字段,例如:test_id,它指向 data_test 表的 id。这就是外键的概念。了解外键的概念 here

您的代码现在是:-

   <?php 

if(!empty($_POST["name"]) && !empty($_POST["email"]) && !empty($_POST["prod"]) && !empty($_POST["quant"])){

//connect with database
include "database_conn.php";

//get the form elements and store them in variables

session_start();
$name=$_POST["name"];
$email=$_POST["email"];
$prod=$_POST["prod"];
$quant=$_POST["quant"];

//insert data on data_test table
$sql="INSERT INTO `site_db`.`data_test` ( `name` , `email`, `prod`,`quant`) VALUES ( '$name','$email','$prod','$quant')";
if(!mysqli_query($con,$sql)){
echo mysqli_error($con);
} else{

//retrieve data

$sql = "SELECT data_test_id FROM data_test WHERE prod='$prod'";
$result = mysqli_query($con,$sql);
if(!$result){
echo mysqli_error($con);
} else{
while($value = mysqli_fetch_object($result)){
$id = $value->id;

//insert data on data_test_ins table
$sql="INSERT INTO `site_db`.`data_test_ins` ( `id`,`name` , `email`, `prod`,`quant`, `test_id`) VALUES ('$name','$email','$prod','$quant', '$id')";
if(!mysqli_query($con,$sql)){
echo mysqli_error($con);
} else{

//Redirects to the specified page
header("Location: http://localhost/site/");
}
}
}
}
}
?>

关于php - 我如何将一个 php 的值解析为另一个 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42267924/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com