使用php从mysql填充下拉框

时间:2015-02-19 11:14:02

标签: php mysql drop-down-menu

学生寻求帮助。

尝试从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

3 个答案:

答案 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>';
}