2017-09-25 1 views
1

여러 SQL 테이블 (일치하는 IMEI가있는 경우)에서 데이터를 가져 와서 html 테이블에 표시하려고합니다. IMEI가 일치하지 않으면 그 상자에 '-'를 표시하고 싶습니다.while while 루프에서 데이터베이스에서 데이터를 가져 오는 루프

표 A (가져 오기)의 데이터를 표시 한 다음 IMEI와 일치 시키려고했습니다. 이렇게하는 동안 나는 조건을 정의하기 위해 다른 것을 사용했고, 주요 문제는 if와 else에서 발생합니다. 코드를 실행하는 동안 else 섹션 다음에 나오는 if 섹션을 실행합니다. else 섹션은 ​​조건을 따르지 않습니다. 예

:

while ($row = mysqli_fetch_assoc($result)){ 
... 
... 
*****************this while shows error 
while($row1 = mysqli_fetch_assoc($result1)){ 
********here after executing if it will execute the else also. it does not follow the condition 
if(import_imei == sales_imei){ 
<td>imei</td> 
}else{ 
<td> - </td> 
} 
} 
... 
************the same condition work here perfectly 
while($row2 = mysqli_fetch_assoc($result2)){ 
if(import_imei == ret_imei){ 
<td>name</td> 
}else{ 
<td> - </td> 
} 
} 

} 

여기 아래 코드이다./: 오류가

