繁体   English   中英

如何将SQL数据从数据库表回显到 <select>形成?

[英]How do I echo SQL data from database table into a <select> form?

我想知道是否有人可以提供帮助。

我试图将某些SQL数据回显为<select>形式,每个<option>作为表的不同行。

例如,如果我的表有两列“用户名”和“类别”,并且同一用户名有两行,则数据如下:

“用户名:test,类别:test1。”

&第二行为:

“用户名:test,类别:test2。”

如何在选择表单中将“ test1”和“ test2”作为两个选项进行回显?

表名是'testtable',所以我当前的$sql查询是("SELECT 'category' FROM 'testtable' WHERE 'username = \\'$user\\'")

$user当前设置为$_SESSION['username']

代码示例将非常有帮助,非常感谢。 我似乎无法让他们在论坛上找到的示例中有所呼应。

您从查询中得到所有行:

<?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>

尝试这个:

<select>
  <?php while($row = mysql_fetch_array($result)
   {?>
   <option><?php echo $row['category'];?></option>
  <?php }?>
</select>

尝试这个

<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());

要么

$res = mysql_query("SELECT `category` FROM `testtable` WHERE `username` = '$username' GROUP BY category ") or die(mysql_error());

您的选择查询有一个错误:用户名前没有成对的单引号,以及围绕类别的单引号-这是否可能是您无法执行此操作的原因?

<?php
$result = mysql_query($query);
echo "<select>";
while($row = mysql_fetch_array($result))
{
echo  "<option>".$row['category']."</option>";
}
echo "</select>";
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM