여러 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***********************
?>
하나를 사용 ... 난 당신이 위의 같은 것을 원한다고 생각 코드 '오류'를 작성했다 /stackoverflow.com/questions/17946221/sql-join-and-different-types-of-joins) 변형이 여러 루프가있는 대신. – Script47
어떤 경우에는 데이터가 테이블에 없을 수도 있고 나머지 데이터도 표시해야하기 때문에 JOIN을 사용할 수 없습니다. –
table1 LEFT JOIN 테이블 2를 사용하여 테이블 1의 모든 결과와 table2의 일치하는 결과 만 얻을 수 있습니다. 테이블 1의 특정 레코드에 대해 테이블 2에 데이터가 없으면 해당 행에 대해 "null"이 표시됩니다. –