$sql ="SELECT model,importDate,IMEI1,IMEI2 FROM mainreport ORDER BY id DESC LIMIT $start_from, $limit"; 
    $result = mysqli_query($con,$sql); 
    while ($cgimport = mysqli_fetch_assoc($result)) { 
     $cgimport_modelName = $cgimport['model']; 
     $cgimport_importDate = $cgimport['importDate']; 
     $cgimport_IMEI1 = $cgimport['IMEI1']; 
     $cgimport_IMEI2 = $cgimport['IMEI2']; 
     ?> 
     <tr> 




     <!-- ************** DISPLAYING DATA IN TABLE FROM mainreport **************** --> 
     <td style="text-align: center;"><?php echo $cgimport_modelName ;?></td> 
     <td style="text-align: center;"><?php echo $cgimport_importDate ;?></td> 
     <td style="text-align: center;"><?php echo $cgimport_IMEI1 ;?></td> 


     <!-- ************** FETCHING SALES DATA MADE BY CG TO DISTRIBUTOR **************** --> 
     <?php 

     $sql1 = "SELECT billMiti,invoiceDate,billno,price,nameOfParty,IMEINo FROM salesreport "; 
     $result1 = mysqli_query($con, $sql1); 
     while ($cgSalesReport = mysqli_fetch_assoc($result1)) { 
      $cgSalesReport_BillMiti = $cgSalesReport['billMiti']; 
      $cgSalesReport_invoiceDate = $cgSalesReport['invoiceDate']; 
      $cgSalesReport_billno = $cgSalesReport['billno']; 
      $cgSalesReport_price = $cgSalesReport['price']; 
      $cgSalesReport_distName = $cgSalesReport['nameOfParty']; 
      $cgSalesReport_IMEINo = $cgSalesReport['IMEINo']; 

      // echo $cgimport_IMEI1; 

      //****************************************** 
      //ERROR IN THIS IF 
      //****************************************** 
      if (($cgSalesReport_IMEINo == $cgimport['IMEI1']) || ($cgSalesReport_IMEINo == $cgimport['IMEI2'])) { 

      ?> 


      <!-- ************* DISPLAYING TABLE FROM salesreport *********************** --> 
      <td style="text-align: center;"><?php echo $cgSalesReport_BillMiti; ?></td> 
      <td style="text-align: center;"><?php echo $cgSalesReport_invoiceDate; ?></td> 
      <td style="text-align: center;"><?php echo $cgSalesReport_billno; ?></td> 
      <td style="text-align: center;"><?php echo $cgSalesReport_price; ?></td> 
      <?php 


      // ***************** FETCHING DATA FROM cdistributor **************************** 
      $sql2 = "SELECT rdCode,name FROM cdistributor "; 
      $result2 = mysqli_query($con, $sql2); 
      while ($cgDistributor = mysqli_fetch_assoc($result2)) { 
       $cgDistributor_rdCode = $cgDistributor['rdCode']; 
       $cgDistributor_name = $cgDistributor['name']; 



       if ($cgDistributor_name == $cgSalesReport_distName) { 
       ?> 
       <!-- **************** DISPLAYING TABLE FROM cdistributor ***************** --> 
       <td align='center'><?php echo $cgDistributor_rdCode ; ?></td> 
       <td align='center'><?php echo $cgDistributor_name ; ?></td> 
       <?php 
       } 
       else{ 
       ?> 
       <td style="text-align: center;">-</td> 
       <td style="text-align: center;">-</td> 
       <?php     
       } 
      } 
      // ************ END FETCHING cdistributor ******************* 
      } 
      // ************************* 
      // ERROR IN THIS ELSE 
      //************************* 
      else{ 
       ?> 
       <td style="text-align: center;">-</td> 
       <td style="text-align: center;">-</td> 
       <?php 
      } 
     } 
     // *************** END FETCHING salesreport *****************    

     ?> 

     <!-- ******************* FETCHING DISTRIBUTOR SALES DATA MADE BY DISTRIBUTOR TO RETAILER ****************** --> 
     <?php 

     $sql3 = "SELECT rinvoiceDate,rbillno,rPrice,rIMEINo,rnameOfParty,distname FROM rrdsalesreport"; 
     $result3 = mysqli_query($con, $sql3); 
     while ($cgDistributorSales = mysqli_fetch_assoc($result3)) { 
      $cgDistributorSales_rinvoiceDate = $cgDistributorSales['rinvoiceDate']; 
      $cgDistributorSales_rbillno = $cgDistributorSales['rbillno']; 
      $cgDistributorSales_rPrice = $cgDistributorSales['rPrice']; 
      $cgDistributorSales_rIMEINo = $cgDistributorSales['rIMEINo']; 
      $cgDistributorSales_rnameOfParty = $cgDistributorSales['rnameOfParty']; 
      $cgDistributorSales_distname = $cgDistributorSales['distname']; 

      if ($cgimport_IMEI1 == $cgDistributorSales_rIMEINo || $cgimport_IMEI2 == $cgDistributorSales_rIMEINo) { 

      ?> 


      <!-- ************* DISPLAYING TABLE FROM rrdsalesreport *********************** --> 
      <td style="text-align: center;"><?php echo $cgDistributorSales_rbillno; ?></td> 
      <td style="text-align: center;"><?php echo $cgDistributorSales_rinvoiceDate; ?></td> 
      <td style="text-align: center;"><?php echo $cgDistributorSales_rPrice; ?></td> 
      <?php 


      // ***************** FETCHING DATA FROM retailer **************************** 
      $sql4 = "SELECT rCode,rname,rd FROM retailer "; 
      $result4 = mysqli_query($con, $sql4); 
      while ($cgRetailer = mysqli_fetch_assoc($result4)) { 
       $cgRetailer_rCode = $cgRetailer['rCode']; 
       $cgRetailer_rname = $cgRetailer['rname']; 
       $cgRetailer_rd = $cgRetailer['rd']; 



       if ($cgRetailer_rname == $cgDistributorSales_rnameOfParty) { 
       ?> 
       <!-- **************** DISPLAYING TABLE FROM retailer ***************** --> 
       <td align='center'><?php echo $cgRetailer_rCode ; ?></td> 
       <td align='center'><?php echo $cgRetailer_rname ; ?></td> 
       <?php 
       } 
       else{ 
       ?> 
       <td style="text-align: center;">-</td> 
       <td style="text-align: center;">-</td> 
       <?php     
       } 
      } 
      // ************ END FETCHING retailer ******************* 
      }else{ 
      ?> 
       <td style="text-align: center;">-</td> 
       <td style="text-align: center;">-</td> 
       <td style="text-align: center;">-</td> 
       <td style="text-align: center;">-</td> 
       <td style="text-align: center;">-</td> 
      <?php 
      } 
     } 
     // *************** END FETCHING rrdsalesreport ***************** 
     ?> 

     <!-- ***************** FETCHING DATA FROM activereport ******************** --> 
     <?php 
     $sql5 = "SELECT aIMEI,dateOfActivation FROM activereport"; 
     $result5 = mysqli_query($con, $sql5); 
     while ($cgActivereport = mysqli_fetch_assoc($result5)) { 
      $cgActivereport_aIMEI = $cgActivereport['aIMEI']; 
      $cgActivereport_dateOfActivation = $cgActivereport['dateOfActivation']; 
      if ($cgimport_IMEI1 == $cgActivereport_aIMEI || $cgimport_IMEI2 == $cgActivereport_aIMEI) { 
      ?> 
      <td align='center'><?php echo $cgActivereport_dateOfActivation ; ?></td> 
      <?php 
      } 
     } 

     // ************* END OF FETCHING activereport *************** 

     ?> 

     </tr> 

     <?php 
    } //************ END FETCHING MAINREPORT*********************** 

    ?> 
