簡體   English   中英

PHP會話數組-查詢數據庫

[英]PHP Session Array - Query Database

這是上一個問題的后續內容。

我的主頁上有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 這樣我就可以用它們查詢數據庫了?

您可以使用在此處介紹的implode()函數。

$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";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM