簡體   English   中英

如何使用PHP的MSSQL查詢SESSION數組

[英]How to MSSQL Query a SESSION Array Using PHP

我有一個購物車,並且嘗試使用SESSION陣列在用戶的購物車中顯示產品。 當前,添加到購物車中的所有產品都排列在$_SESSION["products"] SESSION中。 現在,我試圖查詢$_SESSION["products"]會話以在帶有分頁的列表中顯示產品。 我正在使用分頁,因此每頁僅顯示10個產品。 基本上, $_SESSION["products"]是用戶通過瀏覽器的緩存添加到購物車中的一系列緩存的產品。 我意識到您不能從字面上SQL查詢$_SESSION["products"]但是我正在尋找類似的東西來以“查詢”的形式檢索結果。 在下面的分頁代碼中,分頁顯然可以正常工作,並檢索product_code ,每頁顯示10個。 我正在尋找與SESSION完全一樣的東西,除了從SESSION中檢索。

以最簡單的形式,如何從SESSION中檢索數據?

這是我正在尋找的那種代碼的直觀解釋:

$strSQL = $_SESSION["products"]; 

$objQuery = mssql_query($strSQL) or die ("Error Query [".$strSQL."]");  
$Num_Rows = mssql_num_rows($objQuery);  

這是我的分頁代碼:

 <!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>

<body>
<?php
session_start();
include_once("config.php");

$objConnect = mssql_connect('gdm','Gdr','Rod1!');  
$objDB = mssql_select_db('GBadfr',$objConnect ); 

$strSQL = "SELECT * FROM products WHERE 1=1 ".$cheack." ORDER BY id ASC"; 

$objQuery = mssql_query($strSQL) or die ("Error Query [".$strSQL."]");  
$Num_Rows = mssql_num_rows($objQuery);  

$Per_Page = 2;   // Per Page  
$Page = $_GET["Page"];  
if(!$_GET["Page"])  
{  
$Page=1;  
}  

$Prev_Page = $Page-1;  
$Next_Page = $Page+1;  

$Page_Start = (($Per_Page*$Page)-$Per_Page);  
if($Num_Rows<=$Per_Page)  
{  
$Num_Pages =1;  
}  
else if(($Num_Rows % $Per_Page)==0)  
{  
$Num_Pages =($Num_Rows/$Per_Page) ;  
}  
else  
{  
$Num_Pages =($Num_Rows/$Per_Page)+1;  
$Num_Pages = (int)$Num_Pages;  
}  
$Page_End = $Per_Page * $Page;  
IF ($Page_End > $Num_Rows)  
{  
$Page_End = $Num_Rows;  
}  
?>

<?php
    if(isset($_SESSION["products"]))
    {
        $total = 0;
        echo '<form method="post" action="PAYMENT-GATEWAY">';
        echo '<ul>';
        $cart_items = 0;
$i = 0;
  foreach ($_SESSION['products'] as $cart_itm)
     if(++$i > 10) break;
   {
            $product_code = $cart_itm["code"];
           $queryy = "SELECT TOP 1 product_name,product_desc, price FROM products WHERE product_code='$product_code'";
           $results = mssql_query($queryy, $mysqli);
           $obj = mssql_fetch_object($results);

            echo '<li class="cart-itm">';
            echo '<span class="remove-itm"><a href="cart_update.php?removep='.$cart_itm["code"].'&return_url='.$current_url.'">&times;</a></span>';
            echo '<div class="p-price">'.$currency.$obj->price.'</div>';
            echo '<div class="product-info">';
            echo '<h3>'.$obj->product_name.' (Code :'.$product_code.')</h3> ';
            echo '<div class="p-qty">Qty : '.$cart_itm["qty"].'</div>';
            echo '<div>'.$obj->product_desc.'</div>';
            echo '</div>';
            echo '</li>';
            $subtotal = ($cart_itm["price"]*$cart_itm["qty"]);
            $total = ($total + $subtotal);

            echo '<input type="hidden" name="item_name['.$cart_items.']" value="'.$obj->product_name.'" />';
            echo '<input type="hidden" name="item_code['.$cart_items.']" value="'.$product_code.'" />';
            echo '<input type="hidden" name="item_desc['.$cart_items.']" value="'.$obj->product_desc.'" />';
            echo '<input type="hidden" name="item_qty['.$cart_items.']" value="'.$cart_itm["qty"].'" />';
            $cart_items ++;

        }

        echo '</ul>';
        echo '<span class="check-out-txt">';
        echo '<strong>Total : '.$currency.$total.'</strong>  ';
        echo '</span>';
        echo '</form>';
        echo '<a href="checkout.php">Checkout</a>';
        echo "dsa ".$cart_items."dsa";
    }

?>
</body>
</html>

感謝您的任何幫助。 感謝所有幫助。

附注:我在購物車的“查看購物車項目”頁面上沒有類似的問題,即“頁面未正確分頁” ,如果願意,可以看看。 再次感謝您的幫助。

應該管用

<?php
$i = 0;
  foreach ($_SESSION['products'] as $result)
     if(++$i > 10) break;
   {

     // Echo what you want from your array.

   }

?>

剛剛看到您更新了代碼(以上操作無效)。 如果要遍歷數組。 使用foreach循環顯示購物籃及其每個項目。

暫無
暫無

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

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