Php 计算行数并回显结果
我试图做一个行计数,我想数一行(numer),如果有超过1行具有相同的数字,那么echo。但无论我的表格中有多少行,它只返回0Php 计算行数并回显结果,php,mysql,pdo,Php,Mysql,Pdo,我试图做一个行计数,我想数一行(numer),如果有超过1行具有相同的数字,那么echo。但无论我的表格中有多少行,它只返回0 $nummer = $_GET['nummer']; $pdo = Database::connect(); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $result = $pdo->prepare("
$nummer = $_GET['nummer'];
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$result = $pdo->prepare("select count(*) from rum where nummer=:n");
$result->bindParam(':n', $nummer, PDO::PARAM_INT);
$result->execute();
$rows = $result->fetchAll;
if(count($rows) >1) {
echo "1";}
else {
echo "0";
}
以下声明
$result = $pdo->prepare("select count(*) from rum where nummer=:n");
将始终返回一行计数编号,这样做
$rows = $result->fetchAll;
将始终返回一个
你可以照我说的做
$result = $pdo->prepare("select count(*) as tot from rum where nummer=:n");
....
....
$rows = $result->fetchAll();
if($rows["tot"] > 0 ){
echo 'something'
}else{
echo 'something else'
}
看起来你犯了两个错误 第一个:如果您正在查询
COUNT(*)
,那么您将得到许多行。例如:返回的字段名为COUNT(*)
,其中一行包含找到的行数
如果你更换
$result = $pdo->prepare("select count(*) from rum where nummer=:n");
与
第二个:
替换
与
fetchAll()
不是属性,而是方法
另一种方法是查询,但将字段(MySQL命名为
关键字)并调用$rows=$result->fetch()代码>之后,检查$rows->fieldName
找到的行数。使用。它对于“一列”结果集很有用(这些结果集通常是由诸如SELECT COUNT(…)FROM…
)之类的查询生成的)。例如:
$nummer = isset($_GET['nummer']) ? $_GET['nummer'] : null;
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo->prepare('SELECT COUNT(*) FROM rum WHERE (nummer = :n)');
$stmt->bindParam(':n', $nummer, PDO::PARAM_INT);
$stmt->execute();
$rows = $stmt->fetchColumn();
echo $rows > 1 ? "1" : "0";
只需使用fetch()
而不是fetchAll()
您正在使用$rows=$result->fetchAll代码>缺少括号:$rows=$result->fetchAll()代码>谢谢你的回答,我很抱歉我不能放弃投票,我需要更多的声誉谢谢你的回答,我很抱歉我不能放弃投票,我需要更多的声誉谢谢你的回答,我很抱歉我不能放弃投票,我需要更多的声誉
$rows = $result->fetchAll;
$rows = $result->fetchAll();
$nummer = isset($_GET['nummer']) ? $_GET['nummer'] : null;
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo->prepare('SELECT COUNT(*) FROM rum WHERE (nummer = :n)');
$stmt->bindParam(':n', $nummer, PDO::PARAM_INT);
$stmt->execute();
$rows = $stmt->fetchColumn();
echo $rows > 1 ? "1" : "0";
$rows = $result->fetch();
if($rows[0]) >1) {
echo "1";
} else {
echo "0";
}