cursuri cursuri cursuri cursuri cursuri cursuri
cursuri
cursuri
cursuri
Cursuri    Tutoriale    Teste    Jocuri
 
 
cursuri Am uitat utilizatorul cursuri Am uitat parola
cursuri online Cursuri online
Cursuri online gratuite
cursuri online Tutoriale
Cum sa faci orice
cursuri online Teste online
Testeaza-ti cunostintele
cursuri online Revista
Aboneaza-te gratuit
cursuri online Jocuri
Jocuri educative
cursuri online Inregistreaza-te
Intra in comunitate
eCursuri » Cursuri online » Tehnologia informatiei » Magazin online cu PHP si MySql » Lectia 16
Afisarea produselor
6054 afisari

Rasfoirea categoriilor

In partea stanga a site-ului afisezi lista de categorii. Cand clientul va da click pe o categorie in lista, se vor afisa toate produsele din categoria respectiva. Pagina principala cuprinde aceasta lista in fisierul leftNav.php, fisier utilizat pentru generarea acestei liste. Functia responsabila pentru generarea listei de categorii este formatCategories() din biblioteca de functii category-functions.php.
In rezumat, iata ce face functia formatCategories():
• Preia toti copiii categorii.
• Preia categoria parinte si pe cele de la acelasi nivel.
• Preia toti parintii parintiilor pana se ajunge la radacina listei

Iata si codul sursa al fisierului leftNav.php:

<?php
if (!defined('WEB_ROOT')) {
exit;
}

// preia toate categoriile
$categories = fetchCategories();

// formatare categorii pentru afisare
$categories = formatCategories($categories, $catId);
?>
<ul>
<li><a href="<?php echo $_SERVER['PHP_SELF']; ?>">All Category</a></li>
<?php
foreach ($categories as $category) {
extract($category);

$level = ($cat_parent_id == 0) ? 1 : 2;
$url = $_SERVER['PHP_SELF'] . "?c=$cat_id";

if ($level == 2) {
$cat_name = '? ? ??' . $cat_name;
}

$listId = '';
if ($cat_id == $catId) {
$listId = ' id="current"';
}
?>
<li<?php echo $listId; ?>><a href="<?php echo $url; ?>"><?php echo $cat_name; ?></a></li>
<?php
}
?>
</ul>
leftNav.php


Categoriile sunt afisate ca o lista neordonata <ul>. O lista neordonata arata asa:
• Lista unu
• Lista doi
• Copil unu
• Copil doi

Lista de produse

Cand dai click pe o categorie in lista, se afiseaza toate produsele din categoria respectiva. De exemplu, daca dai click pe Locomotive electrice atunci toate produsele din aceasta categorie se vor afisa.

Daca te uiti in codul sursa al fisierului productList.php poti vedea ca mai intai este apelata functia getChildCategories().

Codul sursa al fisierului productList.php:

<?php
if (!defined('WEB_ROOT')) {
exit;
}

$productsPerRow = 2;
$productsPerPage = 4;

//$productList = getProductList($catId);
$children = array_merge(array($catId), getChildCategories(NULL, $catId));
$children = ' (' . implode(', ', $children) . ')';

$sql = "SELECT pd_id, pd_name, pd_price, pd_thumbnail, pd_qty, c.cat_id
FROM tbl_product pd, tbl_category c
WHERE pd.cat_id = c.cat_id AND pd.cat_id IN $children
ORDER BY pd_name";
$result = dbQuery(getPagingQuery($sql, $productsPerPage));
$pagingLink = getPagingLink($sql, $productsPerPage, "c=$catId");
$numProduct = dbNumRows($result);

// imaginile produselor sunt aranjate intr-un tabel
$columnWidth = (int)(100 / $productsPerRow);
?>
<table width="100%" border="0" cellspacing="0" cellpadding="20">
<?php
if ($numProduct > 0 ) {

$i = 0;
while ($row = dbFetchAssoc($result)) {

extract($row);
if ($pd_thumbnail) {
$pd_thumbnail = WEB_ROOT . 'images/product/' . $pd_thumbnail;
} else {
$pd_thumbnail = WEB_ROOT . 'images/no-image-small.png';
}

if ($i % $productsPerRow == 0) {
echo '<tr>';
}

// formatatm pretul
$pd_price = displayAmount($pd_price);

echo "<td width="$columnWidth%" align="center"><a href="" . $_SERVER['PHP_SELF'] . "?c=$catId&p=$pd_id" . ""><img src="$pd_thumbnail" border="0"><br>$pd_name</a><br>Price : $pd_price";

// daca produsul nu este in stoc
// ii spunem clientului
if ($pd_qty <= 0) {
echo "<br>Out Of Stock";
}

echo "</td>rn";

if ($i % $productsPerRow == $productsPerRow - 1) {
echo '</tr>';
}

$i += 1;
}

if ($i % $productsPerRow > 0) {
echo '<td colspan="' . ($productsPerRow - ($i % $productsPerRow)) . '">?</td>';
}

} else {
?>
<tr><td width="100%" align="center" valign="center">No products in this category</td></tr>
<?php
}
?>
</table>
<p align="center"><?php echo $pagingLink; ?></p>
productList.php

