我需要获取studentID的行数,然后在计数超过10时回显。
这是我到目前为止所写的内容。但似乎没有用。
$findID = ID1231275;
$gipct = mysql_query("SELECT COUNT(studentID) FROM classFees WHERE studentID = '".$findID."'");
if ($gipct>10) {
echo ("$gipct");
}
答案 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");
}
但是在这里你选择所有可能比第一个解决方案慢得多的记录。