Pomocí tohoto článku si snadno vytvoříte jednoduchý nákupní
košík, který můžete využít pro stavbu internetového obchodu.
Budeme využívat sessions, databáze a také JavaScript.
Když se podíváte po PHP zdrojích na Internetu, zjistíte, že
zde není dostatek kvalitních obchodů k používání. Tvorba
vlastního eshopu není nic složitého, ale můžete mít problémy s
vytvořením nákupního košíku. Jeho návrhem se zabývá náš
článek.
Jako obvykle budeme používat MySQL databázi k uložení
seznamu produktů a jejich cen. Pak použijeme sessions k
uložení těch produktů, které si chce návštěvník uložit do
košíku a později koupit. Výhodou je, že se nikde nemusí
registrovat.
To je dobrá cesta, jak vytvořit košík, ale co se stane,
když uživatel zavře okno prohlížeče a přijde zítra? Pomocí
cookies můžeme ukládat informace o tom, co má zákazník v
košíku na jeho počítači. Tyto data zůstanou nedotčeny i potom,
co uživatel zavře okno prohlížeče.
Databáze
Představme si, že na Internetu chceme prodávat knihy.
Potřebujeme tabulku která bude obsahovat údaje o produktech a
druhou s obsahem nákupních košíků. Databáze vypadá takto:
create table produkty (
id int auto_increment not null,
jmeno varchar(50),
popis varchar(250),
cena decimal(4,2),
primary key(id)
);
create table kosik (
id int auto_increment not null,
cookieid varchar(50),
produktid int,
pocet int,
primary key(id)
);
První tabulka produkty bude obsahovat seznam produktů,
které si uživatel bude moci vložit do svého košíku. Tabulka má
čtyři pole.
- id: identifikační číslo, které má každý řádek
jiné
- jmeno: jméno produktu v katalogu
- popis: krátký popis produktu
- cena: cena výrobku, například 1899,90
Tabulka kosik obsahuje dataily o produktech v zákaznických
nákupních košících. Obsahuje také čtyři pole.
- id: identifikační číslo každého košíku
- cookieid: nejdůležitější pole, hodnota session
ID, se kterou uživatel začal prohlížet naše produkty
- produktid: id produktu uloženého v košíku
- pocet: určuje, kolikrát si objednává produkt
V článku vám neukáži, jak vytvořit formuláře k přidávání,
editování nebo mazání výrobků, to si můžete udělat každý sám.
Manuálně přidáme do databáze nějaké knihy.
insert into produkty values(0, 'Kuchařka',
'Jedinečné recepty které vás zakulatí!', 199.90);
insert into produkty values(0, 'Fyzika',
'Učebnice fyziky pro základní školu.',79.90);
insert into produkty values(0, 'Pán prstenů',
'Fantasy příběh ze Středozemě!', 159.90);
Nyní máme připravenou databázi a musíme si vytvořit
jednoduchý script, který vytvoří seznam produktů a odkazy na
přidání výrobku do nákupního košíku (ten vytvoříme
později).
Zobrazování produktů
Jistě víte, jak zobrazit seznam produktů. Vytvoříme si
soubor db.php a napíšeme do něj kód pro připojení k
databázi. Ten pak budeme vkládat do ostatních souborů.
<?php
$server = "localhost";
$user = "admin";
$pass = "password";
$name = "cart";
$db = mysql_connect($server, $user, $pass);
mysql_select_db($name, $db);
function KosikId()
{
if(isset($_COOKIE["KosikId"]))
{
return $_COOKIE["KosikId"];
}
else
{
session_start();
setcookie("KosikId", session_id(), time() + ((3600 * 24) * 30));
return session_id();
}
}
?>
Nejprve jsme definovali čtyři proměnné s informacemi o
MySQL databázi. Pak jsme se připojili k databázi, ale nejsou
ošetřeny možné chyby. To zůstalo na vás.
Funkce KosikID() používá cookie proměnou k sledování pohybu
uživatele mezi sessions. Začíná kontrolou, jestli je daná
cookie proměnná. Když není, zjistí session ID a uloží je jako
hodnotu cookie, která vyprší za 30 dní (počet sekund v hodině
* 24 hodin, to celé * 30 dní).
Tento soubor vložíme do souboru seznam.php, který
bude zobrazovat produkty. Ten začíná takto:
<?php
include("db.php");
$result = mysql_query("select * from produkty order by jmeno asc");
?>
Jak si můžete všimnout, vložíme db.php ke spojení s
databází. Pak vybereme seznam produktů a uložíme je do
proměnné $result.
Každá položka je zobrazena v tabulce. Vzhled je velmi
jednoduchý tak, abyste si ho mohli jednoduše upravit. Nejprve
sestavíme tabulku a pak do jednotlivých řádků vkládáme
produkty.
<?php
while($row = mysql_fetch_array($result))
{
?>
U každé položky zobrazíme její jméno, cenu, popis a odkaz k
přidání do nákupního košíku. Zdrojový kód není celý, vybírám
jen nejzajímavější úseky.
<tr>
<td width="30%">
<?php echo $row["jmeno"]; ?>
</td>
<td width="10%">
<?php echo $row["cena"]; ?> Kč
</td>
<td width="50%">
<?php echo $row["popis"]; ?>
</td>
<td width="10%">
<a href="kosik.php?action=add&id=<?php echo $row["id"];
?>&pocet=1">Přidat</a>
</td>
</tr>
Nakonec uzavřeme tabulku a zobrazíme odkaz na nákupní
košík.
</table>
<a href="kosik.php">Váš nákupní košík</a>
</body>
</html>
Odkaz "Přidat" vloží zboží do košíku. Proto se příště
podíváme na soubor kosik.php, který umožňuje přidávat,
upravovat a mazat položky v nákupním košíku. Také bude umět
spočítat cenu jednotlivých položek a celkovou cenu
zásilky.