2016-08-30 13 views
0

mysqlデータベースから複数の "ids"をクッキーに挿入しようとしています。だから、私はいくつかのリンクを押して、配列内のIDを収集しています。そして、この配列を暗黙的にしようとすると、SQLデータベースから情報を取得し、クッキー$バスケットに書き込む関数に与えることを試みる。 しかし、showbasket.phpには、最後に押されたIDが1つしかありません。主な問題は私が思うidsですが、私はそれを理解することはできません。sqlからクッキーにデータを挿入しようとしています

p.s.これは単なるクッキートレーニングであり、実際の実装ではありません。

これは、ファイルadd2basket.phpです:

<?php 

    require 'functions.php'; 

    $id = $_GET['id']; 

    $arr = []; 
    $arr[]=$id; 
    $ids = implode(",", $arr); 

save2basket($ids); 
header("Location: catalog.php"); 
?> 

これは、関数save2basketです:

function save2Basket($ids){ 
    global $conn, $basket, $ids; 

    if(!isset($_COOKIE['basket'])) 
    $basket = setcookie('basket', $sel); 


    $sql = "SELECT * FROM catalog WHERE id IN ($ids)"; 
    $result = mysqli_query($conn, $sql); 

    $select = mysqli_fetch_all($result, MYSQLI_ASSOC); 
      mysqli_free_result($result); 
    $sel = base64_encode(serialize($select)); 
    $basket = setcookie('basket', $sel); 
} 

これはshowbasket.phpファイルです:

<?php 

    $basket = unserialize(base64_decode($_COOKIE['basket'])); 
    print_r($basket); 
+0

$ idの値をここに表示します。 –

+0

$ idは整数で、$ idsは同じです。 – Leonid

答えて

0

はあなたのPHPを交換してください以下のコードを含むコード。選択したIDをセッションに保存する必要があります。現在、PHPページが呼び出されるたびに、配列は空白に初期化され、最新のIDのみが格納されます。あなたの操作全体が完了した後でセッションを解除することを忘れないでください。

<?php 
    session_start(); 
    require 'functions.php'; 

    $id = $_GET['id']; 

    $_SESSION['arr'] = $id; 
    $ids = implode(",", $_SESSION['arr']); 

save2basket($ids); 
header("Location: catalog.php"); 
?> 
関連する問題