2017-09-28 19 views
1

何らかの理由で、データベースが選択された範囲でクエリを実行しても、テーブルヘッダーとフッターが表示されているときに、「結果が見つかりません」というエラーメッセージが表示されません。レコードが見つからないときにメッセージが表示されない

$result = mysqli_query($con,"SELECT * FROM tblRecords WHERE DATE(RecDate) = CURDATE() - INTERVAL 1 DAY ORDER BY RecDate DESC, RecTime DESC"); 

<?php 

if (!$result) { echo("No results found for the selected view"); 
      } else ?> 
      <table id="results"> 
<tr> 
<th>Rec#</th> 
<th>Date</th> 
<th>Time</th> 
<th>Reading</th> 
</tr> 
<?php ; 
while($row = mysqli_fetch_array($result)) 
?> 
<tr> 

<td><?php echo($row['RecID']);?></td> 
<td><?php echo(date("d/m/Y", strtotime($row['RecDate'])));?></td> 
<td><?php echo(date("g:i A", strtotime($row['RecTime'])));?></td> 
<td><?php echo($row['RecReading'] . $row['RecMeasure']);?></td> 
</tr> 
<?php 
} 
?> 
<tr> 
<td class="footer" colspan="4">- end of report -</td></tr> 
</table> 
<?php 
mysqli_close($con); 
?> 

理論的には非常に助かりますが、これはうまくいくはずです...それでいいでしょうか? :-)

+0

内の行の数を確認するために、この条件を使用することができます'$ result'をどのように作成しているのかを確認してください –

+0

True @PatrickQ ...原点の表示を更新しました – cloudseeker

答えて

1

あなたはそれはおそらくに参考になるクエリ

$result = mysqli_query($con,"SELECT * FROM tblRecords WHERE DATE(RecDate) = CURDATE() - INTERVAL 1 DAY ORDER BY RecDate DESC, RecTime DESC"); 

<?php 

if (mysqli_num_rows($result) === 0) { 
    echo("No results found for the selected view"); 
} else {?> 
<table id="results"> 
<tr> 
<th>Rec#</th> 
<th>Date</th> 
<th>Time</th> 
<th>Reading</th> 
</tr> 
<?php ; 
while($row = mysqli_fetch_array($result)) 
?> 
<tr> 

<td><?php echo($row['RecID']);?></td> 
<td><?php echo(date("d/m/Y", strtotime($row['RecDate'])));?></td> 
<td><?php echo(date("g:i A", strtotime($row['RecTime'])));?></td> 
<td><?php echo($row['RecReading'] . $row['RecMeasure']);?></td> 
</tr> 
<?php } ?> 
<tr> 
<td class="footer" colspan="4">- end of report -</td></tr> 
</table> 
<?php 
mysqli_close($con); 
?> 
+0

これには、vs 'if(mysqli_num_rows($ result)<1){エコー(選択されたビューでは結果が見つかりませんでした) ')というメリットとデメリットがありますか?同じこと? :-) – cloudseeker

+0

どちらも同じ結果ではないので、負の値にはならず、最小値は常に0です。 –

+0

説明をありがとう:-) – cloudseeker

3

$resultはおそらく結果セットですが、空である可能性があります。まだ!$resultは真ではありません。 mysql_queryのドキュメント:

返信時にFALSEが返されます。成功するにはSELECTSHOWDESCRIBEまたはEXPLAINクエリmysqli_query()mysqli_resultオブジェクトを返します。他の成功したクエリの場合、mysqli_query()TRUEを返します。 (ソース:http://php.net/mysqli_query

あなたがmysqli_num_rows(または似たような)に確認してください

+0

if文if(mysqli_num_rows($ result)<1){echo( "選択したビューで結果が見つかりません"); :-) Thanks @ jakumi – cloudseeker

関連する問題