Autor Zpráva
Kubista
Profil
Zdravím,

vždy když jsem se snažil o "hezká URL" tak jsem je tvořil něco ve smyslu:
/1-cesko-se-chysta-na-euro/ => ta 1 znamená IDčko v DB a podle toho si potom zobrazím článek

a chci se zeptat jak to funguje když tam je pouze text (nadpis článku)
/cesko-se-chysta-na-euro/ => to se porovnává nadpis toho článku nebo je to nějak ještě lépe řešeno? :-)

Předem díky za odpověď
joe
Profil
Ne, porovnává se to co je v té adrese.

V db budeš mít v tabulce sloupec ident a pak třeba

SELECT * FROM webpages WHERE ident = 'cesko-se-chysta-na-euro';
Kubista
Profil
Pokud to dobře chápu tak řekněme:

nadpis = Česko se chystá na Euro
ident = cesko-se-chysta-na-euro

jiná možnost není? :-)
Nox
Profil
Kubista
Ulož do jednoho sloupce a pak při použití odstraň funkcí diakritiku a vyměň mezery za čárky
joe
Profil
Nox
Ano, jenže takovým způsobem se to nedělá, třeba z důvodu mít v adrese něco jiného než pak název stránky.

PS: Používej anglické názvy proměnných, nesnášim v jakémkoli kódu české názvy...
Dranel
Profil
joe
Používej anglické názvy proměnných, nesnášim v jakémkoli kódu české názvy...
Proč ne? Vždyť to bude český web. Ale asi máš částečně pravdu.

Ano, jenže takovým způsobem se to nedělá, třeba z důvodu mít v adrese něco jiného než pak název stránky.
A není lepší to tak udělat a smířit se s tím, že bude klíčové slovo jak v nadpisu tak v názvu stránky?

Kubista
Pokud to dobře chápu tak řekněme:
Je to tak nejlepší.
Timy
Profil
joe
„Používej anglické názvy proměnných, nesnášim v jakémkoli kódu české názvy...“
Tomu říkám důvod — joe nesnáší české názvy v jakémkoliv kódu, proto to nepoužívejme! Já používám české názvy dost často už jen z toho důvodu, že mám vždy relativní jistotu, že můj název není klíčové slovo jazyka nebo již existující funkce.

Dranel
„A není lepší to tak udělat a smířit se s tím, že bude klíčové slovo jak v nadpisu tak v názvu stránky?“
No a co když prostě chci jiné URL než nadpis? Navíc URL má být krátká, žádný paskvil typu blog.example.com/co-se-odehralo-na-posledni-parbe-v-horni-dolni-kdyz-j sem-si-zapomnela-vzit-s-sebou-plavky.

Kubista
Ještě můžeš mít nějakou převodní tabulku, ve které bude „cesko-se-chysta-na-euro“ → 1 a pak najít v databázi záznam s jedničkou. Hmm, ale vzhledem k tomu, že tu jedničku stejně musíš najít podle toho stringového klíče, tak je to asi vcelku nesmyslné řešení :-).
Kubista
Profil
Timy
Také radši používám české názvy, aspoň pak nemusím přemýšlet co jsem tím myslel po nějaké době.
Asi to udělám jak píše joe, vypadá to nejlépe z nabízených možností.

Jinak tě zdravím, doufám, že pamatuješ :-)

-------------

A ještě si dovolím jeden dotaz, jak na drobečkovou navigaci.
Našel jsem tady řešení, ale spíše pro rozsáhlejší strukturu.

Když mám např. jenom: Neco > Neco > Neco

Jde to udělat jednodušeji? (Jde mi o návrh databáze)
joe
Profil
Timy
:-) To nebyl důvod proč to nemá používat, to za čárkou byl jen dodatek, zřejmě jsi nepochopil. Proč anglické názvy? Ze zvyku, protože jestli se někdo někdy dostane do nějaké větší firmy, tak je obvyklé, že se všechno píše anglicky.

Kubista
Na drobečkovou navigaci mě teď napadá třeba to, že stránky budeš mít v tabulce dejme tomu webpages (anglicky:-)), kde by byly sloupce třeba:

id
parentId
ident
name
filename / content

...ale na tom už nezáleží. Při selectu bys vybral i parentId a pokud by nebylo nulové (tzn. -> bylo by vnořené) použil bys další select pro získání nadstránky... atd. Dokud bys nedošel k 0.

Možná to není nejšťastnější řešení, ale v tuto dobu mě nic jinýho nenapadlo.
Dranel
Profil
Co ostatní na řešení drobečkové navigace od joea?
Kubista
Profil
Dranel
já to udělal jak psal joe a zatím si nestěžuju :-)

---
takže díky joe
---

Ještě bych se chtěl zeptat jak řešit "hezké url" při stránkování článků: /5-strana/ nebo je nějaký lepší způsob? :-)
joe
Profil
Dranel & Kubista
Možná by bylo lepší řešení, kdyby sem napsal někdo zkušenější, tohle jsem nezkoušel :-)

Kubista
To už je na tobě, třeba můžeš použít

example.com/example/page:3

a nebo rewrite vubec používat nemusíš, třeba jen

example.com/example?page=3

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: