免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7629 | 回复: 15
打印 上一主题 下一主题

mysql查询语句+count函数,为什么没有结果? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-17 16:09 |只看该作者 |倒序浏览
Hello All:

很奇怪的问题,一个简单的学生选课系统,表是选课表,记录学生选课情况,结构如下:

  1. mysql> describe selected;
  2. +-------------+-------------+------+-----+---------+-------+
  3. | Field       | Type        | Null | Key | Default | Extra |
  4. +-------------+-------------+------+-----+---------+-------+
  5. | Stu_name    | varchar(50) |      |     |         |       |
  6. | Stu_id      | varchar(50) |      | PRI |         |       |
  7. | Dept        | varchar(50) | YES  |     | NULL    |       |
  8. | Class       | varchar(50) | YES  |     | NULL    |       |
  9. | Major       | varchar(50) | YES  |     | NULL    |       |
  10. | Course_name | varchar(50) | YES  |     | NULL    |       |
  11. | Course_id   | varchar(50) |      | PRI |         |       |
  12. +-------------+-------------+------+-----+---------+-------+
复制代码


现在通过如下语句查询,每门课程的选择人数:
  1. $query = "Select count(*) as stu_num from selected where Course_id='id'";
复制代码

id是之前查询出的课程号,这个值经过打印,看到是正确的,并且表中有相应的记录。

现在问题是:如果在页面上查询的话,不能得到stu_num的值,而通过mysql>命令行下输入:
  1. mysql>"Select count(*) as stu_num from selected where Course_id='1'";
复制代码
就可以正确得到stu_num的值。[/code]

实在是想不通为什么,请各位帮忙看看,小弟拜谢!

[ 本帖最后由 NewCore 于 2009-2-17 16:10 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-02-17 21:09 |只看该作者
$result = mysql_query($query);

论坛徽章:
0
3 [报告]
发表于 2009-02-17 21:18 |只看该作者

回复 #2 hg70hg70 的帖子

什么意思?这个查询的结果是由stu_num返回的?加上那个有什么用么?

论坛徽章:
0
4 [报告]
发表于 2009-02-18 09:22 |只看该作者
难道是 :
$query = "Select count(*) as stu_num from selected where Course_id='id'"; 错了?
$query = "Select count(*) as stu_num from selected where Course_id='$id'";
???????检查检查

论坛徽章:
0
5 [报告]
发表于 2009-02-18 10:16 |只看该作者

回复 #4 shitou254 的帖子

实际中是这个样子的:

  1. $query = "Select count(*) as stu_num from selected where Course_id='$row[Course_id]'";
复制代码


其中$row[Course_id]是从课程表中查出来的,所有存在的课程编号。

我特别把$query打印出来了,应该是没有问题呀。

论坛徽章:
0
6 [报告]
发表于 2009-02-19 14:13 |只看该作者
小沈阳语录:为什么呢?这是为什么呢?

论坛徽章:
0
7 [报告]
发表于 2009-02-19 14:38 |只看该作者

  1. $query = "Select count(*) as stu_num from selected where Course_id='{$row['Course_id']}'";
  2. // or
  3. $query = "Select count(*) as stu_num from selected where Course_id=".$row['Course_id'];
复制代码

原因是数组在字符串里转义会不正常

论坛徽章:
0
8 [报告]
发表于 2009-02-19 14:40 |只看该作者
遇到这种问题调试起来很简单
echo $query;
看看哪错了

论坛徽章:
0
9 [报告]
发表于 2009-02-19 14:49 |只看该作者

回复 #8 kukat 的帖子

$query的信息我倒是打印了,但是对这个不是很熟,也许是出错了也没看出来。

我先试试。

[ 本帖最后由 NewCore 于 2009-2-19 14:52 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2009-02-19 15:02 |只看该作者
这里完整的代码如下:

  1. for($i=0;$i<$dd;$i++) {
  2.         $row = mysql_fetch_array($result);

  3.         /* Get student number of each course */
  4.         //$query = "Select count(*) as stu_num from selected where Course_id='$row[Course_id]'";
  5.         //$query = "Select count(*) as stu_num from selected where Course_id=".$row['Course_id'];
  6.         $query = "Select count(*) as stu_num from selected where Course_id='{$row['Course_id']}'";
  7.         $res = mysql_query($query) or die("Invalid query: "   .   mysql_error());
  8.         echo $query, "\n", $row['Course_id'], "\n", $stu_num, "\n", "xxx";

  9.         echo "<tr bgcolor=\"#CCFF99\"><td>".$row["Course_id"]."</td><td>".$row["Course_name"]." </td><td>".$row["Teacher_name"]. "</td><td>".$row["Course_time"]."</td><td>".$row["Course_place"]."</td><td>".$row["Credit"]."</td><td>".$stu_num."</td><td><a href=\"delete.php?courseid=".$row["Course_id"]."\">&sup3;·&Iuml;&ucirc;</a></td></tr>";
  10.     }
复制代码


我之前也用echo打印了,但是也没看出错误来呀。

修改过后在页面上打印内容如下:

  1. Select count(*) as stu_num from selected where Course_id='1' 1 xxx
  2. Select count(*) as stu_num from selected where Course_id='3' 3 xxx
  3. Select count(*) as stu_num from selected where Course_id='2' 2 xxx
复制代码


有点奇怪!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP