首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP/MySQL Count()问题

PHP/MySQL Count()问题
EN

Stack Overflow用户
提问于 2011-08-29 05:57:13
回答 3查看 371关注 0票数 1

我正在尝试为一个使用PHP和MySQL的客户端创建一个类注册系统。我已经建立了数据库和表,这一部分工作正常,然而,客户要求在注册时,如果有3名或更少的学生注册,警告课程可能不会运行。

我尝试使用count()函数,并从cookie传递一个动态变量,该变量是从注册PHP脚本中设置的。然而,我遇到了一个障碍。我似乎不能让count()函数实际计算行数。下面是我的select语句。任何帮助都将不胜感激。

代码语言:javascript
复制
$class = $_COOKIE["class"];

$min_check = "SELECT class_list, COUNT(class_list) as count 
              FROM T_Student WHERE class_list = '$class' 
              GROUP BY class_list 
              HAVING count < 20";
$result = mysql_query($min_check);
$count = mysql_num_rows($result);

if ($count < 4)
{
  echo "IF THERE ARE 3 OR FEWER PEOPLE SIGNED UP FOR THIS CLASS, IT MAY NOT RUN.\n";
  echo "THERE ARE CURRENTLY " . $count . " PEOPLE SIGNED UP.\n";
}
else if ($count > 4)
{
  echo "There are currently " . $count . " people signed up for this class.";
}
?>
EN

回答 3

Stack Overflow用户

发布于 2011-08-29 06:03:44

您的class_list查询将返回一个SQL值列表,以及注册人数少于20人的每个特定实例的计数。

代码语言:javascript
复制
$count = mysql_num_rows($result);

...is获取结果集中返回的记录数,而不是别名count值,这就是为什么您看不到预期输出的原因。你需要读入你的结果集来获得值:

代码语言:javascript
复制
while ($row = mysql_fetch_assoc($result)) {
  $count = $row['count'];

  if($count < 4) { ... }
}
票数 5
EN

Stack Overflow用户

发布于 2011-08-29 06:04:18

所需的计数将在查询的行中返回。mysql_num_rows将计算返回的行数,这不是您想要的结果。改用这个。

代码语言:javascript
复制
$result = mysql_query($min_check);
$count = mysql_fetch_row($result);
$count = $count[0];
票数 0
EN

Stack Overflow用户

发布于 2011-08-29 06:07:37

乍一看,HAVING count < 20是不必要的。

您使用MySQL-count-function,但从未检索到它的值!?使用:

代码语言:javascript
复制
$firstRow = mysql_fetch_row($result);
$count = $firstRow[1]; // 1 indicates the second column (0 being the first)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7224240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档