php - 从数据库填充下拉列表

标签 php mysql sql oop

我正在尝试使用数据库表中的条目填充下拉选择。
数据库表:

TABLE `events` (
    `event_id` INT(11) unsigned NOT NULL AUTO_INCREMENT,
    `event_title` VARCHAR(255) NOT NULL,
    `event_desc` TEXT,
    `event_location` VARCHAR(255) NOT NULL,
    `event_requirements` TEXT DEFAULT NULL,
    `event_date` DATETIME NOT NULL,
 PRIMARY KEY (`event_id`)

代码(MVC架构):
Controller

function index()
    {
        $overview_model = $this->loadModel('Events');
        $this->view->dog_types = $overview_model->getEventTypes();
        $this->view->render('events/index');
    }

型号

public function getEventTypes()
    {
        $sth = $this->db->prepare("SELECT event_id, event_title FROM events");
        $sth->execute();

        $events = array();

        foreach ($sth->fetchAll() as $event) {
            $events[$event->event_id] = new stdClass();
            $events[$event->event_id]->event_title = $event->event_title;
        }
        return $events;
    }

查看

    <select>
        <?php foreach ($this->events as $event) {
            echo "<option value='" .$event->event_title. "'>" .$event->event_title."</option>";
        }?>
    </select>

错误我收到:

Notice: Undefined property: View::$events

Warning: Invalid argument supplied for foreach()

我对这一切真的很陌生,并且非常乐意提供任何帮助!谢谢!!

最佳答案

这个错误非常明显。您还没有名为 $events 的属性。您填充了一个名为

的属性
$this->view->dog_types

在您看来,您将能够像这样访问该对象:

  <select>
        <?php foreach ($this->dog_types as $event) { //or $events as $event depending what you indexed as
            echo "<option value='" .$event->event_title. "'>" .$event->event_title."</option>";
        }?>
    </select>

关于php - 从数据库填充下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26629478/

相关文章:

php - 运行 Composer 返回 : "Could not open input file: composer.phar"

php - 根据邮政编码向用户显示相同结果的最佳方式是什么?

symfony2 中的 phpunit - 未执行任何测试

php - mysql:事务?插入和更新

mysql - 更新 SELECT 语句的结果,就好像它是一个 View ,并在 MySQL 中显示结果

php - 使用 AJAX/jQuery 刷新图像

MYSQL 等效于 MS-Access 函数 first() last()

PHP PDO 创建MySQL数据库和用户并授予权限

sql - MySQL - 将字段的默认值设置为字符串连接函数

sql - 将具有最后一个 ID 的关系数据插入 SQL Server 2008