PHP與mySQL這對黃金搭檔配合的相當默契,但偶爾也會遇到一些小需求不知道該怎么做,例如今天要談到的:如何判斷sql語句查詢的結果集是否為空!
我們以查詢學生信息為例,來看看究竟如何實現我們的需求。
首先,來看看我們的數據表“student”中所存儲的數據是個什么樣子;
id stuname gender age grade class
1 張三 男 16 17 3
2 李四 男 15 18 2
3 王美麗 女 16 17 5
我們來看看sql查詢功能代碼,我們要將年齡為16歲的學生信息都查出來;
<?php
$sql = "select * from `student` where `age`='16';";
$rows = mysql_query($rs);
?>
<ul>
<?php
while($rows=mysql_fetch_array($rs)){
?>
<li>姓名:<?php echo $rows['stuname'];?></li>
<li>性別:<?php echo $rows['gender'];?></li>
<li>年齡:<?php echo $rows['age'];?></li>
<li>年級:<?php echo $rows['grade'];?></li>
<li>班級:<?php echo $rows['class'];?></li>
<?php
}
?>
</ul>
以上便是查詢功能,當結果集不為空時,一切正常,當數據集為空時,會得到一個空白的ul標簽,
作為使用者卻不知道為什么沒有得到數據,此時我們需要給用戶一個提示信息,那么我們就需要判斷這個結果集是否為空!
如何才能判斷結果集是否為空呢,有下面兩個方法:
<?php
//方法一 獲取select結果集的行數
$rows=mysql_query("select * from `student` where `age`='16';");
if (mysql_num_rows($rows) < 1){
echo '查詢無數據!';
}
//方法二 返回上一次操作受影響的行數
$rows=mysql_query("select * from `student` where `age`='16';");
if(!mysql_affected_rows()){
echo '查詢無數據!';
}
?>
知道了方法,那么把方法套到我們的代碼中看看效果吧
//方法一
<?php
$sql = "select * from `student` where `age`='16';";
$rows = mysql_query($rs);
?>
<ul>
<?php
if (mysql_num_rows($rs) < 1){
echo '查詢無數據!';
}else{
while($rows=mysql_fetch_array($rs)){
?>
<li>姓名:<?php echo $rows['stuname'];?></li>
<li>性別:<?php echo $rows['gender'];?></li>
<li>年齡:<?php echo $rows['age'];?></li>
<li>年級:<?php echo $rows['grade'];?></li>
<li>班級:<?php echo $rows['class'];?></li>
<?php
}
}
?>
</ul>
//方法二
<?php
$sql = "select * from `student` where `age`='16';";
$rows = mysql_query($rs);
?>
<ul>
<?php
if(mysql_affected_rows()){
while ($rows=mysql_fetch_assoc($rs)){
?>
<li>姓名:<?php echo $rows['stuname'];?></li>
<li>性別:<?php echo $rows['gender'];?></li>
<li>年齡:<?php echo $rows['age'];?></li>
<li>年級:<?php echo $rows['grade'];?></li>
<li>班級:<?php echo $rows['class'];?></li>
<?php
}
}else {
echo "查無數據!";
}
?>
</ul>
OK,大功告成,現在查不到數據的時候就會有提示了哦!
分類: Web design