0

这是对上一个问题的后续。

我的主页上有 4 个按钮,每个按钮都有自己的 ID。当有人单击按钮时,Jquery 会获取按钮 ID 并通过 Ajax 将其发送到 PHP,然后将其添加为会话变量。如果人们单击多个按钮,它将发送每个按钮的 ID。所以最后我有可能在数组中有 4 个变量。

Session 被创建为一个数组,以便它可以保存多个 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 回答