Php 从MySQL获取选择选项。
我试图做的是从MYSQL查询结果填充一个HTML select 有两个文件,这是Food.php: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("
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 } ?>