0

私はmysqlをこのように設定しています

MySQL

テーブル:ギャラリー

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

表:マルチギャラリー

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

phpのチェックボックス配列を使用してギャラリーをmultigalleries.galleriesのように配置していますgallery1,gallery2,gallery3。それはすべて正常に機能しますが、私が理解できない唯一のことは、リストをプルしてgallery.gallerynameそれを参照するときにmultigalleries.galleries、チェックされた状態が存在する場合、どのように返すことができますmultigalleries.galleriesか?

どんな助けでも大歓迎です。

それが役立つかどうかを使用して編集//実際のコードIM

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

1 に答える 1

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>';
}
于 2012-08-23T20:12:12.740 に答える