skanuj0540

skanuj0540



Rozdział 21. ♦ Tworzenie sklepu internetowego 561

W przypadku gdy koszyk nie jest pusty, jest nawiązywane połączenie z serwerem My-SQL oraz w pętli foreach są odczytywane identyfikatory zapisanych w tablicy koszyk książek. Te identyfikatory są zapisywane w zmiennej ids i wykorzystywane jako część warunku w zapytaniu SQL:

SELECT Id. 'Tytuł'. Cena FROM Książki WHERE id IN($ids) ORDER BY 'Tytuł'

Powyższe zapytanie jest wysyłane do serwera za pomocą funkcji mysql_query, a jego wyniki są odczytywane w pętli while za pomocą funkcji mysql_fetch_row. Odczytane dane są umieszczane w tabeli HTML, której poszczególne wiersze mają schematyczną postać:

<tr>

<tó>Tytuł</tć>

<td>Cena</tó>

<td align=‘ ri ght1 >/lość</td>

<td align='right'>Wartoić</td>

</tr>

Poszczególne elementy tabeli są pobierane zarówno z wyników zapytania, jak i z tablicy koszyk, tak jak miało to miejsce w przypadku funkcji showBasket. W dolnej komórce tabeli jest umieszczany odnośnik pozwalający na zapisanie zamówienia w bazie. Ma on postać:

<a href-'main.php?action=saveorder'><h3>Złóż zamówienie</h3></a> jest to zatem wywołanie skryptu main.php z parametrem action ustawionym na save-order. Takie wywołanie powoduje wykonanie funkcji o nazwie saveOrder, której treść została przedstawiona na listingu 21.13.

Listing 21.13. Kod funkcji sayeOrder_

function saveorder{)

{

i f(!i sSet($_SESSI0N['Userld' ])){ echo("<h3 align-'center'> Aby złożyć zamówienie muszisz być "): echo(”<a href='main.php?action-slf'> zalogowany</a>.<br>"): echoCJeśli nie masz jeszcze konta w naszym serwisie. “); echo("<a href='main.php?action=srf'>załóź je teraz</a>.<h3>"): return;

}

if(!isSet(t SESSIONE'koszyk'])){

$_SESSI0N[' koszyk'] = arrayO:

}

1f(count($_SESSI0N['koszyk']) < 1){ echo("<p align-'center‘>Koszyk jest pusty</p>"); return:

}

i f(!makeDBConnecti on()){

echo(”<h3 align='center'>Wystąpi! błąd serwera.</h3>”): return:


Wyszukiwarka

Podobne podstrony:
skanuj0522 Rozdział 21. ♦ Tworzenie sklepu internetowego 543 W przypadku wystąpienia problemów z poł

więcej podobnych podstron