php - 如何在 PHP 中设计一个对象

标签 php mysql model-view-controller oop class

我可以从概念上理解这一点,但我无法确定正确的方法。

具体而言,需要执行以下操作的对象...

class Question {
  var $text;
  var $filters = array();
  var $banners = arrya(); //But this has to be within $filter somehow...
  ... //all getter and setter functions
}

现在我要查询数据库并返回一堆数据,比如 4 列。

QuestionText | Filter | Banner | Value

我想最终得到一个看起来像...的对象

Object
  Questions
   ->Question 1
     ->Text = Question One
     ->Filters
        ->Filter1
           ->Name = Ontario
           Banners
             Banner 1
              ->Name = Male
              ->Value = 20
             Banner 2
              ->Name = Famales
              ->Value = 20
        ->Filter2
           ->Name = Quebec
           Banners
           Banners
             Banner 1
              ->Name = Male
              ->Value = 20
             Banner 2
              ->Name = Famales
              ->Value = 20
   ->Question 2
     ->Text = Question Two
     ->Filters
     ......
     .....
     ....
     ...

因为我只能逐行读取数据库,所以我需要找到一种方法来在问题/过滤器组合中添加每个新的横幅和值。最后我想把它吐出来作为一个表格,其中每个横幅都是一列。

最佳答案

首先,你需要三个类

class Question {
   var $text;
   var $filters;
}

class Filter {
   var $name;
   var $banners;
}

class Banner {
   var $name;
   var $value;
}

然后您将开始创建您的问题并向其添加过滤器和横幅,如下所示:

$questions = array();
$x = 0;
$result = mysql_query("SELECT * FROM `questions`");
while ($obj = mysql_fetch_object($result)) {
    $questions[$x] = new Question();
    $questions[$x]->text = $obj->text;
    $result2 = mysql_query("SELECT * FROM `filters` WHERE `question` = {$obj->id}");
    $questions[$x]->filters = array();
    $y = 0;
    while ($obj2 = mysql_fetch_object($result2)) {
        $questions[$x]->filters[$y] = new Filter();
        ...
        // and so on
        ...
        $y++;
    }
    $x++;
}

希望对您有所帮助。

关于php - 如何在 PHP 中设计一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9081675/

相关文章:

php - 我应该合并我的创建和更新 Controller 吗?

c++ - 使用 MVC 模式避免多人游戏和重播中的同步问题的提示

asp.net-mvc - MVC 3 - Action 链接

php - 当在地址栏中输入路径时,浏览器会打开图像,但不会将其显示为背景图像。为什么?

php - 有没有办法告诉 curl 不使用缓存

php - 如何在数据库中的文本中显示 html 标签

php - laravel hasMany 没有 id

mysql - 如何使用ActiveRecord的 "where"在数据库中搜索数组

php - mySQL 查询被搞乱了

MySQL查询 - 在现有数据之前,之后添加字符串