2017-12-29 32 views
0

データベースの結果がないときに何も返さない方法を知っていますか?結果がある場合はうまく表示されますが、結果がない場合はこれが発生します。私は、データが提出されたときに結果を示すために画像を添付しました! 条件が結果と一致しない場合は、何も表示しないでください。データベースからの出力がないときに何も返さない方法

ご協力いただきありがとうございます。

Click here for an image of my result

if(isset($_POST['submit'])){ 
$rap=$_POST['AtRap']; 




$percent = (15/100); 
$diff = $percent * $rap ; 
$a= $rap - $diff; 
$b= $rap + $diff; 
$query = mysqli_query($con,"SELECT Max(Shape), Max(Clarity), Max(Colour), Max(Carat), Max(RapNinety), Max(AtRap) FROM Rapaport WHERE (SELECT AtRap BETWEEN '$a' AND '$b') AND (Colour='J' and Clarity='VS2' and Shape='Round') LIMIT 1 ") ; 

$query2 = mysqli_query($con,"SELECT Max(Shape), Max(Clarity), Max(Colour), Max(Carat), Max(RapNinety), Max(AtRap) FROM Rapaport WHERE (SELECT AtRap BETWEEN '$a' AND '$b') AND (Colour='G' and Clarity='VS1' and Shape='Round') LIMIT 1 ") ; 

$query3 = mysqli_query($con,"SELECT Max(Shape), Max(Clarity), Max(Colour), Max(Carat), Max(RapNinety), Max(AtRap) FROM Rapaport WHERE (SELECT AtRap BETWEEN '$a' AND '$b') AND (Colour='F' and Clarity='VVS2' and Shape='Round') LIMIT 1") ; 

$query4 = mysqli_query($con,"SELECT Max(Shape), Max(Clarity), Max(Colour), Max(Carat), Max(RapNinety), Max(AtRap) FROM Rapaport WHERE (SELECT AtRap BETWEEN '$a' AND '$b') AND (Colour='D' and Clarity='VVS1' and Shape='Round') LIMIT 1") ; 






$count4 = mysqli_num_fields($query4); 
if($count4 == 0){ 
    echo "<script type='text/javascript'>alert('No Results')</script>"; 
}else{ 
    while($row4 = mysqli_fetch_array($query4)) { 
     $shape = $row4['Max(Shape)']; 
     $clarity = $row4['Max(Clarity)']; 
     $colour = $row4['Max(Colour)']; 
     $carat = $row4['Max(Carat)']; 
     $rap90 = $row4['Max(RapNinety)']; 
     $atrap = $row4['Max(AtRap)']; 

     $output .= " <br /><br />Shape: <b>$shape</b> &nbsp;&nbsp; Clarity: $clarity &nbsp;&nbsp; Colour: $colour &nbsp;&nbsp; Carat: &nbsp;$carat <br /><br /> Price Quote: <br /><br /> <b>$$rap90 - $$atrap</b> (in SGD)<br /><br /> "; 
    } 

} 

$count3 = mysqli_num_fields($query3); 
if($count3 == 0){ 
    echo "<script type='text/javascript'>alert('No Results')</script>"; 
}else{  

    while($row3 = mysqli_fetch_array($query3)) { 
     $shape = $row3['Max(Shape)']; 
     $clarity = $row3['Max(Clarity)']; 
     $colour = $row3['Max(Colour)']; 
     $carat = $row3['Max(Carat)']; 
     $rap90 = $row3['Max(RapNinety)']; 
     $atrap = $row3['Max(AtRap)']; 

     $output .= " <br /><br />Shape: <b>$shape</b> &nbsp;&nbsp; Clarity: $clarity &nbsp;&nbsp; Colour: $colour &nbsp;&nbsp; Carat: &nbsp;$carat <br /><br /> Price Quote: <br /><br /> <b>$$rap90 - $$atrap</b> (in SGD)<br /><br /> "; 
     } 

} 




$count2 = mysqli_num_fields($query2); 
if($count2 == 0){ 
    echo "<script type='text/javascript'>alert('No Results')</script>"; 
}else{ 

    while($row2 = mysqli_fetch_array($query2)) { 
     $shape = $row2['Max(Shape)']; 
     $clarity = $row2['Max(Clarity)']; 
     $colour = $row2['Max(Colour)']; 
     $carat = $row2['Max(Carat)']; 
     $rap90 = $row2['Max(RapNinety)']; 
     $atrap = $row2['Max(AtRap)']; 


     $output .= " <br /><br />Shape: <b>$shape</b> &nbsp;&nbsp; Clarity: $clarity &nbsp;&nbsp; Colour: $colour &nbsp;&nbsp; Carat: &nbsp;$carat <br /><br /> Price Quote: <br /><br /> <b>$$rap90 - $$atrap</b> (in SGD)<br /><br /> "; 
    } 

} 

$count = mysqli_num_fields($query); 
if($count == 0){ 
    echo "<script type='text/javascript'>alert('No Results')</script>"; 

}else{ 
    while($row = mysqli_fetch_array($query)) { 
     $shape = $row['Max(Shape)']; 
     $clarity = $row['Max(Clarity)']; 
     $colour = $row['Max(Colour)']; 
     $carat = $row['Max(Carat)']; 
     $rap90 = $row['Max(RapNinety)']; 
     $atrap = $row['Max(AtRap)']; 

     $output .= " <br /><br />Shape: <b>$shape</b> &nbsp;&nbsp; Clarity: $clarity &nbsp;&nbsp; Colour: $colour &nbsp;&nbsp; Carat: &nbsp;$carat <br /><br /> Price Quote: <br /><br /> <b>$$rap90 - $$atrap</b> (in SGD)<br /><br /> "; 
    } 


    } 
} 

答えて

0

あなたはmysqli_num_fieldsを使用して列の数を取得しています。

の番号を取得するには、mysqli_num_rowsを使用してください。

+0

私は何も表示されなかったので何も表示されなかったので、誤解をおかけして申し訳ありませんでした! –

0

テーブルが空であっても結果のカラム数を返すmysqli_num_fieldsを使用しています。代わりに、出力の行数を返すmysqli_num_rowsを使用してください。

例:テーブルに5列あり、内部にデータがない場合。

mysqli_num_fields()5.

mysqli_num_rowsを(返す)あなたがそのような出力を得ている理由です0

を返します。

ここでは、結果がない場合、$ countはゼロになり、コードのif部分を実行します。データがあればelse部分を実行します。

コードのif ... elseにこのコードを使用してみてください。

$count = mysqli_num_rows($query); 
if($count == 0){ 
    echo "<script type='text/javascript'>alert('No Results')</script>"; 

}else{ 
    //Rest of code 
} 
関連する問題