【发布时间】:2014-12-12 15:37:35
【问题描述】:
我是 php 和 MySQL 的新手。我有一个用这个 SQL 构建的表
CREATE TABLE classs
(sid INT(11) NOT NULL,
cid INT(11) NOT NULL,
lid INT(11) NOT NULL,
date DATE NOT NULL,
UNIQUE (sid, cid,lid,date));
我的数据库输入是
sid || cid|| lid date (ALL DATE IS DIFFERENT with in case of same ID)
==================================
2001 || 1001 || 8
2001 || 1001 || 8
2002 || 1001 || 8
2003 || 1001 || 8
2003 || 1001 || 8
==================================
在这里,我需要使用php构建一个代码来显示这样的结果
2001 2
2002 1
2003 2
我在 view.php 上使用此代码
<?php
require_once('core/init.php');
$con=mysqli_connect("localhost","root","root","studentattendancesystem");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql="select *,count(sid) from classs group by sid";
$result = $con->query($sql);
if ($result->num_rows > 0)
{
while($row = $result->fetch_assoc())
{
$rowcount=mysqli_num_rows($result);
$sid = $row["sid"];
echo $sid, " ", $rowcount," ","<br>";
}
}
else
{
echo 'Failed';
}
但我的输出是
2001 3 //should be 2
2002 3 //should be 1
2003 3 //should be 2
我错过了什么?
【问题讨论】:
-
GROUP BY什么?你在那里遗漏了一些东西。在学习 MySQL 时,您应该始终在浏览器选项卡中打开 the documentation,任何时候您对语句的工作原理感到好奇,请查看相关文档。 -
按学生证分组,先生。所以,如果学生 id 出现两次,它将计为 2。但我的代码给了我错误的答案:'(
-
@xNour 这不是它在您的代码中所说的。也不需要形式,尤其是不需要那种尴尬的性别差异。
-
“但我的输出是(代码)” - 那么,预期的输出是什么?
-
欢迎来到 StackOverflow。我们曾经都是初学者。唯一愚蠢的问题是未提出的问题。这里的目的是帮助您,并建立一个庞大的问题和答案数据库。因此,你的祈求是不必要的。我会把它们编辑掉。