用MySQL查询结果填充下拉列表(PHP / MySQL)

时间:2011-03-16 15:05:33

标签: php mysql

所以标题是......

这里是我目前编写的代码,认为它可以工作,但它不会:(

请注意我的会话用户ID等正在工作,因为我可以在表单中的另一个字段打印出来,这不是问题,但我的Dropbox似乎没有任何内容。 (我在数据库上创建了数据,其中user_id匹配我登录的位置)

$userid = $_SESSION['myuserid'];
//run query to database
$query = "SELECT * FROM test_groups_tb WHERE user_id='$userid'";
mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_assoc($query))
    {
    $dd .= "<option value='{$row['group_id']}'>{$row['group_name']}</option>";
    } 

然后在html中使用:

<select name="t_group"><? echo $dd; ?></select>

有人能帮助我吗?

感谢

3 个答案:

答案 0 :(得分:3)

$query是一个字符串,因此您无法从中获得任何结果。你应该做点什么:

$query = "SELECT * FROM test_groups_tb WHERE user_id='$userid'";
$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_assoc($result))
{
    $dd .= "<option value='{$row['group_id']}'>{$row['group_name']}</option>";
} 

答案 1 :(得分:2)

它不起作用,因为$ query是一个字符串。您应该将mysql_query的结果分配给$ query变量。

如果您有错误报告,则会看到类似mysql_fetch_assoc expects parameter 1 to be resource, string given的错误。

答案 2 :(得分:0)

就个人而言,当我添加变量时,我总是丢掉一个字符串..我知道你不必这样做取决于你的设置方式,但我的行将是:

$dd .= "<option value='".$row['group_id']."'>".$row['group_name']."</option>";

如果您关心这些事情,我还会在尝试添加之前设置$ dd =“”来摆脱不可避免的通知。

检查您的查询是否为资源(echo $ query - 期望'资源ID #nn')并且它正在生成任何行[echo mysql_num_rows($ query); ]