2017-09-15 20 views
0

我試着將數據的名字和姓氏從循環中移出,但沒有顯示任何數據。我想知道是否有可能只重複產品,價格,數量而不是名字和姓氏?如何在while循環中獲取某些數據不要重新生成

<?php 
include ('dbconnect.php'); 
$sql='SELECT * FROM `user_info` ,`customer_order` WHERE user_info.user_id=customer_order.uid'; 

     $run_query=mysqli_query($conn,$sql); 


    if(! $run_query) { 
     die('Could not get data: ' . mysqli_error()); 
    } 

    while($row = mysqli_fetch_array($run_query, MYSQLI_ASSOC)) { 
     echo "name:{$row['first_name']} ". 
      "Last:{$row['last_name']} <br> ". 
      "Product:{$row['p_name']} <br> ". 
      "Price:{$row['p_price']} <br> " . 
      "Quanity:{$row['p_qty']} <br> "; 

     } 

回答

1

爲了簡化上面顯示的代碼,因爲SQL語句比較快速執行,我建議打破你的聲明兩個:首先獲取名/姓,然後運行一個循環,將獲得您需要的單元格列表。

<?php 
include ('dbconnect.php'); 
// Fetch user info 
$sql='SELECT * FROM `user_info` WHERE user_info.user_id=customer_order.uid'; 
$run_query=mysqli_query($conn,$sql); 

if(! $run_query) { 
    die('Could not get data: ' . mysqli_error()); 
} 
$row = mysqli_fetch_array($run_query, MYSQLI_ASSOC); 
echo "Customer: name:{$row['first_name']} ". 
    "Last:{$row['last_name']} <br>" ; 

// Fetch every orders needed 
$sql='SELECT `p_name`, `p_price`, `p_qty` FROM `user_info`, `customer_order` WHERE `user_info.user_id=customer_order.uid'; 
$run_query=mysqli_query($conn,$sql); 
if(! $run_query) { 
    die('Could not get data: ' . mysqli_error()); 
} 

while($row = mysqli_fetch_array($run_query, MYSQLI_ASSOC)) 
    echo "Product:{$row['p_name']} <br> ". 
     "Price:{$row['p_price']} <br> " . 
     "Quantity:{$row['p_qty']} <br> "; 
} 
+0

** PS **:如果您嘗試獲取的行數不應使用[mysqli_fetch_all](http://php.net/manual/ru/mysqli-result.fetch-all.php)太高了。這將通過存放一張巨大的桌子而使公羊吃掉你的公羊。 ** PS2 **:當我使用PHP時,我曾經使用一個實用函數,它自己執行所有連接/執行/錯誤處理,提供一個oneline來執行任何語句。哪個可以變得相當難看 – Wonskcalb

0

試試這個有,如果在循環語句來檢查,如果你正在顯示的名稱相同或不:

<?php 
include ('dbconnect.php'); 
$sql='SELECT * FROM `user_info` ,`customer_order` WHERE user_info.user_id=customer_order.uid'; 

     $run_query=mysqli_query($conn,$sql); 


    if(! $run_query) { 
     die('Could not get data: ' . mysqli_error()); 
    } 

    $first_name_saved = ""; 
    $last_name_saved = ""; 
    while($row = mysqli_fetch_array($run_query, MYSQLI_ASSOC)) { 
     if ($first_name_saved != row["first_name"] && $last_name_saved != row["first_name"]){ 
     echo "name:{$row['first_name']} ". 
      "Last:{$row['last_name']} <br> "; 
     } 
     echo "Product:{$row['p_name']} <br> ". 
      "Price:{$row['p_price']} <br> " . 
      "Quanity:{$row['p_qty']} <br> "; 

      $first_name_saved = $row['first_name']; 
      $last_name_saved = $row['last_name']; 


     } 
+0

其實它仍然在做同樣的事情。我需要得到的名字和姓氏不能重複與該用戶訂購的相同產品 –

+0

謝謝皮埃爾的幫助,但wonskcalb答案是我正在尋找。 –

相關問題