将信息从MYSQL导出到复选框

时间:2013-06-25 00:16:07

标签: php html mysql checkbox

我遇到问题从mysql中获取信息到多个复选框。

使用的查询就是这个。

    <?php

$usergroupid = $_SESSION['UserGroupID'];

$sql="SELECT * FROM sites WHERE UserGroupID='{$usergroupid}' ORDER BY sites.Description"; 
$result=mysql_query($sql);
while ($row=mysql_fetch_array($result))

$description=$row["sites.Description"];
{
?>  
<input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $description; ?>">
<?php
}

?>

但这只输入1个复选框,当表格中有多行时,后面没有文字。

4 个答案:

答案 0 :(得分:2)

对于初学者来说,永远不要在HTML中使用相同的id两次(你通​​过for循环并使每个元素具有相同的id,而不是一件好事)。首先修复该问题(使HTML输入元素的id包含行中的某种id)

然后,真正的问题来自你放

的事实
$description=$row["sites.Description"];

在while语句的开头大括号之前。它应该是

while ($row=mysql_fetch_array($result))

{
$description=$row["sites.Description"];

代替。

答案 1 :(得分:0)

我会将代码更改为:

<?php

$usergroupid = $_SESSION['UserGroupID'];

$sql="SELECT * FROM sites WHERE UserGroupID='{$usergroupid}' ORDER BY sites.Description"; 
$result=mysql_query($sql);
while ($row=mysql_fetch_array($result))
{
$description=$row["sites.Description"];

?>  
<input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $description; ?>">
<?php
}

?>

问题是“{”应该在“while($ row = mysql_fetch_array($ result))”之后直接写入。

此外,我强烈建议尽可能停止使用mysql_query,因为现在不推荐使用mysql_query(请在此处详细了解:http://php.net/manual/en/function.mysql-query.php)。

答案 2 :(得分:0)

你应该使用mysqli扩展而不是mysql(不推荐使用)     

$sql="SELECT * FROM sites WHERE UserGroupID='{$usergroupid}' ORDER BY sites.Description"; 
$i=0;
$result=mysqli_query($link,$sql);
while ($row = mysqli_fetch_array($result)){
    $description=$row["sites.Description"]; 
    $xxx= "<input name='checkbox[]' type='checkbox' id='checkbox_$i' value='$description'>";
 $i++;
}
 echo $xxx;
?>

$描述必须在里面。

id =“checkbox_ $ i添加自动增量以使ids不同

答案 3 :(得分:0)

这不是您的代码唯一的问题。例如格式化,我的意思是你无法真正阅读它。学会正确格式化代码,进行排序。这实际上可以帮助您防止其他错误。

如评论所述,它还可以帮助您阅读和理解您的代码。

现在作为第三个提示:如果您使用格式正确的代码提出问题,您也可以在网站上获得更好的答案。因此,请保持您的问题重要,并尽一切努力在现场获得帮助。

<?php

$usergroupid = $_SESSION['UserGroupID'];

$sql = sprintf(
    "SELECT * FROM sites WHERE UserGroupID = %d ORDER BY sites.Description",
    (int)$usergroupid
);

$result = mysql_query($sql);

while ($row = mysql_fetch_array($result))
{
    $description = $row["sites.Description"];

    echo '<input name="checkbox[]" type="checkbox" id="checkbox[]" value="',
         $description, '">';
}