学生寻求帮助。
尝试从mysql数据库填充下拉菜单,下拉菜单中没有显示任何数据。使用 getCategory函数从表类别获取数据。数据库正在连接,并且正在通过另一个函数访问特定表。我迷失了这个,一直在寻找和谷歌搜索最后几个晚上的答案,仍然没有运气。也许我已经看了太久以至于我的大脑都在炒?
功能代码
public function getCategory()
{
echo $query = "SELECT * FROM `categories`";
$results = mysqli_query($this->_con, $query) or die(mysqli_error());
$categories = array();
foreach ($results as $result){
$categories[$result['id']] = $result['category_name'];
}
mysqli_close($this->_con);
return $categories;
echo "<pre>"; print_r($categories); echo "</pre>";
}
下拉代码
<select class="form-control" name="category" id="category">
<option value="">Choose your category</option>
<?php foreach ($categories as $key=>$category){ ?>
<option value="<?php echo $key; ?>"><?php echo $category; ?></option>
<?php } ?>
</select>
表格称为类别
列是id&amp; CATEGORY_NAME
答案 0 :(得分:0)
please try the below code in your code in your function
$nums=mysql_num_rows($results);
for($i=0;$i<$nums;$i++)
{
$id=mysql_result($results,$i,'id');
$category=mysql_result($results,$i,'category_name');
$categories[$id] = $category;
}
$categories =getCategory() ;
答案 1 :(得分:0)
我不确定你在苦苦挣扎,你的代码缺少对getCategory的函数调用(应该被称为getCategories,因为你得到的是多个对象,而不是一个。只是一个旁注)。
下面的代码经过测试和工作(在你的documentRoot中保存为index.php进行测试),请注意我不能在不在类上下文中将函数声明为公共函数,也不能使用$ this-&gt; _con没有带_con var的类,所以我使用$ con代替。您需要根据您的背景和需求进行调整:
的index.php:
<?php
$category = filter_input(INPUT_POST,'category');
if($category!=FALSE && $category!=NULL){
$selectedCategory = $category;
}
function getCategory() {
$con = mysqli_connect("localhost","root","","categories") or die("Error " . mysqli_error($con));
echo $query = "SELECT * FROM `categories`";
$results = mysqli_query($con, $query) or die(mysqli_error());
$categories = array();
foreach ($results as $result){
$categories[$result['id']] = $result['category_name'];
}
mysqli_close($con);
return $categories;
}
?>
<html>
<head>
<title>Categories Test</title>
</head>
<body>
<?php
if(isset($selectedCategory)){
echo "last selected category ID: ".$selectedCategory;
}
?>
<form action="index.php" method="POST">
<select class="form-control" name="category" id="category">
<option value="">Choose your category</option>
<?php
$categories = getCategory();
foreach ($categories as $key=>$category): ?>
<option value="<?php echo $key; ?>"><?php echo $category; ?></option>
<?php endforeach; ?>
</select>
<input type="submit" value="send" />
</form>
</body>
答案 2 :(得分:0)
这是我用这种方式做的例子。希望!它会帮助你。
public function GetStates()
{
$tempgetstates = mysql_query("SELECT * FROM `states`") or die(mysql_error());
echo '<select name="state" class="sel_reg_form" required />';
echo '<option value="">...Select...</option>';
while($getstates = mysql_fetch_object($tempgetstates))
{
echo '<option value="'.$getstates->state_code.'">'.$getstates->state.'</option>';
}
echo '</select>';
}