2017-09-15 1 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를 사용했을 때 이전에 모든 연결/실행/오류 처리 기능을 사용하여 모든 명령문을 실행할 온라인 기능을 제공했습니다. 어느 것이 꽤 못생긴가요? – 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 대답은 내가 찾고있는 것입니다. –

관련 문제