返回php mvs的行数

返回php mvs的行数,php,sql,arrays,rowcount,Php,Sql,Arrays,Rowcount,我试图返回在html表上方的页面上找到的结果数。我是第一次使用mvc框架,所以对我来说这个过程是非常新的 我的查询工作正常并成功地显示了表格结果,我的问题[可能]是返回码的定位 我已包括我的代码以供参考 模型 看法 我在查看页面上收到错误 Warning: `Invalid argument supplied for foreach() ... on line 51` 及 第47行包含找到的记录 第51行包含foreach$this->books as$book{…} 非常感谢您的任何建议或帮

我试图返回在html表上方的页面上找到的结果数。我是第一次使用mvc框架,所以对我来说这个过程是非常新的

我的查询工作正常并成功地显示了表格结果,我的问题[可能]是返回码的定位

我已包括我的代码以供参考

模型

看法

我在查看页面上收到错误

Warning: `Invalid argument supplied for foreach() ... on line 51`

第47行包含找到的记录

第51行包含foreach$this->books as$book{…}


非常感谢您的任何建议或帮助。

如果您指定了框架,将对我们有很大帮助。老实说,我只在Zend中作为php框架工作过,但在那里,您必须将属性分配给您的视图:

   $this->view->property = $all_books; //or any other property
并在视图中检索它

  <?php echo $this->property; ?>
我发现很难相信您的MVC从视图调用函数action,在zend中它需要以特定的方式命名,因此使用返回。我可以告诉你一件事,你将变量发送到视图的方式是错误的,返回值一定不是正确的发送方式。如果没有你的框架,这是我唯一能帮助你的方法。此外,我会告诉你,实际回传两个变量的isset,你会发现我的理论是正确的,你没有正确地从控制器、操作或功能发送变量。删除这两行

$result = $sth->fetchAll(PDO::FETCH_ASSOC); // won't run when included
return count($result); // won't run when included
在你看来,改变

Found <?php echo count($result); ?> records

请注意,计数的最大值始终为15。如果要显示找到的结果的总数,应发出一个单独的select count*,不带limit子句。

数据如何从视图传递到模型以及从模型传递到视图?$result仅作为局部变量存在于categoryView方法中,在其他任何地方都不可用。在您看来,$this->books显然不是数组,这意味着$this不是您认为的对象,或者$this->books不包含db操作的结果。。。。并返回count$result;从模型。。。破坏函数$all_books从未通过。感谢您的评论,我应该如何补救这种情况?我很感谢你的帮助。我正在使用php pdo。我已经包括了渲染视图的控制器。当我包含$result或返回带有注释代码的更新问题时,我的查询不会运行。Thanks@johnny_s请参见更新,$results不在视图的范围内。
   $this->view->property = $all_books; //or any other property
  <?php echo $this->property; ?>
$result = $sth->fetchAll(PDO::FETCH_ASSOC); // won't run when included
return count($result); // won't run when included
Found <?php echo count($result); ?> records
Found <?php echo count($this->books); ?> records
$this->view->books = $categoryView_model->categoryView();