0

これは前の質問の続きです。

ホームページには 4 つのボタンがあり、それぞれに独自の ID が関連付けられています。誰かがボタンをクリックすると、Jquery がボタン ID を取得し、それを Ajax 経由で PHP に送信し、セッション変数として追加します。ユーザーが複数のボタンをクリックすると、各ボタンの ID が送信されます。したがって、最終的には、配列に 4 つの変数を含めることができます。

セッションは、複数の ID を保持できるように配列として作成されます。

 <?php
    session_start();

    if ( ! is_array( $_SESSION['ids'] ) ) {
       $_SESSION['ids'] = array();
    }

    if ( ! in_array($_POST['session'], $_SESSION['ids'] ) ) {
       $_SESSION['ids'][] = $_POST['session'];
    }
 ?>

すべてが正しく機能し、print_r $_SESSION['ids']クリックされて保存された各ボタンのIDが正しく表示されている場合:

[0] => 1, null, [1] => 3, null, [2] => 4

(保存されたボタン ID は 1、3、4 です。

問題は、保存されているボタン ID をデータベースに照会する必要があることです。

配列を分割して値だけを取得するにはどうすればよいですか。たとえば、ボタンID 1, 34. それらを使用してデータベースにクエリを実行できるようにするには?

4

4 に答える 4

1

ここimplode()で説明されている関数を使用できます。

$in = implode(',',$_SESSION['ids']);
mysql_query("SELECT * from yourbd where id in ($in)");//just an eg. mysql_* is deprecated
于 2013-01-16T04:00:06.067 に答える
0

この関数を見てください。幸運を!

于 2013-01-16T03:57:45.663 に答える
0
$buttons=$_SESSION['ids'];
$str=implode(', ',$buttons);
$sqlquery = mysql_query("Select * from table where btn_id IN ($str)");      
于 2013-01-16T04:00:07.453 に答える
0

アレイの変更

  foreach ($IdsArray as $myId) {
    $newIds[] = 'my_id = ' . $myId;
  }
  $orSeparatedIds = implode(" OR ", $newIds);

クエリで使用

$query = "select my_id from mytable where $orSeparatedIds";
于 2013-01-16T04:00:31.890 に答える