MVC简单的选择计数从db和显示解释

时间:2015-01-13 15:26:15

标签: php mysql

我第一次使用MVC并为个人开发开发库应用程序。我正在使用php登录found here。我是php和sql的新手,所以对任何业余编码道歉,我自学了php。

过去两周我一直在阅读,并试图了解如何完成最简单的任务。也许它是我正在使用的MVC,或者只是我无法弄明白。我发现自己将一大块代码从一个模型/视图/控制器复制到下一个以获得我想要的结果,但这并不理想,因为我想知道代码的作用或者我赢了。正在学习。

我一直在做大量的独立阅读和在线教程,但大多数都是针对CodeIgniter或CakePhp,因此语法不同。我知道,一旦我最终了解语法和逻辑,那么我就不会有任何问题。

我将使用一个简单的例子作为参考。希望有人能够为我阐明这一点并帮助我。

我今天一直在努力选择表格中的行数并在用户个人资料页面上显示为"您有这么多的收藏:x"

据我了解,我在我的模型中创建了favouriteTotal()的查询。然后我引用这是控制器并呈现视图?使用PDO连接到db。

login.php(型号)

class LoginModel
{
    public function favouriteTotal()
    {
        $query = $this->db->prepare("SELECT COUNT(*) FROM favourite");
        $query->execute();
        $count = $query->rowCount()       
    }
}

login.php(控制器)

class Login extends Controller
{
    function showProfile()
    {
        $login_model = $this->loadModel('Login');
        $login_model->favouriteTotal();
        $this->view->render('login/showprofile');
    }
}

showprofile.php(查看)

<div>
    Your have this number of favourites: <? NUMBER OF FAVS HERE ?>
</div>

1 个答案:

答案 0 :(得分:2)

这是一个关于它如何运作的一般答案...如果你想要一个具体的答案,请告诉我们你正在使用什么框架。

许多MVC应用程序使用ViewBag,&#39;容器&#39;各种各样,被传递到正在呈现的视图。

(更新下面的代码以反映使用的框架如何将数据传递到视图)

login.php(控制器)

class Login extends Controller
{
    function showProfile()
    {
        $login_model = $this->loadModel('Login');
        $this->view->count = $login_model->favouriteTotal();
        $this->view->render('login/showprofile');
    }
}

showprofile.php(查看)

<div>
    Your have this number of favourites: <?php echo $this->count; ?>
</div>

因此,在控制器中,您将$login_model->favouriteTotal()的值分配给$this->view->count。然后渲染视图。在该视图中,您调用$this->count来访问先前发送的数据。