Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从MySQL获取选择选项。_Php_Html - Fatal编程技术网

Php 从MySQL获取选择选项。

Php 从MySQL获取选择选项。,php,html,Php,Html,我试图做的是从MYSQL查询结果填充一个HTML select 有两个文件,这是Food.php: public function selectBrand() { // creating a database connection $this->db_connection = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME); $query = $this->db_connection->query("

我试图做的是从MYSQL查询结果填充一个HTML select

有两个文件,这是Food.php:

public function selectBrand()
{
    // creating a database connection
        $this->db_connection = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
    $query = $this->db_connection->query("SELECT DISTINCT brand_food FROM food;");
    $result_row = $query->fetch_object();
    echo $result_row->total;
}
这是products.php:

<?php
// include the configs / constants for the database connection
require_once("model/db.php");
require_once("model/Food.php");
$brand = new Food();?>    

<div class="panel-body">    
<!-- Filter -->
<center>
    <form method="post" action="index.php" name="filter_form"> 
        <div class="form-group">
            <div class="input-group">
            <span class="input-group-addon" style="box-shadow: 0 0 1px 1px darkgray;"><strong>Brand</strong></span>
            <select id="filter_brand" class="form-control" name="brand" style="box-shadow: 0 0 1px 1px darkgray;"  required >
            <?php
            foreach($brand as $brand->selectBrand()){
            ?>
            <option value="<?php echo $brand ?>" ><?php echo $brand ?></option>
            <?php } ?>
            </select>
            </div>
        </div>
        <input type="submit"  name="Filter" value="Filter" class="btn btn-block btn-default"/>
    </form>
</center>
<!-- /Filter -->    

品牌
这应该行得通

public function selectBrand()
{
        // creating a database connection
        $this->db_connection = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
        $query = $this->db_connection->query("SELECT DISTINCT brand_food FROM food;");
        $result_row = $query->fetch_object();
        return $result_row->brand_food;
}

<?php foreach($brand->selectBrand() as $brand){ ?>
     <option value="<?php echo $brand ?>" ><?php echo $brand ?></option>
<?php } ?>
公共功能选择品牌()
{
//创建数据库连接
$this->db\u connection=newmysqli(db\u主机、db\u用户、db\u密码、db\u名称);
$query=$this->db\u connection->query(“从食物中选择不同品牌的食物;”);
$result\u row=$query->fetch\u object();
返回$result\u row->brand\u food;
}

使用foreach的方法错误,请尝试以下代码。我知道你们的品牌是阵列

        <?php
        foreach($brand->selectBrand() as $select){
        ?>
        <option value="<?php echo $select; ?>" ><?php echo $select; ?></option>
        <?php } ?>


您的代码有两个问题:

  • 模型返回意外结果,它应该是一系列品牌
  • 要呈现HTML输出,foreach循环语法不正确
  • 对于型号:

    public function selectBrand()
    {
        $this->db_connection = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
        $query = $this->db_connection->query("SELECT DISTINCT brand_food FROM food;");
        $brands = array();
        while($obj = $query->fetch_object()){ //fetch each object by while loop
            array_push($brands, $obj->brand_food); //push the value into $brands
        }
        return $brands; //return the array
    }
    
    对于查看(渲染):

    
    
    您的
    selectBrand
    不会返回任何内容。我假设您应该在其中创建一个数组,然后循环,将
    $query->fetch_object()
    分配给每个数组索引,然后返回该索引。您不会从
    selectBrand
    返回数组,而
    它应该是
    $result_row->brand_food
    ,因为查询中没有
    total`列。谢谢大家,我现在正在努力修复它。你刚刚让我开心了,它工作得很好。谢谢你纠正我。
    
    <?php foreach($brand->selectBrand() as $brand){ ?>
        <option value="<?php echo $brand ?>" ><?php echo $brand ?></option>
    <?php } ?>