2017-09-25 117 views
1

我試圖從多個SQL表(如果他們有匹配的IMEI)獲取數據並在html表中顯示它們。如果IMEI不匹配,我希望它在該框中顯示' - '。while while循環內從數據庫中獲取數據

爲此我顯示來自表A(導入)的數據,然後嘗試匹配IMEI。當我這樣做時,我使用其他來定義條件,並且在if和else中發生主要問題。在執行代碼時,它將執行else部分後面的if部分,但不遵循條件。

例如:在這裏下面

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 **所以,如果你提供了一些解釋,這將是很大的幫助,讓我知道我會在這做什麼碼。 –