如何将值从一个php解析到另一个php

如何将值从一个php解析到另一个php,php,mysql,forms,Php,Mysql,Forms,让我们开始吧,我是php的新手,所以我仍然在努力学习。我已经在Wordpress上创建了一个表单,我想在一个表(data_test table,我已经管理了)上插入值,然后从data_test table(id,即用户输入的自动递增编号、名称、电子邮件、产品、数量)中获取所有列,并插入到另一个表中。我在表单中使用了以下html代码来解析值: 名称 电子邮件 产品 量 您是否尝试将$value->id传递到查询中而不是$value 它是一个具有结果集的当前行的对象,因此您应该只传递该对象的id

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


名称
电子邮件
产品
量

您是否尝试将
$value->id
传递到查询中而不是
$value

它是一个具有结果集的当前行的对象,因此您应该只传递该对象的id属性

$sql="INSERT INTO `site_db`.`data_test_ins` ( `id`,`name` , `email`, `prod`,`quant`) VALUES ( '$value->id','$name','$email','$prod','$quant')";
补充:

  • 停止使用不推荐使用的mysql库
  • 你应该检查发布的数据是否正确
编辑:

您的代码应该如下所示:


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

您的代码现在是:-

   <?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/");
                }
            }
        }
    }
  }
?>

当然最好使用这种方法作为db最佳实践谢谢大家的回复!!:-)我明白,你有权利!!但出于测试目的,我这样做是因为我基本上不希望以后将这些值插入数据库中的另一个表,而是在erp上。因此,我可以将输入的值传递到erp。