Autor | Zpráva | ||
---|---|---|---|
andy_99 Profil |
#1 · Zasláno: 30. 9. 2014, 13:07:43
ahoj. mám na vás jednu zaujímavú otázku .. Ide o toto: Mám stránku napr: index.php. pomocou .htaccess som si vytvoril pravidlá na pekné url. sú tu dve url : localhost/e-shop/nejaky_typ_produktu a localhost/e-shop/nejaky_typ_produktu/a_jeho_detail_id . V menu mám odkazy na rôzne typy produktov a následne po kliknutí na nejaký odkaz sa mi zobrazí viacero produktov, ktoré podliehajú tomu typu. To všetko síce spravené mám, no neviem či správne .. robil som to pomocou switch case. A ten hlavný problém: ako vyriešiť, že po kliknutí už na nejaký odkaz na konkrétny produkt aby sa mi zobraziil samostatne tento produkt. Dúfam že to je jasne napísané lebo jasnejšie som to už asi nevedel ani napísať ďakujem za rady.
|
||
Tori Profil |
andy_99:
„V menu mám odkazy na rôzne typy produktov a následne po kliknutí na nejaký odkaz sa mi zobrazí viacero produktov, ktoré podliehajú tomu typu. [...] robil som to pomocou switch case.“ Typy produktů jsou totéž jako kategorie, předpokládám. Jak máte navrženou databázi, že musíte používat switch? Většinou se název, ID a další údaje o kategorii čtou z DB podle části URL (buď ID, nebo celý text "nejaky_typ_produktu") - je potřeba mít ty části URL uložené u každé kategorie a zajistit, aby se nemohly opakovat. Potom podle ID kategorie načtete z DB všechny produkty, co do ní patří (+ stránkování, řazení,...). |
||
juriad Profil |
#3 · Zasláno: 30. 9. 2014, 13:23:25
andy_99:
Takže máš zatím jedinou stránku index.php, která může a nemusí dostat parametr typ-produktu. Pokud ho nedostane, zobrazí se úvodní stránka. Pokud jej dostane, provede se jedna větev switche a úvod se nezobrazí. Tedy něco jako: switch($_GET['typ-produktu']) { case 'hrnicky': ... stránka kategorie hrníčky break; case 'holinky': ... stránka kategorie holínky break; case 'hromosvody': ... stránka kategorie hromosvody break; default: ... úvodní stránka break; } Zaprvé, zapomeň na .htaccess, přepisování adres se dá udělat kdykoli později. Zadruhé, měl jsi začít přemýšlet nad těmi produkty než jsi začal cokoli programovat. Kolik těch produktů máš? Jak často se budou měnit? Je přípustná nutnost změny PHP při změně/přidání prodktu? Co vše se bude v čase měnit? Podle odpovědí (raději detailnějších) se rozhodneš jakou technologii použiješ. Pokud nejsou velké nároky, může každý mít jednu stránku, kterou budeš includovat, podle názvu produktu. V opačném případě je skoro chybou nepoužít databázi a vše včetně stránek kategorií a úvodní stránky řešit přes ní. Zbastlit to můžeš třeba tak, že každý case bude obsahovat další swicth: case 'hrnicky': switch($_GET['produkt']) { case 'se slunickem': ... stránka hrníčku se sluníčkem break; case 's hrochem': ... stránka hrníčku s hrochem break; default: ... stránka kategorie hrníčky (nebyl zadán, nebo byl zadán chybný produkt) } break; |
||
andy_99 Profil |
#4 · Zasláno: 30. 9. 2014, 13:44:45
skúsim to takto ešte raz napísať takto: z DB som si vybral všetky kategórie a uložil do premennej $cat . túto premennú som pomocou foreach($cat as $c) prebehol
echo'<a href="/e-shop/'.$c['category'].'/'.$c['id'].'">'.$c['category'].'</a>'; switch($_GET['category]) a čo ďalej ?? aký case tam vložím keď nepoznám všetky možnosti?.. ja neviem aké kategórie ešte do časti case pribudnú alebo ubudnú?! a ručne to písať všetky kategórie nechcem. |
||
juriad Profil |
andy_99:
Zapomeň na přepisování adres, začni tím, že eshop vytvoříš s hnusnými adresami - alespoň budeš vědět, o který skript se jedná. Po svém eshopu tedy chceš tři různé akce 1) zobrazit titulní stránku se seznamem kategorií 2) zobrazit seznam produktů na stránce kategorie 3) zobrazit detail produktu Každá z těchto akcí bude mít svou stránku - právě jednu. index.php - nechce žádné parametry category.php - chce parametr id kategorie - pokud ho nedostane přesměruje na index.php product.php - chce jeden nebo dva parametry (záleží na tobě) - pokud chce jen id produktu a nestane jej, přesměruje na index.php (nebo na category.php, pokud je kategorie známá) A teď zkus vytvořit jednu jedinou obecnou stránku produktu. Začni tím, že podle zadaného id (jako parametr v URL) vypíše název a vlastnosti. Pak přidáš výpis relevantních fotek, pak komentářů, pak hodnocení, pak dostupnosti v různých skladech. Všechny tyto informace získáš z databáze univerzálními SELECTy, které budou mít jako parametr ID produktu. Vytvoř si tedy úplně nezávisle na tom co už máš skript product.php |
||
andy_99 Profil |
#6 · Zasláno: 30. 9. 2014, 14:01:19
presne tomuto som sa chcel vyhnúť :) .. ak dobre chápem na každej tejto stránke bude nejaká časť kódu ktorá sa bude opakovať na každej z týchto troch stránok.? ci mýlim sa?
|
||
juriad Profil |
#7 · Zasláno: 30. 9. 2014, 14:09:05
Ano bude. Každý z těchto skriptů bude obsahovat stejnou hlavičku, patičku, menu. Ale o to teď nejde. Ty hlavně potřebuješ udělat stránku, která bude zobrazovat data.
|
||
andy_99 Profil |
#8 · Zasláno: 30. 9. 2014, 14:11:22
Ešte pre info. existuje aj iný spôsob či toto je jediný ako podobnú stánku vytvoriť? a ďakujem za rady
|
||
Joker Profil |
#9 · Zasláno: 30. 9. 2014, 14:31:52
andy_99:
„existuje aj iný spôsob či toto je jediný ako podobnú stánku vytvoriť?“ To uvedené je jeden z hromady způsobů, jak se to dá udělat. |
||
Časová prodleva: 10 let
|
0