php - 为什么我的选择框生成器不显示表中的所有选项?

标签 php mysql

我正在制作一个选择框生成器(称为 ListGenerator),它需要从名为类别的表中获取选项名称并将它们添加到选择框。数据库还从一个表单进行更新,该表单允许用户输入要添加到选择框中的新选项。

目前,生成器仅采用最后输入的名称并将其显示在选择框中。我相信生成器直接从表单而不是查询获取结果?下面是将数据从表单插入到表中的代码以及应该从表中选择所有内容并将其放入选择框中的查询。

if(isset($_POST['name'])) {
    $result= $pdo->prepare('INSERT INTO categories (name) VALUES(:name)');
    unset($_POST['submit']);
    $result->execute($_POST);
}

$ListGenerator =new ListGenerator();
$categoryresults = $pdo->query('SELECT * FROM categories'); 

foreach ($categoryresults as $row) {
    $ListGenerator->setList([$row['name']]);
} 

echo $ListGenerator->getHTML()

ListGenerator 的代码如下,当将固定字符串输入到上面代码中的 ->setList 函数时,效果很好:

<?php   
        class makelist{
        public $list;
        }





        class ListGenerator {
        public $makelist = [];

            public function setlist($list){
                $this->makelist = $list;
            }

            public function getHTML(){
                $result = '<select name="category">';



                foreach ($this->makelist as $list) {
                $result = $result . '<option>' . $list . '</option>';
                }




                $result =$result . '</select>';

                return $result;
            }

        }

            ?>

最佳答案

未测试,但我认为它应该获取类似这样的结果?

$categoryresults = $pdo->query('SELECT * FROM categories');
$listitems=array();

while( $rs=$categoryresults->fetch( PDO::FETCH_OBJ ) ){
    $listitems[]=$rs->name
}
$ListGenerator->setList( $listitems );

关于php - 为什么我的选择框生成器不显示表中的所有选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34395227/

相关文章:

MySQL 空间查询查找所有达到设定点的行

php - 查询将列值设置为 0,而它应该是 10

mysql - 是否可以更有效地获得 count(*) 和 * ?

MySQL utf8_general 不能存储汉字?

mysql - 创建、填充和使用 Docker 卷

php - 在 WordPress 数据库上运行查询并根据登录用户的自定义元返回值

php - Symfony2 - 动态角色管理

php - IE 不会从 iframe 启动 session ?

php - 使用php获取两个时间/日期之间的差异?

php - 从$ json打印youtube元数据