0

フォーラムに関連するトピックの組み合わせがユニークかどうかを判断しようとしています。これは、フォーラムにトピックを追加するときに行われます。一意性は、次のコードとクエリでチェックされます。

$options = array(); //here's your choices
$options[] = 'blablabla';
$options[] = 'blabla';

foreach($options as $key => $value) 
    {
        echo '<li>' . $value . '</li>'; 
    }

$sql_unique = "SELECT Forums_ForumID, list
           FROM (
         SELECT Forums_ForumID, GROUP_CONCAT( Topics_TopicID ) AS list
         FROM (
            SELECT *
            FROM Topics_crosstable
            ORDER BY Topics_TopicID
         )H
         GROUP BY Forums_ForumID
            )A
            WHERE list = (
         SELECT GROUP_concat( TopicID )
         FROM Topics
         WHERE Name IN (";
$sql_unique .= implode(",",$options);
$sql_unique .= ") ORDER BY Forums_ForumID ASC )";

$result = mysql_query($sql_unique);
//print "$result";
//echo $result;
//echo mysql_num_rows($result);
//$assoc = mysql_fetch_assoc($result);

var_dump($result);

WHEREで固定値を使用すると、クエリは正常に機能すると確信しています。現在のコードでは、出力を取得できません。vardumpは、トピックの組み合わせが一意であるかどうかに関係なく、結果「false」を返します。私は何日も努力しているので、あなたが私を助けることができるのを本当に助けます!前もって感謝します!

4

1 に答える 1

2

オプションが文字列の場合は、引用符で囲む必要があります。

$sql_unique .= "'". implode("','", $options) ."'";
于 2013-03-27T00:16:20.153 に答える