获取行数

时间:2014-04-22 08:47:53

标签: php mysql

我需要获取studentID的行数,然后在计数超过10时回显。

这是我到目前为止所写的内容。但似乎没有用。

$findID = ID1231275;
$gipct = mysql_query("SELECT COUNT(studentID) FROM classFees WHERE studentID = '".$findID."'");
if ($gipct>10) {
echo ("$gipct");
}

3 个答案:

答案 0 :(得分:2)

$searchID = 'ID1231275';
$gipct = mysql_query("SELECT COUNT(studentID) as students FROM classFees WHERE studentID = '$searchID'");
$row = mysql_fetch_object($gipct);
if ($row->students >10) {
echo $row->students;
}

顺便说一句,mysql_函数已弃用,可以/将在未来的php版本中删除,我建议你看看PDO语句或mysqli_函数

答案 1 :(得分:0)

如果您使用的是php> 5然后你必须使用mysqli而不是mysql类。然后试试这个:

$db = new mysqli('localhost','user','pass','database');
$searchID = 'ID1231275';
$stmt = $db->prepare("SELECT COUNT(studentID) FROM classFees WHERE studentID =? ");
$stmt->bind_param('s', $searchID);
$stmt->execute();
$stmt->bind_result($gipct);
$stmt->fetch();
if ($gipct > 10) {
 echo ($gipct);
}

答案 2 :(得分:0)

$gipct是一个mysql资源。因此,您必须使用函数mysql_num_rows来获取所有选定的行。

多数情况下你的情况不起作用,因为你的查询中有一个COUNT,所以你只得到一行。

在您的情况下,您必须先获取数据。

$gipct = mysql_query("SELECT COUNT(studentID) AS countout FROM classFees WHERE....");

$row = mysql_fetch_object($gpict);
if ($row->countout > 10) {
   echo ("$gipct");
}

mysql_num_rows

的方法
$gipct = mysql_query("SELECT * FROM classFees WHERE student...");

if (mysql_num_rows($row) > 10) {
   echo ("$gipct");
}

但是在这里你选择所有可能比第一个解决方案慢得多的记录。