Vytvorenie unikatneho url slug-u (seo alias) – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Vytvorenie unikatneho url slug-u (seo alias) – PHP – Fórum – Programujte.comVytvorenie unikatneho url slug-u (seo alias) – PHP – Fórum – Programujte.com

 

marioff0
Expert
12. 2. 2016   #1
-
0
-

Caute,

myslel som, ze to bude jednoduchsie, ale ked som si k tomu sadol, ukazalo sa, ze ani nie (ako to vacsinou tak byva)

v mysql DB mam stringy ktore sa generuju pre kazdu polozku (clanok) automaticky.. 

napr. "topanky" pre clanok Topánky

avsak ked vytvorim dalsiu polozku (clanok), ktora sa bude volat rovnako potrebujem aby mi vygenerovalo napr. "topanky-1" (resp. podobne riesenie, toto konkretne je zalozene na pridani cisla, ak uz seo alias v DB existuje)..

ak znova zadam dasli clanok Topánky tak vygeneruje "topanky-2" atd.. 

skuste mi nastrelit nejake spolahlive riesenie s tym ze v DB mozu byt aj "topanky-modre", alebo tam vobec nemusia byt "topanky" iba verzie s cislami (napr. zmazany clanok)...

nedari sa mi nic kloudne vymysliet :( ..

Nahlásit jako SPAM
IP: 188.123.100.–
Škoda, že život sa nedá "sejvovať", tak že by som po zlom životnom rozhodnutí mohol začať odznova :([br] Lenivosť je matka pokroku.[br][br] http://cut.sk/ - odstrihni si dlhý link
Kit+15
Guru
12. 2. 2016   #2
-
+1
-
Zajímavé

#1 marioff
Jako poslední položku (nebo jako první) dej ID toho článku. Hledání konkrétního článku pak bude podle ID a tím se to vše velmi zjednoduší.

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
marioff0
Expert
12. 2. 2016   #3
-
0
-

dorabam to do existujuceho systemu a tato moznost povodneho kodera asi nenapadla, prerobit to na taky system uz v podstate nie je mozne (resp. je, ale tak velky zasah nechcem riskovat)

Nahlásit jako SPAM
IP: 188.123.100.–
Škoda, že život sa nedá "sejvovať", tak že by som po zlom životnom rozhodnutí mohol začať odznova :([br] Lenivosť je matka pokroku.[br][br] http://cut.sk/ - odstrihni si dlhý link
Kit+15
Guru
12. 2. 2016   #4
-
0
-

#3 marioff
V každém případě tam to ID můžeš vcelku jednoduše přilepit pro pozdější využití.

U mne by to bylo velmi jednoduché - prostě bych přepsal ve svém MVC jednu krátkou třídu, která má na starosti manipulaci s články.

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
peter
~ Anonymní uživatel
3981 příspěvků
15. 2. 2016   #5
-
0
-

marioff

Obvykla struktura tabulky byva
clanky: id_clanek, nadpis, text, autor, dalsi sloupce
Sloupec id_clanek byva typu AUTOINCREMENT.
Pokud to mas jinak, tak doporucuji tam to id dat. Pouzijes ho pak pro spoustu veci, treba pro UPDATE a DELETE operace s clankym. 

SELECT (id_clanek, nadpis, text, autor) FROM clanky
INSERT INTO (nadpis,text) VALUES ('aaa','bbb') // tady id neuvadis, on si ho sam vytvori
UPDATE nadpis, text FROM clanky WHERE id_clanek=123
DELETE FROM clanky WHERE id_clanek=123

Pripadne se da pouzit zobrazeni konkretnich clanku
SELECT (id_clanek, nadpis, text, autor) FROM clanky WHERE id_clanek IN (3,67,438)

topanky-1
topanky-2
z toho selectu pak dostanes jako  

$row['nadpis'].'-'.$row['id_clanek']

Jen to teda bude spis
topanky-13
topanky-563

Vyhoda ciselneho sloupce je rychlejsi vyhledavani. 32.000 redku je integer 2 byty! "topanky" je 7 bytu. Pro srovnani, zamek na kolo ma 3 kolecka. Projit vsechny kombinace zabere asi 5-10 min. Je to 999 moznosti (pripadne + mezipolohy). Kdyby tam bylo jedno kolecko, tak to mas za chvilku, ne?

Druha moznost je, vest si specialni tabulku pro kategorie a ukladat si tam posledni vlozene cislo a pri insertu ho navysit a ulozit k clanku. Takze stejne musis k clanku pridat sloupec :)
topany 5
lyze 0
kluce 2

Treti moznost je, zjistit si SELECTem vsechny polozky ve stejne kategorii a pridat tu, ktera chybi. Treba mas topanky-1,2,4,5 , tak doplnis trojku. Nebo si zjistis, ktere jsou posledni. Aby byl dotaz jednodussi, tak stejne musis pridat sloupec cislo. Toto reseni mi prijde proti pomocne tabulce jako databazove slozitejsi.
Samozrejme by to slo i bez sloupce, spravnym reg. vyrazem, ale ty jsou obvykle pomale pri 1000 polozkach a vic.

Kdyz to shrnes, tak kazde z tech 3 reseni zahrnuje tak, ci tak, pridat sloupec.

Nahlásit jako SPAM
IP: 2001:718:2601:26c:88a3:dc...–
peter
~ Anonymní uživatel
3981 příspěvků
15. 2. 2016   #6
-
0
-

SELECT nadpis FROM clanky WHERE nadpis LIKE "topanky%" ORDER BY nadpis DESC LIMIT 1
Vyber vsechny nadpisy, ktere obsahuji na zacatku slovo "topanky", serad je podle velikosti opacne, vyber jen prvni radek. A ted bys z toho musel extrahovat to cislo.
Ale proste tahle cesta je nespolehliva. Co kdyz budes mit vic zbozi s podobnym nazvem?
topanky adidas-1
topanky puma-2
topanky adidas-3
 

Nahlásit jako SPAM
IP: 2001:718:2601:26c:88a3:dc...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 36 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý