我想知道是否有人可以提供帮助。
我正在尝试将一些SQL数据回显到<select>
表单中,每个<option>
作为表中的不同行。
例如,如果我的表有两列'username'和'category',并且同一用户名有两行,包含数据:
“username:test,category:test1。”
&安培;第二行为:
“username:test,category:test2。”
我如何在选择表单中回显'test1'和'test2'作为两个选项?
表格名称为“testtable”,因此我当前的$sql
查询为("SELECT 'category' FROM 'testtable' WHERE 'username = \'$user\'")
$user
目前设置为$_SESSION['username']
代码示例非常有用,非常感谢。我似乎无法让他们回应我在论坛上发现的例子。
答案 0 :(得分:1)
您从查询中获得所有行:
<?php
$query = "SELECT category FROM testtable WHERE username = '" . $_SESSION['username'] ."'";
$result = mysql_query($query);
$options = array();
while($row = mysql_fetch_array($result))
{
$options[] = "<option>" . $row['category'] . "</option>";
}
?>
<select>
<?php echo implode("",$options); ?>
</select>
答案 1 :(得分:1)
试试这个:
<select>
<?php while($row = mysql_fetch_array($result)
{?>
<option><?php echo $row['category'];?></option>
<?php }?>
</select>
答案 2 :(得分:0)
您的选择查询有错误:用户名之前的非配对单引号和类别周围的单引号 - 这可能是您无法做到的原因吗?
答案 3 :(得分:0)
<?php
$result = mysql_query($query);
echo "<select>";
while($row = mysql_fetch_array($result))
{
echo "<option>".$row['category']."</option>";
}
echo "</select>";
?>
答案 4 :(得分:0)
试试这个
<select name="your_select_name" id="your_select_id">
<option value="">Select</option>
<?php
$username = $_SESSION['username'];
$res = mysql_query("SELECT `category` FROM `testtable` WHERE `username` = '$username' ") or die(mysql_error());
while($row = mysql_fetch_assoc($res))
{
echo '<option value="'.$row['category'].'">'.$row['category'].'</option>';
}
?>
</select>
更新2:
对于不同的类别,请使用此
$res = mysql_query("SELECT DISTINCT(`category`) as category FROM `testtable` WHERE `username` = '$username' ") or die(mysql_error());
OR
$res = mysql_query("SELECT `category` FROM `testtable` WHERE `username` = '$username' GROUP BY category ") or die(mysql_error());