douyi1944 2012-08-23 19:49
浏览 26
已采纳

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

I have mysql set up like this

MySQL

Table: gallery

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

Table: multigalleries

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

I am using a checkbox array from php to place galleries into multigalleries.galleries like gallery1,gallery2,gallery3. All of that works fine, the only thing i cant figure out is, when I pull the list of gallery.galleryname and reference it with multigalleries.galleries, how can i return a checked state if it exists in multigalleries.galleries?

Any help would be greatly appreciated.

EDIT// ACTUAL CODE IM USING IF IT WILL HELP

$con = mysql_connect($host,$dbusername,$dbpassword);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db($databasename, $con);
$query = "SELECT galleries.gallery, galleries.coverphoto, multigalleries.multigallery,            multigalleries.galleries FROM galleries, multigalleries";
$result = mysql_query($query);

while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo '<div class="gallery" style="background-image:none">';
echo '<input type="checkbox" name="galleriesm[]" value="'.$line[gallery].'">'.      $line[gallery].'';
echo '</div>';
  • 写回答

1条回答 默认 最新

  • dslijian2015 2012-08-23 20:12
    关注

    Try this:

    $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 '>';
    

    Edit:

    $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>';
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 高价求中通快递查询接口
  • ¥15 解决一个加好友限制问题 或者有好的方案
  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?