Tutorial PHP – Menyimpan Array Pada Session PHP

Dipublikasikan oleh El Cicko pada

menyimpan array pada session php

Ini adalah tutorial PHP tentang bagaimana cara menyimpan array pada session PHP. Biasanya, hal semacam ini digunakan di situs web eCommerce, di mana pengguna dapat menambahkan beberapa produk ke keranjang belanja mereka.

Hal ini dikarenakan cart belanja bersifat temporary, sehingga banyak developer yang memilih untuk menyimpannya di session pengguna.

Menyimpan Array Pada Session PHP

Cara untuk menyimpan array pada session PHP cukup sederhana dan berfungsi persis sama dengan ketika kita akan menyimpan nilai pada variabel string atau yang lainnya. Scriptnya adalah sebagai berikut :

<?php

// Mulai session
session_start();

// Array yang berisi id produk
$cartArray = array(123, 12, 490);

// menyimpan array pada session PHP dengan nama "cart"
$_SESSION['cart'] = $cartArray;

// debugging untuk melihat output dari session tersebut
var_dump($_SESSION['cart']);

Jika kamu menjalankan kode di atas, kamu akan melihat bahwa saat kita mengisi variabel session bernama cart dengan array yang berisi $cartArray, maka output dari var_dump diatas akan terlihat seperti ini:

array (size=3)
  0 => int 123
  1 => int 12
  2 => int 490

Ok, cukup mudah kan?

Looping Session Array

sekarang pertanyaannya, bagaimana cara menampilkan session tersebut dengan menggunakan looping ?

<?php

// Mulai sessioan
session_start();

// cek apakah session cart ada
if(isset($_SESSION['cart'])){
    // looping session seperti layaknya array
    foreach($_SESSION['cart'] as $productId){
        // Tampilkan id produk.
        echo $productId, '<br>';
    }
}

Kita pastikan dulu bahwa variabel session yang dideklarasikan benar-benar ada. Ini sangat penting, karena kita tidak pernah bisa memastikan bahwa variabel session tertentu telah ditetapkan.

Jika kita mencoba untuk menggunakan looping pada session yang tidak ada, maka biasanya yang terjadi adalah akan munculnya peringatan seperti “Warning: Invalid argument supplied for foreach()”.

Baca Juga : Mengatasi Pesan Error ‘Notice: Undefined’ di PHP

Setelah itu kita gunakan looping pada session PHP seperti layaknya kita menggunakan looping pada array.

Untuk memastikan bahwa session cart selalu ada, lakukan cara sebagai berikut

<?php

// Mulai session
session_start();

// cek apakah session cart ada
if(!isset($_SESSION['cart'])){
    // Jika tidak ada maka buat session baru dengan array kosong
    $_SESSION['cart'] = array();
}

Dengan cara diatas tadi, maka session cart akan selalu ada baik dengan nilai array ataupun array kosong.

Menambahkan Item Baru Pada Session

Sekarang bagaimana caranya untuk menambahkan item baru pada array pada session PHP ? sangat mudah koq, gunakan cara sebagai berikut

<?php

// mulai session
session_start();

// memasukkan item baru berupa id product kedalam session cart
$_SESSION['cart'][] = 2787376;

// debugging
var_dump($_SESSION['cart']);

Seperti yang ada di script diatas, array pada session PHP yang kita simpan bekerja dengan cara yang sama persis seperti pada array PHP biasa.

Jika kamu menjalankan dan memuat ulang kembali skrip PHP di atas, maka kamu akan melihat bahwa item baru ditambahkan pada setiap pemuatan halaman. Seperti inilah array session cart setelah beberapa kali dimuat ulang:

array (size=1)
  'cart' => 
    array (size=6)
      0 => int 123
      1 => int 12
      2 => int 490
      3 => int 2787376
      4 => int 2787376
      5 => int 2787376

Sangat mudah kan ? sekian dulu tutorial PHP dari saya tentang bagaimana cara menyimpan array pada session PHP.

Silahkan dicoba dan semoga bermanfaat.


El Cicko

Nama saya Riky Fahri Hasibuan, Saya yang biasa nulis di blog ini. Blog ini adalah sarana dokumentasi dari apa yang saya kerjakan dan tidak ada salahnya juga saya sebarkan. Jika artikel di blog bermanfaat, kamu bisa memberikan apresiasi pada blog ini dengan memberikan donasi pada blog ini.

9 Komentar

RY · Juli 20, 2014 pada 4:21 pm

mas, cara nya gimana kalau mau menyimpan id user yang login secara otomatis ke dalam tabel transaksi?
jadi misal ada transaksi A, user cuman perlu masukin field item nya aja, tapi nanti data yg masuk ke database ada id user yang melakukan transaksi, sama tanggal transaksi, sama isi field itu

    El Cicko · Juli 20, 2014 pada 5:17 pm

    ooh itu gampang mas, pada saat login user…bikin script untuk menyimpan session userid-nya..misalkan begini
    $_SESSION['userid'] = $row['userid'];

    kalo tanggal transaksinya ya tinggal bikin variable baru aja, misalkan
    $tgl = date(‘Y-m-d’);

    nah, nanti pas transaksi pas insert itemnya tinggal begini aja
    INSERT INTO `transaksi` (`item`,`qty`,`date`,`userid`) VALUES ('".$_POST['item']."','".$_POST['qty']."','".$tgl."','".$_SESSION['userid']."')

AS · Juli 20, 2014 pada 11:22 pm

mas, kalo menyimpan data dari type=radio dalam session gmna?
misal: dalam type radio itu pilihan ada 5 berupa pilihan jawaban soal dan ingin disimpan dalam session agar bisa dilempar halaman selanjutnya.. terimakasih

    El Cicko · Juli 21, 2014 pada 2:55 am

    kalau dalam kasus quis online gitu, jawaban yg di kirim disimpan kedalam session, misalkan
    $_SESSION['quis']['jawaban'] = $_POST['jawaban];
    jangan lupa soalnya juga disimpan ke dalam session, misalkan
    $_SESSION['quis']['soal'] = $_POST['soal'];

    nah nanti pada akhir soal, array tersebut tinggal dipecah aja
    foreach ($_SESSION['quis'] AS $key=>$val) {
    mysql_query("INSERT INTO `quis` (`soal`,`jawaban`) VALUES ('$val[soal]', '$val[jawaban]')");
    }

    mohon dikoreksi kalau saya salah ya 😀

RY · Juli 21, 2014 pada 10:08 am

mas, ada tutorial tentang pencarian terdekat berdasarkan radius di google map nggak?

    El Cicko · Juli 21, 2014 pada 5:44 pm

    kebetulan lagi dibuat mas… 😀

Fadlan · September 22, 2014 pada 1:54 am

mas mau tanya sedikit tentang sms gateway, bagaimana cara mengirimkan pesan yang diambil dari database nilai. misalnya memiliki 3 record, yg ingin saya tanyakan bagaimana cara mengirimkan nilai namun hanya 1x pengriman pesan.?
terima kasih atas jawabanya..

jojon · Januari 5, 2015 pada 10:28 am

om ane punya script soal pilihan ganda boleh minta tolong cara menyimpan jawaban per soal lewat session, ane masih bingung. mohon bantuannya. saya kirim ke email om, minta email om dong…

Tutorial PHP - Membuat Format Hari Indonesia Dengan PHP · November 28, 2019 pada 3:17 am

[…] Baca Juga : Tutorial PHP – Menyimpan Array Pada Session PHP […]

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *