如何检索从MySQL数组检查的复选框?

时间:2012-08-23 19:49:36

标签: php mysql

我有像这样设置的mysql

的MySQL

表:图库

+-------------+------------+
| galleryname | coverphoto |
+-------------+------------+

表:multigalleries

+-------------+-----------+
| galleryname | galleries |
+-------------+-----------+

我使用php中的复选框数组将图库放入multigalleries.galleries gallery1,gallery2,gallery3。所有这一切都运行正常,我唯一无法弄清楚的是,当我拉出gallery.galleryname列表并用multigalleries.galleries引用它时,如果{{1}中存在已检查状态,我该如何返回}}?

非常感谢任何帮助。

编辑//实际代码使用,如果它将帮助

multigalleries.galleries

1 个答案:

答案 0 :(得分:2)

试试这个:

$a = mysql_query("
    SELECT g.galleryname FROM gallery AS g, multigalleries AS m
    WHERE g.galleryname = 'gallery1' AND FIND_IN_SET(g.galleryname, m.galleries)
");

$b = mysql_fetch_assoc($a);

echo '<input type="checkbox" name="whatever"';

if($b['galleryname'])
{
    echo ' checked="checked"';
}

echo '>';

编辑:

$result = mysql_query("
    SELECT g.galleryname, m.galleryname AS name FROM gallery AS g 
    LEFT JOIN (SELECT galleryname, galleries FROM multigalleries) AS m ON 
    FIND_IN_SET(g.galleryname, m.galleries)
");

while($row = mysql_fetch_assoc($result))
{
    $checked = '';

    if($row['name'])
    {
        $checked = ' checked="checked"';
    }

    echo '<input type="checkbox" name="galleriesm[]" id="'.$row['galleryname'].'" value="'.$row['galleryname'].'"'.$checked.'>
    <label for="'.$row['galleryname'].'">'.$row['galleryname'].'</label>';
}