2016-08-30 2 views
0

Пытается вставить несколько «ids» в файл cookie из базы данных mysql. Итак, я нажимаю несколько ссылок и собираю их идентификаторы в массиве. А затем попытайтесь взорвать этот массив и передать его функции, которая должна взять информацию из базы данных sql и записать ее в корзину cookie $. Но в showbasket.php у меня есть только один, последний нажатый id. Основная проблема заключается в том, что я думаю, но я не могу понять это.Попытка вставить данные из sql в файлы cookie

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 - целое число, а в $ id - то же самое. – Leonid

ответ

0

Заменить PHP код с кодом ниже. Вам необходимо сохранить выбранные идентификаторы в сеансе. В настоящее время каждый раз, когда php-страница вызывается, ваш массив будет инициализирован пустым, и он будет содержать только последний идентификатор. Не забудьте отменить сеанс после завершения всей вашей операции.

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

    $id = $_GET['id']; 

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

save2basket($ids); 
header("Location: catalog.php"); 
?> 
Смежные вопросы