Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przyjazne linki a zapytanie SQL
Forum PHP.pl > Forum > Bazy danych
115750
Chciałbym moją stronę dostosować do używania przyjaznych linków.
W tabeli z artykułami mam pole tytuł. W nim jest krótki tytuł ze specjami i polskimi znakami np. "instrukcja montażu"
np.
id | tytul | tresc:
1 | instrukcja montażu | jakaś tam treść.

Przyjazny link wyglądałby mniej więcej tak: strona.pl/art/instrukcja-montazu.
Z takiego adresu dostanę zmienną $_GET['tytul'] o wartości 'instrukcja-montazu'.

Jak teraz skonstruować zapytanie, które znajdzie treść artykułu o tytule 'instrukcja-montazu' zamiast 'instrukcja montażu'.
Muszę się zatem pozbyć polskich znaków oraz spacji.

Chodzi o to, żeby skonstruować takie zapytanie, które dla tytułu 'instrukcja-montazu' zwróci treść rekordu o nr 1.
markonix
Do bazy zapisuj instrukcja-montazu przy dodawaniu wpisu.
Musisz zapewnić bezwzględną unikalność dla tej kolumny (w przeciwieństwie do tytułu, który może gdzieś się różnić spacją).
115750
Cytat(markonix @ 10.12.2014, 16:37:13 ) *
Do bazy zapisuj instrukcja-montazu przy dodawaniu wpisu.

Wtedy musiałbym stworzyć dodatkowe pole, ponieważ pole tytuł jest używane do wyświetlania tytułu artykułu.
nospor
A czemu poprostu nie dodasz do linku id arta?
strona.pl/art/instrukcja-montazu,13
I po ssprawie
115750
Cytat(nospor @ 10.12.2014, 17:03:09 ) *
A czemu poprostu nie dodasz do linku id arta?
strona.pl/art/instrukcja-montazu,13

Niby proste rozwiązanie, tylko czy z taką liczbą na końcu to nadal jest przyjazny link?
nospor
oczywiscie ze tak
115750
Cytat(nospor @ 10.12.2014, 17:03:09 ) *
strona.pl/art/instrukcja-montazu,13

Zdecydowałem się na ten sposób. Zmodyfikowałem zatem plik .htaccess, żeby brał pod uwagę liczbę po przecinku jako parametr.
Generalnie to działa ale jedna rzecz mnie martwi.
Czy wpiszę adres strona.pl/art/instrukcja-montazu,13 czy strona.pl/art/blabla-montazu,13 to działa tak samo.
Dla tego drugiego przypadku powinnien być jednak zwrócony błąd 404.
Forti
ponieważ zapytanie robisz po id, czyli po tym numerze (np.13) a nie po title. Zrób dodatkową kolumnę w bazie dla slug. Co to za problem? To jest normalna praktyka i nie spowoduje żadnych problemów.
115750
Cytat(Forti @ 11.12.2014, 14:16:11 ) *
ponieważ zapytanie robisz po id, czyli po tym numerze (np.13) a nie po title. Zrób dodatkową kolumnę w bazie dla slug. Co to za problem? To jest normalna praktyka i nie spowoduje żadnych problemów.

Tak, do tego właśnie już doszedłem, że jednak zrobię dodatkową kolumnę a nie numer w linku.
nospor
Cytat
Czy wpiszę adres strona.pl/art/instrukcja-montazu,13 czy strona.pl/art/blabla-montazu,13 to działa tak samo.

To sie obchodzi tak, ze jak wczytasz dany rekord z id 13, to sprawdzasz czy jego tytul zgadza sie z tytulem w linku. Jak nie, to przekierowujesz z odpowiednim naglowkiem na poprawny link
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.