2016-03-08 66 views
-2

我有一個表格將值插入tbl_locators,但我需要的ID登錄的用戶引用它插入登錄的用戶的ID作爲外鍵

我怎樣才能登錄的ID在用戶和插入它作爲FK引用tbl_clients

它與Sessions有什麼關係嗎?

登錄in.php

<?php 

include('dbconn.php'); // Database connection and settings 

// checking the user 

if(isset($_POST['login'])){ 

$user = mysqli_real_escape_string($con,$_POST['user']); 

$pass = mysqli_real_escape_string($con,$_POST['pass']); 

$sel_ID = "select accholder_ID from tbl_accholder where accholder_Username='$user' AND accholder_Password='$pass'"; 
$sel_user = "select * from tbl_accholder where accholder_Username='$user' AND accholder_Password='$pass'"; 

$run_user = mysqli_query($con, $sel_user); 
$run_ID = mysqli_query($con, $sel_ID); 

$check_user = mysqli_num_rows($run_user); 

if($check_user==1){ 

$_SESSION['accholder_Username']= $user; 
$_SESSION['accholder_ID']= $run_ID; 

echo $_SESSION['accholder_ID']; 

} 

else { 

echo "<script>alert('Username or password is not correct, try again!')</script>"; 

} 

} 

?> 

註冊up.php

<?php 
session_start(); 
include('dbconn.php'); // Database connection and settings 

if (isset($_POST['Submit'])) { 

    $accholder_ID = $_SESSION['accholder_ID']; 
    $companyname = $_POST["companyname"]; 
    $nationality = $_POST["nationality"]; 
    $primaryaddress = $_POST["primaryaddress"]; 
    $industrycode = $_POST["industrycode"]; 
    $tin   = $_POST["tin"]; 
    $status   = $_POST["status"]; 
    $category  = $_POST["category"]; 
    $employees  = $_POST["employees"]; 
    $email   = $_POST["email"]; 
    $mobile   = $_POST["mobile"]; 
    $telephone  = $_POST["telephone"]; 

    $companyname = trim(mysqli_escape_string($con, $companyname)); 
    $nationality = trim(mysqli_escape_string($con, $nationality)); 
    $primaryaddress = trim(mysqli_escape_string($con, $primaryaddress)); 
    $industrycode = trim(mysqli_escape_string($con, $industrycode)); 
    $tin   = trim(mysqli_escape_string($con, $tin)); 
    $status   = trim(mysqli_escape_string($con, $status)); 
    $category  = trim(mysqli_escape_string($con, $category)); 
    $employees  = trim(mysqli_escape_string($con, $employees)); 
    $email   = trim(mysqli_escape_string($con, $email)); 
    $mobile   = trim(mysqli_escape_string($con, $mobile)); 
    $telephone  = trim(mysqli_escape_string($con, $telephone)); 


    $sql  = "SELECT locators_CompanyName FROM tbl_locators WHERE locators_CompanyName='$companyname'"; 
    $sql2 = "SELECT locatorsCon_email FROM tbl_locatorscon WHERE locatorsCon_email='$email'"; 
    $result = mysqli_query($con, $sql); 
    $result2 = mysqli_query($con, $sql2); 
    $row  = mysqli_fetch_array($result, MYSQLI_ASSOC); 
    $row2 = mysqli_fetch_array($result2, MYSQLI_ASSOC); 

    if (mysqli_num_rows($result) == 1) { 
     echo "Sorry...This Company already exist.."; 
    } else if (mysqli_num_rows($result2) == 1) { 
     echo "Sorry...This Email already exist.."; 
    } else { 
     $query = mysqli_query($con, "INSERT INTO tbl_locators(locators_CompanyName, locators_Nationality, locators_PrimaryAddress, locators_IndustryCode, locators_TIN, locators_Status, locators_Category, locators_Employees, accholder_ID) 
VALUES ('$companyname', '$nationality', '$primaryaddress', '$industrycode','$tin','$status','$category','$employees', '$accholder_ID')"); 

     $LIid = $query = mysqli_insert_id($con); 

     $query2 = mysqli_query($con, "INSERT INTO tbl_locatorscon(locatorsCon_email, locatorsCon_mobile, locatorsCon_telephone, locators_ID) 
VALUES ('$email', '$mobile', '$telephone', $LIid)"); 
     if ($query && $query2) { 
      echo "Thank You! you are now registered."; 
     } 
     else 
      echo "Error"; 

    } 
} 

?> 
+0

你可以提供你想要的一個例子,你嘗試過什麼提問之前請在這裏? –

回答

0

這條線將導致一個語法錯誤,如'$_SESSION['accholder_ID']'由於單引號的用法:

$query = mysqli_query($con, "INSERT INTO tbl_locators(locators_CompanyName, locators_Nationality, locators_PrimaryAddress, locators_IndustryCode, locators_TIN, locators_Status, locators_Category, locators_Employees, acchold_ID) 
VALUES ('$companyname', '$nationality', '$primaryaddress', '$industrycode','$tin','$status','$category','$employees', '$_SESSION['accholder_ID']')"); 

您可以聲明$_SESSION['accholder_ID']作爲變量,即$accholder_ID,然後插入$accholder_ID


更新:

您還需要包裝$LIid單引號:

$query2 = mysqli_query($con, "INSERT INTO tbl_locatorscon(locatorsCon_email, locatorsCon_mobile, locatorsCon_telephone, locators_ID) 
VALUES ('$email', '$mobile', '$telephone', $LIid)"); 

兩個變量$_SESSION['accholder_Username']= $user$_SESSION['accholder_ID']= $run_user未設置爲session_start()未聲明在login.php

Notice: Undefined index: accholder_ID in C:\xampp\htdocs\Cisu\register.php on line 7


你設置$_SESSION['accholder_ID']= $run_ID$_SESSION['accholder_ID']= $run_user錯誤:

這引起了錯誤。

mysqli_query會返回一個對象,不是

因此,您需要循環才能獲取變量。 $run_ID$run_user將是字符串。

你也只需要僅有1個查詢:

$sel_user = "select * from tbl_accholder where accholder_Username='$user' AND accholder_Password='$pass'"; 

$run_user = mysqli_query($con, $sel_user); 

$check_user = mysqli_num_rows($run_user); 

if($check_user==1){ 

while ($row = mysqli_fetch_array($run_user)) { 
    $run_ID = $row['accholder_ID']; 
    $run_user = $row['accholder_Username']; 
} 

$_SESSION['accholder_Username']= $user; 
$_SESSION['accholder_ID']= $run_ID; 

} else { 

[other code ...] 
+0

我試圖 '$ accholder_ID = $ _SESSION [ 'accholder_ID'];' '$查詢= mysqli_query($ CON,「INSERT INTO tbl_locators(locators_CompanyName,locators_Nationality,locators_PrimaryAddress,locators_IndustryCode,locators_TIN,locators_Status,locators_Category,locators_Employees, acchold_ID) VALUES('$ companyname','$ nationality','$ primaryaddress','$ industrycode','$ tin','$ status','$ category','$ employees','$ accholder_ID') 「);' 但它不插入值到表 @luqeiqi – diededpool

+0

@diededpool它應該工作,除非被錯誤指定的列名 – Panda

+0

它說 **注意:未定義的索引:accholder_ID在C:\ xampp \ htdocs \ Cisu \ register.php在第7行** – diededpool