Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 计算行数并回显结果_Php_Mysql_Pdo - Fatal编程技术网

Php 计算行数并回显结果

Php 计算行数并回显结果,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("

我试图做一个行计数,我想数一行(numer),如果有超过1行具有相同的数字,那么echo。但无论我的表格中有多少行,它只返回0

      $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";
}