$gio_hang="khong";
if(isset($_SESSION['id_them_vao_gio']))
{
$so_luong=0;
for($i=0;$i<count($_SESSION['id_them_vao_gio']);$i++)
{
$so_luong=$so_luong+$_SESSION['sl_them_vao_gio'][$i];
}
if($so_luong!=0)
{
$gio_hang="co";
}
}
echo "Giỏ hàng";
echo "<br>";
echo "<br>";
if($gio_hang=="khong")
{
echo "Không có sản phẩm trong giỏ hàng";
}
else
{
echo "<table>";
echo "<tr>";
echo "<td width='200px' >Tên</td>";
echo "<td width='150px' >Số lượng</td>";
echo "<td width='150px' >Đơn giá</td>";
echo "<td width='170px' >Thành tiền</td>";
echo "</tr>";
$tong_cong=0;
for($i=0;$i<count($_SESSION['id_them_vao_gio']);$i++)
{
$tv="select id,ten,gia from san_pham where id='".$_SESSION['id_them_vao_gio'][$i]."'";
$tv_1=mysql_query($tv);
$tv_2=mysql_fetch_array($tv_1);
$tien=$tv_2['gia']*$_SESSION['sl_them_vao_gio'][$i];
$tong_cong=$tong_cong+$tien;
if($_SESSION['sl_them_vao_gio'][$i]!=0)
{
echo "<tr>";
echo "<td>".$tv_2['ten']."</td>";
echo "<td>".$_SESSION['sl_them_vao_gio'][$i]."</td>";
echo "<td>".$tv_2['gia']."</td>";
echo "<td>".$tien."</td>";
echo "</tr>";
}
}
echo "</table>";
echo "<br>";
echo "Tổng giá trị đơn hàng là : ".$tong_cong." VNĐ";
}
if(isset($_SESSION['id_them_vao_gio']))
{
$so_luong=0;
for($i=0;$i<count($_SESSION['id_them_vao_gio']);$i++)
{
$so_luong=$so_luong+$_SESSION['sl_them_vao_gio'][$i];
}
if($so_luong!=0)
{
$gio_hang="co";
}
}
echo "Giỏ hàng";
echo "<br>";
echo "<br>";
if($gio_hang=="khong")
{
echo "Không có sản phẩm trong giỏ hàng";
}
else
{
echo "<table>";
echo "<tr>";
echo "<td width='200px' >Tên</td>";
echo "<td width='150px' >Số lượng</td>";
echo "<td width='150px' >Đơn giá</td>";
echo "<td width='170px' >Thành tiền</td>";
echo "</tr>";
$tong_cong=0;
for($i=0;$i<count($_SESSION['id_them_vao_gio']);$i++)
{
$tv="select id,ten,gia from san_pham where id='".$_SESSION['id_them_vao_gio'][$i]."'";
$tv_1=mysql_query($tv);
$tv_2=mysql_fetch_array($tv_1);
$tien=$tv_2['gia']*$_SESSION['sl_them_vao_gio'][$i];
$tong_cong=$tong_cong+$tien;
if($_SESSION['sl_them_vao_gio'][$i]!=0)
{
echo "<tr>";
echo "<td>".$tv_2['ten']."</td>";
echo "<td>".$_SESSION['sl_them_vao_gio'][$i]."</td>";
echo "<td>".$tv_2['gia']."</td>";
echo "<td>".$tien."</td>";
echo "</tr>";
}
}
echo "</table>";
echo "<br>";
echo "Tổng giá trị đơn hàng là : ".$tong_cong." VNĐ";
}
- Bạn xem đoạn code này (ở phần code trên) :
$gio_hang="khong";
if(isset($_SESSION['id_them_vao_gio']))
{
$so_luong=0;
for($i=0;$i<count($_SESSION['id_them_vao_gio']);$i++)
{
$so_luong=$so_luong+$_SESSION['sl_them_vao_gio'][$i];
}
if($so_luong!=0)
{
$gio_hang="co";
}
}
if(isset($_SESSION['id_them_vao_gio']))
{
$so_luong=0;
for($i=0;$i<count($_SESSION['id_them_vao_gio']);$i++)
{
$so_luong=$so_luong+$_SESSION['sl_them_vao_gio'][$i];
}
if($so_luong!=0)
{
$gio_hang="co";
}
}
- Đây là đoạn code xác định giỏ hàng có hay là không có sản phẩm.Ban đầu là không có.Để giỏ hàng có sản phẩm thì phải có 2 điều kiện.Điều kiện 1 là tồn tại mảng session 'id_them_vao_gio' (if(isset($_SESSION['id_them_vao_gio']))) , khi có sản phẩm trong giỏ hàng thì mảng này sẽ tồn tại (do web được lập trình như vậy) .Điều kiện 2 là số lượng trong giỏ hàng lớn hơn không , bạn cho vòng lặp 'for' chạy qua mảng session 'id_them_vao_gio' rồi cộng số lượng lại thì sẽ kiểm tra được.Biến 'gio_hang' được gán giá trị 'co' hoặc 'khong' để nói lên hiện trạng của giỏ hàng
- Nếu biến 'gio_hang' bằng 'khong' thì xuất ra dòng chữ 'Không có sản phẩm trong giỏ hàng' (trường hợp giỏ hàng không có sản phẩm) , ngược lại thì xuất sản phẩm trong giỏ hàng ra
- Các sản phẩm xuất ra trong giỏ hàng sẽ được xuất trong thẻ 'table' với 4 ô 'td' : 'Tên','Số lượng','Đơn giá','Thành tiền'.Bạn chạy vòng lặp 'for' qua mảng session 'id_them_vao_gio' , cứ mỗi lần chạy thì bạn lấy 'id sản phẩm' truy vấn vào bảng 'san_pham' để lấy thông tin sản phẩm ($tv="select id,ten,gia from san_pham where id=".$_SESSION['id_them_vao_gio'][$i];)
- Sau đó bạn xuất tên , giá sản phẩm ra (echo ra trong ô 'td').Số lượng sản phẩm thì bạn lấy từ biến session 'sl_them_vao_gio' (tương ứng với mỗi session 'id_them_vao_gio' khi chạy vòng lặp 'for').Cột thành tiền thì đơn giản là 1 phép nhân tính tiền số lượng * đơn giá ($tien=$tv_2['gia']*$_SESSION['sl_them_vao_gio'][$i]) , sau đó gán giá trị vào biến 'tien' rồi xuất (echo) ra
- Lưu ý là chỉ xuất sản phẩm ra khi số lượng của sản phẩm đó khác không (để ý chỗ if($_SESSION['sl_them_vao_gio'][$i]!=0) )
- Ở đây còn phải tính tổng tiền mua hàng nên khi chạy vòng lặp 'for' , bạn cộng dồn tiền ($tong_cong=$tong_cong+$tien;) của mỗi sản phẩm lại , sau khi chạy hết vòng lặp 'for' thì sẽ tính được tổng tiền mua hàng.Tổng tiền mua hàng được gán giá trị vào biến 'tong_cong' rồi sau đó xuất ra ( echo "Tổng giá trị đơn hàng là : ".$tong_cong." VNĐ";)
- Bạn thử mua hàng thì sẽ nhận được kết quả tương tự như sau :
- Ở đây giỏ hàng còn lỗi là ở chỗ khi bạn nhấn 'F5' thì lại tự thêm sản phẩm vào giỏ hàng.Để sửa lỗi này thì tại file 'chi_tiet_san_pham.php' , bạn thêm dòng code này sau ký tự '<?php' :
$_SESSION['trang_chi_tiet_gio_hang']="co";
- Dòng code này để xác định là bạn có truy cập vào trang chi tiết sản phẩm.Trong file 'gio_hang.php' bạn sửa dòng code if(isset($_GET['id'])) thành :
if(isset($_GET['id']) and $_SESSION['trang_chi_tiet_gio_hang']=="co")
- Và thêm dòng code này trước dòng code if(isset($_SESSION['id_them_vao_gio'])) (lưu ý là có 2 dòng code giống nhau , bạn chọn dòng code đầu (đầu file 'gio_hang.php')) :
$_SESSION['trang_chi_tiet_gio_hang']="huy_bo";
- Có thể hiểu thế này : khi mà người dùng truy cập vào trang chi tiết sản phẩm thì sẽ tiến hành đánh dấu là có vào trang chi tiết sản phẩm ($_SESSION['trang_chi_tiet_gio_hang']="co"; tại file 'chi_tiet_san_pham.php') , sau đó nếu người dùng mua hàng thì web sẽ cho truy cập lần đầu để khởi tạo session (if(isset($_GET['id']) and $_SESSION['trang_chi_tiet_gio_hang']=="co")) (do lần đầu biến session 'trang_chi_tiet_gio_hang' có giá trị 'co' nếu trang trước đó là trang chi tiết sản phẩm).Sau đó bạn đổi giá trị biến session 'trang_chi_tiet_gio_hang' thành giá trị 'huy_bo'.Như vậy nếu nhấn 'F5' thì giá trị của biến session 'trang_chi_tiet_gio_hang' sẽ thành 'huy_bo' => không chạy đoạn code tạo session khi vào trang giỏ hàng
- Kết thúc phần này thì file 'chi_tiet_san_pham.php' có nội dung tương tự như sau :
<?php
$_SESSION['trang_chi_tiet_gio_hang']="co";
$id=$_GET['id'];
$tv="select * from san_pham where id='$id'";
$tv_1=mysql_query($tv);
$tv_2=mysql_fetch_array($tv_1);
$link_anh="hinh_anh/san_pham/".$tv_2['hinh_anh'];
echo "<table>";
echo "<tr>";
echo "<td width='250px' align='center' >";
echo "<img src='$link_anh' width='150px' >";
echo "</td>";
echo "<td valign='top' >";
echo "<a href='#'>";
echo $tv_2['ten'];
echo "</a>";
echo "<br>";
echo "<br>";
echo $tv_2['gia'];
echo "<br>";
echo "<br>";
echo "<form>";
echo "<input type='hidden' name='thamso' value='gio_hang' > ";
echo "<input type='hidden' name='id' value='".$_GET['id']."' > ";
echo "<input type='text' name='so_luong' value='1' style='width:50px' > ";
echo "<input type='submit' value='Thêm vào giỏ' style='margin-left:15px' > ";
echo "</form>";
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td colspan='2' >";
echo "<br>";
echo "<br>";
echo $tv_2['noi_dung'];
echo "</td>";
echo "</tr>";
echo "</table>";
?>
$_SESSION['trang_chi_tiet_gio_hang']="co";
$id=$_GET['id'];
$tv="select * from san_pham where id='$id'";
$tv_1=mysql_query($tv);
$tv_2=mysql_fetch_array($tv_1);
$link_anh="hinh_anh/san_pham/".$tv_2['hinh_anh'];
echo "<table>";
echo "<tr>";
echo "<td width='250px' align='center' >";
echo "<img src='$link_anh' width='150px' >";
echo "</td>";
echo "<td valign='top' >";
echo "<a href='#'>";
echo $tv_2['ten'];
echo "</a>";
echo "<br>";
echo "<br>";
echo $tv_2['gia'];
echo "<br>";
echo "<br>";
echo "<form>";
echo "<input type='hidden' name='thamso' value='gio_hang' > ";
echo "<input type='hidden' name='id' value='".$_GET['id']."' > ";
echo "<input type='text' name='so_luong' value='1' style='width:50px' > ";
echo "<input type='submit' value='Thêm vào giỏ' style='margin-left:15px' > ";
echo "</form>";
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td colspan='2' >";
echo "<br>";
echo "<br>";
echo $tv_2['noi_dung'];
echo "</td>";
echo "</tr>";
echo "</table>";
?>
- Và file 'gio_hang.php' có nội dung tương tự như sau :
<?php
if(isset($_GET['id']) and $_SESSION['trang_chi_tiet_gio_hang']=="co")
{
$_SESSION['trang_chi_tiet_gio_hang']="huy_bo";
if(isset($_SESSION['id_them_vao_gio']))
{
$so=count($_SESSION['id_them_vao_gio']);
$trung_lap="khong";
for($i=0;$i<count($_SESSION['id_them_vao_gio']);$i++)
{
if($_SESSION['id_them_vao_gio'][$i]==$_GET['id'])
{
$trung_lap="co";
$vi_tri_trung_lap=$i;
break;
}
}
if($trung_lap=="khong")
{
$_SESSION['id_them_vao_gio'][$so]=$_GET['id'];
$_SESSION['sl_them_vao_gio'][$so]=$_GET['so_luong'];
}
if($trung_lap=="co")
{
$_SESSION['sl_them_vao_gio'][$vi_tri_trung_lap]=$_SESSION['sl_them_vao_gio'][$vi_tri_trung_lap]+$_GET['so_luong'];
}
}
else
{
$_SESSION['id_them_vao_gio'][0]=$_GET['id'];
$_SESSION['sl_them_vao_gio'][0]=$_GET['so_luong'];
}
}
$gio_hang="khong";
if(isset($_SESSION['id_them_vao_gio']))
{
$so_luong=0;
for($i=0;$i<count($_SESSION['id_them_vao_gio']);$i++)
{
$so_luong=$so_luong+$_SESSION['sl_them_vao_gio'][$i];
}
if($so_luong!=0)
{
$gio_hang="co";
}
}
echo "Giỏ hàng";
echo "<br>";
echo "<br>";
if($gio_hang=="khong")
{
echo "Không có sản phẩm trong giỏ hàng";
}
else
{
echo "<table>";
echo "<tr>";
echo "<td width='200px' >Tên</td>";
echo "<td width='150px' >Số lượng</td>";
echo "<td width='150px' >Đơn giá</td>";
echo "<td width='170px' >Thành tiền</td>";
echo "</tr>";
$tong_cong=0;
for($i=0;$i<count($_SESSION['id_them_vao_gio']);$i++)
{
$tv="select id,ten,gia from san_pham where id='".$_SESSION['id_them_vao_gio'][$i]."'";
$tv_1=mysql_query($tv);
$tv_2=mysql_fetch_array($tv_1);
$tien=$tv_2['gia']*$_SESSION['sl_them_vao_gio'][$i];
$tong_cong=$tong_cong+$tien;
if($_SESSION['sl_them_vao_gio'][$i]!=0)
{
echo "<tr>";
echo "<td>".$tv_2['ten']."</td>";
echo "<td>".$_SESSION['sl_them_vao_gio'][$i]."</td>";
echo "<td>".$tv_2['gia']."</td>";
echo "<td>".$tien."</td>";
echo "</tr>";
}
}
echo "</table>";
echo "<br>";
echo "Tổng giá trị đơn hàng là : ".$tong_cong." VNĐ";
}
?>
if(isset($_GET['id']) and $_SESSION['trang_chi_tiet_gio_hang']=="co")
{
$_SESSION['trang_chi_tiet_gio_hang']="huy_bo";
if(isset($_SESSION['id_them_vao_gio']))
{
$so=count($_SESSION['id_them_vao_gio']);
$trung_lap="khong";
for($i=0;$i<count($_SESSION['id_them_vao_gio']);$i++)
{
if($_SESSION['id_them_vao_gio'][$i]==$_GET['id'])
{
$trung_lap="co";
$vi_tri_trung_lap=$i;
break;
}
}
if($trung_lap=="khong")
{
$_SESSION['id_them_vao_gio'][$so]=$_GET['id'];
$_SESSION['sl_them_vao_gio'][$so]=$_GET['so_luong'];
}
if($trung_lap=="co")
{
$_SESSION['sl_them_vao_gio'][$vi_tri_trung_lap]=$_SESSION['sl_them_vao_gio'][$vi_tri_trung_lap]+$_GET['so_luong'];
}
}
else
{
$_SESSION['id_them_vao_gio'][0]=$_GET['id'];
$_SESSION['sl_them_vao_gio'][0]=$_GET['so_luong'];
}
}
$gio_hang="khong";
if(isset($_SESSION['id_them_vao_gio']))
{
$so_luong=0;
for($i=0;$i<count($_SESSION['id_them_vao_gio']);$i++)
{
$so_luong=$so_luong+$_SESSION['sl_them_vao_gio'][$i];
}
if($so_luong!=0)
{
$gio_hang="co";
}
}
echo "Giỏ hàng";
echo "<br>";
echo "<br>";
if($gio_hang=="khong")
{
echo "Không có sản phẩm trong giỏ hàng";
}
else
{
echo "<table>";
echo "<tr>";
echo "<td width='200px' >Tên</td>";
echo "<td width='150px' >Số lượng</td>";
echo "<td width='150px' >Đơn giá</td>";
echo "<td width='170px' >Thành tiền</td>";
echo "</tr>";
$tong_cong=0;
for($i=0;$i<count($_SESSION['id_them_vao_gio']);$i++)
{
$tv="select id,ten,gia from san_pham where id='".$_SESSION['id_them_vao_gio'][$i]."'";
$tv_1=mysql_query($tv);
$tv_2=mysql_fetch_array($tv_1);
$tien=$tv_2['gia']*$_SESSION['sl_them_vao_gio'][$i];
$tong_cong=$tong_cong+$tien;
if($_SESSION['sl_them_vao_gio'][$i]!=0)
{
echo "<tr>";
echo "<td>".$tv_2['ten']."</td>";
echo "<td>".$_SESSION['sl_them_vao_gio'][$i]."</td>";
echo "<td>".$tv_2['gia']."</td>";
echo "<td>".$tien."</td>";
echo "</tr>";
}
}
echo "</table>";
echo "<br>";
echo "Tổng giá trị đơn hàng là : ".$tong_cong." VNĐ";
}
?>