2016-03-08 6 views
-2

У меня есть форма для вставки значений в tbl_locators, но мне нужен идентификатор зарегистрированного пользователя, чтобы ссылаться на негоВставьте идентификатор зарегистрированного пользователя, как внешний ключ

, как я могу получить идентификатор вошедших в пользователе и вставить его как FK в ссылку tbl_clients

это имеет какое-либо отношение к сеансам?

Вход 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.


Update:

Вам также нужно обернуть $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 ($ жулик,«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

Смежные вопросы