0

次のチェックボックスがあるニュースレターがあります。
<input type="checkbox" name="assign[]" value="1" >designation_code_1
<input type="checkbox" name="assign[]" value="3" >designation_code_2
<input type="checkbox" name="assign[]" value="4" >designation_code_3
<input type="checkbox" name="assign[]" value="5" >designation_code_4

tbl_designations私は2つのテーブルを持っていtbl_profileます。以下は、それぞれのテーブルから値を取得するために使用しているクエリです。

SELECT 
    * 
FROM 
    tbl_designations AS A
        JOIN (
            SELECT 
                * 
            FROM 
                tbl_profile
            ) AS B
        ON A.is_placement = B.is_placement 
        AND A.designation_code = B.hierarchy 
        AND A.designation_id =5

このクエリは、X =(1,2,3,4)eachに対応する 100 のレコードを提供します。designation_id = "X"

Xの値は、上のチェックボックスを選択することによって決定されます。チェックボックスを1つだけ選択すると(最初のチェックボックスなど)designation_id = 1 、クエリが取得され、チェックボックスの選択/選択に従ってレコードが取得され、目的の結果が得られます。

一度に複数のチェックボックスを選択すると、チェックボックスでの選択(s)に従ってテーブルからレコードが抽出されるように、どのクエリを作成する必要があるかは疑問です(チェックボックスのに 対応することを意味します)。

foreachループを使用して、assign[]配列に格納されている値を取得しています。
助けてください

4

6 に答える 6

1

好奇心旺盛さん、こんばんは

次のように書くことができます:

... and A.designation_id in (1, 2, 3)

括弧内の値は、選択したチェックボックスから返された値に置き換える必要があります。

于 2012-08-20T06:26:37.223 に答える
0

それはばかげている。の各要素をカンマINで結合して代わりに使用します。$_POST['assign']

于 2012-08-20T06:25:34.583 に答える
0

これはあなたの質問に直接答えるものではありませんが、フォーマットの変更のためにあなたの投稿を編集していたとき、SQL を見ずにはいられませんでした。

以下に書き直しました(select *結合として a を使用しないでください。テーブル全体を使用するだけで、データベースはより快適になります)。より良い結果が得られるはずです。

SELECT 
    * 
FROM 
    tbl_designations AS A
        JOIN tbl_profile B
        ON A.is_placement = B.is_placement 
        AND A.designation_code = B.hierarchy 
        AND A.designation_id =5
于 2012-08-20T06:26:23.700 に答える
0

これを試して:

where X in (1,2,3,4)
于 2012-08-20T06:29:01.297 に答える
0

コンマ区切りの文字列を作成し、FIND_IN_SET 関数を使用してクエリで使用できます。

...
WHERE FIND_IN_SET(X, '1,2,3,4')

FIND_IN_SET(str,strlist)関数。

于 2012-08-20T06:39:33.610 に答える
0

更新ごとに乱数の列を選択するには、これを使用します。

$sql = mysql_query("SELECT * FROM $Tablename where column = '$bookmark' order by rand() limit 1");

:)

于 2012-08-20T06:47:42.857 に答える