2017-06-06 17 views
0

我試圖顯示有關當前登錄用戶的信息。問題是我需要的信息在兩個不同的表中,所以我必須使用INNER JOIN,並且我有問題來顯示數據。顯示來自INNER JOIN的特定行 - mysqli

<?php 
$email = $_SESSION['email']; 

$sql_address = 
"SELECT `customer`.`email`, `address`.`first_name`, `address`.`last_name` 
FROM `customer` INNER JOIN address ON `customer`.`customer_ID`=`address`.`customer_ID WHERE email =". $email; 
$result_address = $db->query($sql_address); 


if(isset($_SESSION['email'])){ 
while($row = mysqli_fetch_array($result_address)){ ?> 
         <div class="col-sm-4 mb-20"> 
          <div class="mb-20 mb-md-10"> 
           <h3> CUSTOMER DETAILS</h3> 
           <p>Name: <?php echo $row['first_name']. " " .$row['last_name'];?><br/> 
            Email: <?php echo $row['email'];?> 
           </p> 
          </div> 
         </div> 
         <?php }?> 

這時我收到此錯誤:

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in D:\xamp\htdocs\exercises\website\shipment.php on line 149 

能否請你告訴我哪裏出了問題?你也有任何建議如何使它更安全?我想$emailquery可能不是最好的主意。

+2

變化'而($行= mysqli_fetch_array($ result_address)){'來'而($行= $ result_address-> fetch_array()){'也包/報價你where條件'WHERE電子郵件=」 $電子郵件;''到WHERE電子郵件='」。 $電子郵件「'」。 ' – Noman

+0

你用過'mysqli_query'函數嗎? – Avishake

+0

看看基本使用的mysqli https://www.sanwebe.com/2013/03/basic-php-mysqli-usage – Noman

回答

0

可能你在sql語句中有錯誤,所以$ result_address是false。 $電子郵件應該是單引號,也可以增加接近報價的`CUSTOMER_ID

嘗試此查詢

SELECT `customer`.`email`, `address`.`first_name`, `address`.`last_name` 
FROM `customer` INNER JOIN address ON `customer`.`customer_ID`=`address`.`customer_ID` WHERE email = '". $email . "'"; 
+0

問題解決了,謝謝! :) –