Tutorial PHP – Menyimpan Array Pada Session PHP

Tutorial PHP – 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.

8 pemikiran pada “Tutorial PHP – Menyimpan Array Pada Session PHP”

  1. 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

    • 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']."')

  2. 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

    • 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 😀

  3. 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..

  4. 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…

Tinggalkan komentar