如何将用户表中的ID插入到其他表中

时间:2018-06-13 07:59:55

标签: php mysql ajax

嗨我有用户表并且ID是自动递增的,现在我在不同的页面中收集有关相同用户的一些信息并插入到新表中,所以我想将用户表中的ID插入到新表中

这是我想要插入新表的用户ID。

    $stmt = $user_home->runQuery("SELECT * FROM tbl_users WHERE userID=:uid");
    $stmt->execute(array(":uid"=>$_SESSION['userSession']));
    $row = $stmt->fetch(PDO::FETCH_ASSOC);
    $pid=$row["userID"]; 

我正在使用AJAX将值发送到不同的页面

    <script type="text/javascript">
      function post(){
      var firstname = document.getElementById("firstname").value;
      var lastname = document.getElementById("lastname").value;
      var email = document.getElementById("email").value;
      var phone = document.getElementById("phone").value;

      if(firstname && lastname && email && phone)
       {
       $.ajax
      ({
       type: 'post',
       url: 'secondpage.php',
      data: 
      {
      firstname:firstname,
      lastname:lastname,
      email:email,
      phone:phone
      },
     success: function (response) 
     {
     document.getElementById("status").innerHTML="Profile updated successfully";

        }
      });
    }

    return false;
  }
 </script>

以下是secondpage.php

     <?php
     session_start();
     require_once 'class.user.php';
     $host="localhost";
     $username="root";
     $password="";
     $databasename="mydb";

     $connect=mysql_connect($host,$username,$password);
     $db=mysql_select_db($databasename);
     echo "connected";


    if(isset($_POST['firstname']) && isset($_POST['lastname']) && 
    isset($_POST['email']) && isset($_POST['phone']))
    {
      $firstname=$_POST['firstname'];
      $lastname=$_POST['lastname'];
      $email=$_POST['email'];
      $phone=$_POST['phone'];


      $insert=mysql_query("insert into tbl_profile 
      (firstname,lastname,email, phone) values('$firstname', 
      '$lastname','$email','$phone')"); 
       $id=mysql_insert_id($insert); 


       }

      ?>

现在如何将$ pid = $ row [“userID”]值插入tbl_profile。我在tbl_profile中有一个列user_id。非常感谢任何帮助,谢谢。

3 个答案:

答案 0 :(得分:1)

您可以尝试将$ pid值存储到隐藏的输入,然后获取javascript的隐藏输入值

答案 1 :(得分:1)

首先,您不应该使用mysql_query,因为它已在PHP 7.x中删除 http://php.net/manual/en/function.mysql-query.php

其次,

$insert=mysql_query("insert into tbl_profile 
  (firstname,lastname,email, phone, user_id) values('$firstname', 
  '$lastname','$email','$phone', $_SESSION['userSession'])");

第三,这很容易进行注射。您永远不应将POST / GET / SESSION中的原始数据存储在数据库中。

答案 2 :(得分:1)

<强> HTML

<input type='hidden' name='pid' id='pid' value="<?php echo $pid; ?>">

<强>的Ajax .... **

data: 
      {
      firstname:firstname,
      lastname:lastname,
      email:email,
      phone:phone,
      pid = $("#pid").val()
      },

**

<强> PHP

$pid = $_POST['pid']