+5

하나를 사용 ... 난 당신이 위의 같은 것을 원한다고 생각 코드 '오류'를 작성했다 /stackoverflow.com/questions/17946221/sql-join-and-different-types-of-joins) 변형이 여러 루프가있는 대신. – Script47

+0

어떤 경우에는 데이터가 테이블에 없을 수도 있고 나머지 데이터도 표시해야하기 때문에 JOIN을 사용할 수 없습니다. –

+2

table1 LEFT JOIN 테이블 2를 사용하여 테이블 1의 모든 결과와 table2의 일치하는 결과 만 얻을 수 있습니다. 테이블 1의 특정 레코드에 대해 테이블 ​​2에 데이터가 없으면 해당 행에 대해 "null"이 표시됩니다. –

답변

0
$sql = "Your First Query.."; 

       $result = mysql_query($sql); 

       $jsonData = array(); 

while ($array = mysql_fetch_assoc($result)) { 

         $follower_id=$array['to_follow_user_id'] 
         $SQL_ONE = "Your Second Query....."; 
          $result_one = mysql_query($SQL_ONE); 
          while ($array_one = mysql_fetch_assoc($result_one)) { 
           $jsonData[] = $array_one; 
          } 


       } 

을 발생하는 위치 은 내가 [`JOIN`] (HTTPS의

+0

* 다음과 같은 것을 원한다고 생각합니다. * - [아래] (https://www.google.co.uk/search?q=define+below&oq=define+below&gs_l=psy-ab.3..0l3j0i10k1. 4563.6646.0.6810.14.13.1.0.0.0.107.993.11j1.12.0 .... 0 ... 1.1.64.psy-ab.1.13.998 ... 0i67k1j0i131k1.0.-oGHYzKSFvM) 또는 [위] (https://www.google.co.uk/search?q=define+above&oq=define+above&aqs=chrome..69i57j0l5.1408j0j7&sourceid=chrome&ie=UTF-8)? 다운 유권자가 아닙니다. – Script47

+0

나는 @ Script47을 시도하고 대답을 대답 할 것이다. 나는 이것을 시도하지 않았다. –

+0

@ Script47 그리고 코드에 대한 설명을 해 주시겠습니까? ** JSON **에 대해 많이 알지 못합니다. 그래서 몇 가지 설명을하면이 부분에서 내가 무엇을하고 있는지 알 수있는 큰 도움이 될 것입니다. 암호. –