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,大功告成,现在查不到数据的时候就会有提示了哦!

php如何判断SQL语句的查询结果是否为空?的更多相关文章

  1. mysql 常用 sql 语句 - 快速查询

    Mysql 常用 sql 语句 - 快速查询 1.mysql 基础 1.1 mysql 交互         1.1.1 mysql 连接             mysql.exe -hPup    ...

  2. SQL语句之查询(SELECT)

    目录 SQL语句之查询(SELECT) 简单查询 限定查询 模糊查询 排序查询 多表查询 SQL语句之查询(SELECT) SQL是用于访问和处理数据库的标准计算机语言: 中文:结构化查询语言:英文全 ...

  3. SQL语句在查询分析器中可以执行,代码中不能执行

    问题:SQL语句在查询分析器中可以执行,代码中不能执行 解答:sql中包含数据库的关键字,将关键字用[]括起来,可以解决. 后记:建数据库的时候尽量避免使用关键字. 例子: sql.Format(&q ...

  4. 如何在 Linux 上用 SQL 语句来查询 Apache 日志

    Linux 有一个显著的特点,在正常情况下,你可以通过日志分析系统日志来了解你的系统中发生了什么,或正在发生什么.的确,系统日志是系统管理员在解决系统和应用问题时最需要的第一手资源.我们将在这篇文章中 ...

  5. 在Hibernate中使用HibernateTemplate来进行包含sql语句的查询

    /**     * 使用sql语句进行查询操作     * @param sql     * @return     */    public List queryWithSql(final Stri ...

  6. Sql语句之查询所有学生所有科目分数及总分

    昨天练Sql语句,数据库建了四个表分别是,学生表,课程表,成绩表以及教师表(教师表不在讨论范围),突然想到以前高中时代老师手上的那张成绩表,然后我就寻思着能不能用Sql语句把表打印出来,以下是我的思考 ...

  7. Python与开源GIS:在OGR中使用SQL语句进行查询

    摘要: 属性选择与空间选择都可以看作是OGR内置的选择功能,这两种功能可以解决大部分实际中的问题.但是也有这种时候,就是进行查询时的条件比较复杂.针对这种情况,OGR也提供了更加灵活的解决方案:支持使 ...

  8. SQL 语句在查询分析器执行很快,程序 Dapper 参数化查询就很慢(parameter-sniffing)

    这个问题困扰我好长时间了,使用SQLSERVER 事务探查器找到执行超时的SQL语句,参数查询都是通过执行exe sp_executesql 的存储过程调用,因为它能够分析并缓存查询计划,从而优化查询 ...

  9. [Beego模型] 四、使用SQL语句进行查询

    [Beego模型] 一.ORM 使用方法 [Beego模型] 二.CRUD 操作 [Beego模型] 三.高级查询 [Beego模型] 四.使用SQL语句进行查询 [Beego模型] 五.构造查询 [ ...

随机推荐

  1. oc39-- 类的内存存储

    虚线是isa的指向,实线是继承关系. // // main.m // 类的本质 #import <Foundation/Foundation.h> #import "Person ...

  2. SQL Server 2005数据库定期备份(非常详细)与 SQL Server 2005数据库备份定期清理

     SQL Server 2005数据库定期备份 分类: SQL Server 20052011-01-06 16:25 3320人阅读 评论(1) 收藏 举报 sql server数据库sqlserv ...

  3. nyoj--990--蚂蚁感冒(模拟)(思维题)

    蚂蚁感冒 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 长100厘米的细长直杆子上有n只蚂蚁.它们的头有的朝左,有的朝右. 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/ ...

  4. python Paramiko 模块远程管理主机

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- import paramiko import os, stat import sys import ope ...

  5. XHprof 使用 (转)

    原文地址:http://blog.csdn.net/maitiandaozi/article/details/8896293 XHProf是facebook开源出来的一个php轻量级的性能分析工具,跟 ...

  6. curl强制下载文件

    <?phpfunction download_remote_file_with_curl($file_url, $save_to) { $ch = curl_init(); curl_setop ...

  7. HTTPS 为什么更安全,先看这些

    HTTPS 是建立在密码学基础之上的一种安全通信协议,严格来说是基于 HTTP 协议和 SSL/TLS 的组合.理解 HTTPS 之前有必要弄清楚一些密码学的相关基础概念,比如:明文.密文.密码.密钥 ...

  8. VC常用代码之创建进程

    作者:朱金灿 来源:http://blog.csdn.net/clever101 创建进程是编程开发的常用操作.Windows中的创建进程采用API函数CreateProcess实现.下面是一个使用例 ...

  9. Css小动画

    html页面: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF ...

  10. 01--Java IO基础

    一.java.io包概览 Java IO包主要可以分为如下4类: 基于字节操作的I/O接口:InputStream和OutputStream. 基于字符操作的I/O接口:Writer和Reader 基 ...