2017-06-30 50 views
-1

我一直在嘗試獲取登錄人user_id這是user_login我的數據庫中的表,並將其插入到另一個表。 我知道的是,使用查詢從user_login獲得user_id,並將該查詢分配給SESSION變量,並將該變量放在另一個查詢中,我想將其插入表中,但我無法爲其編寫完美的代碼我唯一能做的就是將user_id作爲1添加到新表格中。如果您可以查看我的代碼,那將會非常有幫助。如何從數據庫獲取登錄用戶user_id並將其插入到另一個表中?

<?php 
    ob_start(); 
    include ('header.php'); 
    require('includes/connect.php'); 
    require('includes/product.php'); 

    $product = new Product;   
    if(isset ($_GET['id'])) { 
     $id = $_GET['id']; 
     $data = $product -> fetch_data($id);  

     if(isset($_POST['add'])){ 
      if (isset($_SESSION['logged_in'])) { 
       $query = $pdo->prepare("SELECT user_id FROM user_login "); 
       $user_id=$query->execute(); 
       $_SESSION['user_id']['id']=$user_id; 
       $query = $pdo -> prepare("INSERT INTO cart_items(product_id , user_id, Price) VALUES (?,?,?)"); 
       $query -> bindValue(1, $id); 
       $query -> bindValue(2, $_SESSION['user_id']['id']); 
       $query -> bindValue(3, $data['new_price']); 
       $query ->execute(); 
       header('location:cart.php'); 
      } 
      else{ 
       header('location:Login Page.php'); 
      } 
     } 
?> 

這就是我所做的用戶驗證在登錄時(connect.php)

<?php 
$servername = "localhost"; 
$username = "username"; 
$password = "password"; 
$dbname = "ecom"; 
try{ 
    $pdo = new PDO('mysql:host=localhost;dbname=ecom','root',''); 
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
} 
catch(PDOException $e){ 
    exit('Database error.'); 
} 

function login(){ 
    global $pdo; 
    $username = $_POST['email']; 
       $password = md5($_POST['password']); 
       if(empty($username) or empty($password)) 
       { 
        $error = "Please fill all the fields"; 
       } 
       else 
       { 
        $query = $pdo->prepare("SELECT * FROM user_login WHERE name = ? AND password = ? "); 
        $query->bindValue (1, $username); 
        $query->bindValue (2, $password); 
        $query->execute(); 
        $num=$query->rowCount(); 

       if($num==1) { 
        $_SESSION['logged_in']= true; 
        //header('location :' .$_SESSION['redirectURL']); 
        header('location: index.php'); 
        exit(); 
       } 
       else{ 
        $error = "Please enter correct Username and Password"; 
       } 
      } 


} 


?> 

預先感謝您。

+0

用$ _SESSION跟蹤,一個插入,也許一個選擇查詢.... – ArtisticPhoenix

+0

您應該添加替換你的其他部分當用戶登錄時將用戶標識添加到您的會話變量中。這是沒有意義的,因爲您正在檢索所有用戶,而'execute()'返回一個布爾值。 – jeroen

+0

@ jeroen你可以讓我知道如何做到這一點。我還在登錄時添加了用戶驗證代碼。 –

回答

-1

與此代碼

$query = $pdo->prepare("SELECT * FROM user_login WHERE name = ? AND password = ? "); 
$query->bindValue (1, $username); 
$query->bindValue (2, $password); 
$query->execute(); 
$data = $query->fetchAll(PDO::FETCH_ASSOC); 
$num=$query->rowCount(); 

if($num==1) { 
    $_SESSION['logged_in']= true; 
    $_SESSION['user_id'] = $data[0]["user_id"]; 
    //header('location :' .$_SESSION['redirectURL']); 
    header('location: index.php'); 
    exit(); 
} else{ 
    $error = "Please enter correct Username and Password"; 
} 

那麼你就可以得到會話的用戶ID

+0

現在好了我們可以在另一個文件中使用這個變量。您可以在我的問題中看到查詢,它實際上是在另一個文件中。 –

+0

ofc,你可以在你的項目中的任何文件中使用會話變量 –

+0

不,它不工作。 –

相關問題