Php 将信息从MYSQL导出到复选框

Php 将信息从MYSQL导出到复选框,php,html,mysql,checkbox,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))

我在将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
}

?>

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

那么,真正的问题来自于你把

$description=$row["sites.Description"];
在while语句的开始大括号前的行。应该是

while ($row=mysql_fetch_array($result))

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

相反。

我会将代码更改为:

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

?>

您应该使用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;
?>
$sql=“从UserGroupID='{$UserGroupID}'按站点排序的站点中选择*说明”;
$i=0;
$result=mysqli\u查询($link,$sql);
while($row=mysqli\u fetch\u数组($result)){
$description=$row[“sites.description”];
$xxx=“”;
$i++;
}
echo$xxx;
?>
$description必须在while中


id=“checkbox\u$i添加自动增量以使id不同这并不是您代码的唯一问题。例如,格式问题,我的意思是您无法真正阅读它。学会正确格式化代码,对其进行排序。这实际上将帮助您防止其他错误

如前所述,它还将帮助您阅读和理解代码

现在作为第三个技巧:如果你用正确格式的代码提问,你也会在网站上得到更好的答案。因此,请保持你的问题的重要性,并尽你所能在网站上获得帮助

<?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, '">';
}

$description=$row[“sites.description”];
应该在
while()
括号
{}
中,并且它可能只是
$description=$row[“description”]
代码总是按照编写的内容执行。如果你想知道为什么它与你想象的不同,请想一想:重读必须揭示问题。因此,通过逐字重读代码来理解代码的作用。从你的期望不符的事实中获益,并将其转化为学习经验。在这里提问就可以了因为有问题会剥夺你的自我体验(也不是真正的编程问题)。因此,如果某件事情没有按预期的方式工作,最好三思。如果你打算提供
mysqli.*
建议,(1)请确保提供准确的示例,即要求将连接链接作为第一个参数-
mysqli\u查询($link,$sql)
,以及(2)如果更新到
mysqli*
,请确保突出显示
mysqli
的主要优点,这是一个预先准备好的语句,因此它们不会对sql注入开放-
其中UserGroupID='font{$usergroupid}'