Php 为什么我的选择框生成器不显示表中的所有选项?
我正在制作一个选择框生成器called ListGenerator,它需要从名为categories的表中获取选项名称,并将它们添加到选择框中。数据库也从允许用户输入要添加到选择框的新选项的表单更新 目前,生成器只接受最后输入的名称并将其显示在选择框中。我相信生成器直接从表单而不是查询中获取结果?下面是将表单中的数据插入到表中的代码,以及应该从表中选择所有内容并将其放入选择框中的查询代码Php 为什么我的选择框生成器不显示表中的所有选项?,php,mysql,Php,Mysql,我正在制作一个选择框生成器called ListGenerator,它需要从名为categories的表中获取选项名称,并将它们添加到选择框中。数据库也从允许用户输入要添加到选择框的新选项的表单更新 目前,生成器只接受最后输入的名称并将其显示在选择框中。我相信生成器直接从表单而不是查询中获取结果?下面是将表单中的数据插入到表中的代码,以及应该从表中选择所有内容并将其放入选择框中的查询代码 if(isset($_POST['name'])) { $result= $pdo->prep
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 );
如果没有看到ListGenerator Classis中的代码,没有人能帮上忙。我真的不知道ListGenerator是如何工作的,但是它能够从categories表中猜出标识符似乎很奇怪。第二,我真的不明白你的问题是什么。我看不到结果集正在被提取任何地方更新的问题,以包括代码仍然没有实际提取结果集的外观的东西这实际上是工作,在修复了一个小的语法错误!非常感谢。好吧,如果它有效的话——接受这个答案,这样将来其他人也会发现这是一个解决方案?