我有一个包含两列的mysql表; id
和type
。我试图检索要在选择值列表中使用的值(也就是下拉列表)。在我的html之外,这个php完美无缺:
$sql = "SELECT * FROM `usertype`";
$query = mysqli_query($con, $sql);
while ($type_lov = mysqli_fetch_assoc($query)) {
echo '<pre>', print_r($type_lov,true), '</pre>';
};
上面的php输出:
Array ( [id] => 1 [type] => System Admin )
Array ( [id] => 2 [type] => System Admin2 )
Array ( [id] => 3 [type] => System Admin3 )
Array ( [id] => 4 [type] => Account Admin )
Array ( [id] => 5 [type] => Account User )
为了让它进入SELECT / OPTIONS标签,我尝试了几件事,但没有成功。对我来说最有意义的两次尝试(但是没有用)是:
<!--ATTEMPT 1-->
<select>
<?php while ($type_lov = mysqli_fetch_assoc($query)) {
foreach ($type_lov as $id=>$type) { ?>
<option value="<?php echo $id; ?>"><?php echo $type; ?></option>
<?php };
}; ?>
</select>
<!--ATTEMPT 2-->
<select>
<?php foreach ($type_lov = mysqli_fetch_assoc($query) as $id=>$type) { ?>
<option value="<?php echo $id; ?>"><?php echo $type; ?></option>
<?php }; ?>
</select>
都没有奏效。什么是正确的方法?
答案 0 :(得分:0)
您应该阅读mysqli_fetch_assoc
。它将数据作为关联数组返回,这意味着您的表列用作数组的索引。
此外,为什么你在第一个例子中与foreach结合?你接下来的思考过程是什么?
无论如何,这应该对你的旅程有所帮助:
<select>
<?php
while (($data = mysqli_fetch_assoc($query)))
{
echo '<option value="' . $data['id'] . '">' . $data['type'] . '</option>';
}
?>
</select>