簡體   English   中英

顯示來自INNER JOIN的特定行-MySQLi

[英]Displaying specific row from INNER JOIN - mysqli

我正在嘗試顯示有關當前登錄用戶的信息。 問題是我需要的信息位於兩個differnet表中,因此我不得不使用INNER JOIN來顯示數據。

<?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

你能告訴我哪里有問題嗎? 您還對如何提高安全性有任何建議嗎? 我猜想將$email放入query中可能不是最好的主意。

可能是您在sql語句中出錯,所以$ result_address為false。 $ email應該用單引號引起來,並且還要在`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 . "'";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM