-1

我在将信息从 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

4 回答 4

2

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

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

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

while 语句的左大括号之前的行。它应该是

while ($row=mysql_fetch_array($result))

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

反而。

于 2013-06-25T00:18:51.127 回答
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;
?>

$description 必须在 while 内。

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

于 2013-06-25T00:27:34.740 回答
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, '">';
}
于 2013-06-25T01:14:09.607 回答
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)。

于 2013-06-25T00:21:16.690 回答