Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP会话数组-查询数据库_Php_Database_Arrays_Session - Fatal编程技术网

PHP会话数组-查询数据库

PHP会话数组-查询数据库,php,database,arrays,session,Php,Database,Arrays,Session,这是上一个问题的后续问题 我的主页上有4个按钮,每个按钮都有自己的ID。当有人单击按钮时,Jquery会获取按钮ID并通过Ajax将其发送到PHP,然后将其添加为会话变量。如果人们点击多个按钮,它将发送每个按钮的ID。 因此,在数组中可能有4个变量 会话被创建为一个数组,以便它可以容纳多个ID: 像这样: (其中存储的按钮id为1、3和4 现在的问题是,我需要查询数据库中已存储的按钮ID 如何分解数组并仅获取值,例如:按钮ID1、3和4。 这样我就可以用它们查询数据库了?看看这个函数。祝你好运!

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

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

会话被创建为一个数组,以便它可以容纳多个ID: 像这样:

(其中存储的按钮id为1、3和4

现在的问题是,我需要查询数据库中已存储的按钮ID

如何分解数组并仅获取值,例如:按钮
ID1、3
4

这样我就可以用它们查询数据库了?

看看这个函数。祝你好运!

你可以使用
内爆()
函数,如下所述

更改数组 用于查询
您可以使用for循环遍历按钮会话数组。您面临的问题是什么?问题是,它然后将ID作为单个数字返回:例如:获取ID 1和3,但将它们放置为13。@JPDP ok。您可以打印数组$\u会话['ID']并将其粘贴到此处打印\r=数组([0]=>[1]=>1[2]=>3)回声:13@JPDP对不起,我还是不明白。你的意思是如果你在我的答案中使用代码,你得到的是13吗?没错,因此你的代码得到的是存储在会话中的2个Id(在本例中,它们是Id 1和Id 3。因此输出是13。当我试图查询数据库中的$btn时,它认为我的意思是13,而不是1,3)
 <?php
    session_start();

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

    if ( ! in_array($_POST['session'], $_SESSION['ids'] ) ) {
       $_SESSION['ids'][] = $_POST['session'];
    }
 ?>
[0] => 1, null, [1] => 3, null, [2] => 4
$in = implode(',',$_SESSION['ids']);
mysql_query("SELECT * from yourbd where id in ($in)");//just an eg. mysql_* is deprecated
$buttons=$_SESSION['ids'];
$str=implode(', ',$buttons);
$sqlquery = mysql_query("Select * from table where btn_id IN ($str)");      
  foreach ($IdsArray as $myId) {
    $newIds[] = 'my_id = ' . $myId;
  }
  $orSeparatedIds = implode(" OR ", $newIds);
$query = "select my_id from mytable where $orSeparatedIds";