Inainte de afisarea prodususelor ma intai te asiguri ca ai vreun produs de afisat. Daca dbNumRows($result) returneaza zero, asta inseamna ca nu ai produse de afisat. Deci, vei afisa un mesaj prin care ii spui clientului ca nu sunt produse in categoria respectiva.

Daca ai produse de afisat, le vei pune intr-un tabel unde fiecare lungime a coloanei depinde de cate produse afisezi pe un rand. Apoi afisezi fiecare produs din lista.

Cand afisezi produsul, folosesti functia displayAmount() pentru a formata modul in care va arata pretul. Iata ce face functia asta:

function displayAmount($amount)
{
global $shopConfig;
return $shopConfig['currency'] . number_format($amount);
}


Ea concateneaza suma cu simbolul monedei (aici dolarul) si-o formateaza pentru afisare. Pentru asta ai utilizat functia din biblioteca de functii PHP number_format().

Mai jos ai o imagine a cum va arata listarea produselor:

cursuri


Detaliile produsului

Cand vei da click pe un produs in lista, se va deschide pagina cu detaliile produsului. Pentru fiecare produs vei afisa imaginea marita, numele, pretul si butonul Adauga in cos.

Iata cum va arata pagina produsului:

cursuri


Acest tip de model este comun site-urilor de vanzari si urmand acest model, nu-l vei face pe client sa devina confuz.

Legat de butonul Adauga in cos, ai un lucru important de spus. Vei afisa acest buton numai daca in stoc mai exista produse. Daca stocul este gol, vei afisa mesajul Produs indisponibil momentan.

Iata codul sursa al fisierului productDetail.php:

<?php
if (!defined('WEB_ROOT')) {
exit;
}

$product = getProductDetail($pdId, $catId);

// avem $pd_name, $pd_price, $pd_description, $pd_image, $cart_url
extract($product);
?>
<table width="100%" border="0" cellspacing="0" cellpadding="10">
<tr>
<td align="center"><img src="<?php echo $pd_image; ?>" border="0" alt="<?php echo $pd_name; ?>"></td>
<td valign="middle">
<strong><?php echo $pd_name; ?></strong><br>
Price : <?php echo displayAmount($pd_price); ?><br>
<?php
// daca mai avem produsul in stoc
// afisam butonul dauga in cos
if ($pd_qty > 0) {
?>
<input type="button" name="btnAddToCart" value="Add To Cart >" onClick="window.location.href='<?php echo $cart_url; ?>';" class="addToCartButton">
<?php
} else {
echo 'Out Of Stock';
}
?>
</td>
</tr>
<tr align="left">
<td colspan="2"><?php echo $pd_description; ?></td>
</tr>
</table>
productDetails.php
« Pagina principala Cosul de cumparaturi »
0 comentarii
Adauga comentariu

Pentru a adauga comentarii trebuie sa fii membru eCursuri.ro

Intra in contul tau sau inregistreaza-te GRATUIT (dreapta sus)
Publicitate
Cuprinsul cursului
Limbajul PHP
1. Introducere in limbajul PHP
2. Variabile PHP
3. Operatori PHP
4. Structuri de control
5. Utilizarea tablourilor si scrierea functiilor
6. PHP orientat spre obiecte
MySQL
7. Introducere in MySQL
8. Structura si arhitectura bazelor de date
9. Construirea bazei de date
10. Interogarea INSERT
11. Interogarea SELECT
12. Interogarile UPDATE si DELETE
Realizarea magazinului online
13. Introducere in realizarea magazinul online
14. Crearea bazei de date
15. Pagina principala
16. Afisarea produselor
17. Cosul de cumparaturi
18. Realizarea comenzii
19. Modulul de administrare
20. Instalare Apache, MySQL si PHP in Windows
Cursuri noi Top cursuri
Curs de legislatie rutiera

7 lectii online
Excel prin exemple

10 lectii online
Windows XP prin exemple

10 lectii online
Infiintarea unei firme

6 lectii online
Gramatica limbii engleze

27 lectii online
Introducere in e-Business

25 lectii online
Curs de Machiaj

13 lectii online
Curs de Fashion

17 lectii online
Curs de Barman

10 lectii online
HTML pe intelesul tuturor

11 lectii online
cursuri
Copyright © 2005-2011 - eCursuri.ro - toate drepturile rezervate - E-mail: contact@ecursuri.ro Cursuri și certificări GDPR