skanuj0528

skanuj0528



Rozdział 21. ♦ Tworzenie sklepu internetowego 549

SELECT GROUP_CONCAT(Autorzy.Nazwa) AS Autor. Tytuł. ISBN. Wydawnictwa.Nazwa

AS Wydawnictwo. Cena. Książki.Id AS Id

FROM Książki, Wydawnictwa. Autorzy, KsiążkiAutorzy

WHERE Książki.Wydawnictwold - Wydawnictwa.Id ANO KsiazkiAutorzy.'Książkald' = Książki.Id AND KsiazkiAutorzy.Autorld - Autorzy.Id AND Jwhere GROUP BY Książki.Id

Ponieważ jedna książka może mieć kilku autorów, wykorzystywane jest grupowanie ze względu na identyfikator książki oraz funkcja łącząca dane z grupowanych kolumn o nazwie GR0UP_C0NCAT. W tym miejscu musimy zaznaczyć, że stosując to zapytania popełniliśmy pewnego rodzaju oszustwo, gdyż zadziała ono w pełni poprawnie jedynie w przypadku poszukiwania ze względu na tytuł. W takim wypadku, jeśli książka będzie miała wielu autorów, ich dane faktycznie znajdą się w wynikach zapytania (rysunek 21.6). Kiedy jednak występuje wyszukiwanie ze względu na autora, a książka będzie miała więcej autorów, dane pozostałych nie zostaną uwzględnione (por. tytuł Lovelock na rysunku 21.5).

Strona główna Oferta Twói koszyk Rejestracja    Logo strony !

Autor |    Tytuł: |    Szukaj |

Wyniki wyszukiwania

Ciytul Autor    'ISBN    Wydawnictwo Cena Dodaj

Łoyelock Kathryn Kidd.Orson Scott Card 8371801025 Prószyński i S-ka ',3 50 Do koszyka

Rysunek 21.6. Wyszukiwanie ze wzglądu na tytuł pozwala na odnalezienie danych wszystkich autorów

Formalnie powinniśmy bowiem wykonać dwa zapytania. Pierwsze powinno odszukać identyfikator książek spełniających warunki wyszukiwania. Drugie powinno pobierać szczegółowe dane tychże książek. Jednak aby nie komplikować dodatkowo kodu, możemy chyba pozwolić sobie na takie uproszczenie, zwłaszcza że na stronach wyświetlających dane szczegółowe każdej książki (funkcja showitem) będziemy już uwzględniać wszelkie dane.

Wymienione wyżej zapytanie jest wysyłane do serwera MySQL za pomocą funkcji mysql_query, i jeśli jego wykonanie zakończy się sukcesem, jest konstruowana tabela HTML, w której są umieszczane wyniki. Pojedynczy wiersz tabeli odpowiada jednej znalezionej pozycji książkowej. Każdy tytuł jest wyświetlany w postaci odnośnika o schematycznej postaci:

<a h ref-1 ma i n.php?acti on=show1tem&i d=idk'>tytu?</a> gdzie idk określa identyfikator książki. Jest to zatem wywołanie skryptu main.php, któremu są przekazywane parametry action, o wartości showitem, i id, o wartości wskazującej identyfikator książki. W ostatnim polu każdego wiersza tabeli znajduje się z kolei odnośnik umożliwiający dodanie danej książki do koszyka. Odnośnik ten ma schematyczną postać:

<a href=1 ma i n.php?acti on-atb&i d-idk'>Do koszyka</a>

Jest to zatem wywołanie skryptu main.php, któremu są przekazywane parametry action, o wartości atb, i id, o wartości wskazującej identyfikator książki.


Wyszukiwarka

Podobne podstrony:
skanuj0510 Rozdział 21. ♦ Tworzenie sklepu internetowego 531 else if(S_GET[ action ] -= atb ){ if(i

więcej podobnych podstron