go
komunikace  internet  prog.  web-prog.  hardware  software  bezpečnost  magazín  disk.fórum
   

Nákupní košík v PHP (1.)

počet názorů: 4   poslední: 24.01.2004 19:28:14   číst názory   přidat názor   vytisknout

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.




Autor: Jan Ježek, informace o autorovi
Rubrika: Programování - PHP
Čtenářů: 1213     Zobrazení: 1478

Související články:
Nákupní košík v PHP (2.)

Jak hodnotíte tento článek?

lepší <-->horší
Názory: počet: 4   poslední: 24.01.2004 19:28:14   číst názory   přidat názor   vytisknout


Nadpis Autor Datum
Mensi dotaz Milan 19.01.2004 11:52:54
Dodam... Jakub Podhorský 19.01.2004 14:53:25
:-/ Pepa Z. 20.01.2004 13:18:36
ok MIRO 24.01.2004 19:28:14
Nový příspěvek
Věc:
Jméno:
E-mail:

- nepoužívejte HTML k formátování textu příspěvku
- nepoužívejte A HREF= pro odkazy, aktivní budou automaticky
- odřádkování provádějte klávesou ENTER, nikoliv tagem <br>
zasílat odpovědi na můj e-mail











(c) P.E.S. consulting, s.r.o. 2000-2004. Provozovatel nezodpovídá za obsah a původ článků a diskuzních příspěvků, odpovědnost nesou jednotliví redaktoři a autoři. Informace o PC Světě naleznete zde
Novinka: Bazar
Na PC Světě nově zprovozněn bazar techniky a příslušenství
www.pcsvet.cz/bazar/
ADSL připojení
ADSL připojení
Anketa
Novinky e-mailem
Zasílání denního nebo týdenního přehledu nových článků
Nový redaktor
Chcete se stát přispivatelem pro PC Svět? info a registrace zde



ATLAS.CZ
powered by PES RedSys 3.0





© 2000-2004 pcsvět.cz / pcsvet@pcsvet.cz / ISSN 1213-6042