Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak wyciągąć z bazy przyjazny url
piotr485
post 7.06.2016, 20:50:07
Post #1





Grupa: Zarejestrowani
Postów: 292
Pomógł: 0
Dołączył: 10.07.2009

Ostrzeżenie: (0%)
-----


Witam.

Mam w bazie danych rekordy - każdy z nich ma nazwę. Aktualnie jest ich tylko 3tys. ,ale przewiduję liczbę ok. 2 mln.

i mam adres url mojej strony: www.mojastrona/mojanazwazbazy/

i teraz mam zmienna w php $zmienna = 'mojanazwazbazy';

tworzę w pętli tablice[$id] = $nazwa_z_bazy;

i wyszukuję wartość $zmienna w $tablicy.

Tyle, że tym sposobem muszę pobrać i przeczesać 2 mln rekordów.

Bardziej wydajnie było by wyciągnąć id rekordu w sposób WHERE nazwa = "'.$zmienna.'" questionmark.gif

Jak to się powinno robić w tabelach z dużą zawartością rekordów?

Go to the top of the page
+Quote Post
markuz
post 7.06.2016, 21:42:33
Post #2





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


WHERE nazwa = "'.$zmienna.'" + założenie indeksu na pole `nazwa` w bazie.


--------------------
Go to the top of the page
+Quote Post
com
post 7.06.2016, 23:35:18
Post #3





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


oczywiście jako binda wink.gif
Go to the top of the page
+Quote Post
piotr485
post 16.06.2016, 17:40:15
Post #4





Grupa: Zarejestrowani
Postów: 292
Pomógł: 0
Dołączył: 10.07.2009

Ostrzeżenie: (0%)
-----


co znaczy jako binda?

i co w przypadku gdy chcę wyciągnąć po polu nazwa w którym jest "Nazwa Kategorii", a wartość którą mam w zmiennej = "nazwa-kategorii"

nazwy te zmieniam swoją funkcją url(), więc co powinienem w bazie trzymać też pole nazwa_kategorii_url czy może użyć tej funkcji jakoś przy tworzeniu zapytania ?

teraz trzymać dodatkowo pole z 1mln. rekordów nazwa_url to trochę słabo, ale to najlepsze wyjście ?

Mysql nie ma żadnej funkcji która zamieniała by duże litery na małe i spacje na myślniki ?

Ten post edytował piotr485 16.06.2016, 19:13:12
Go to the top of the page
+Quote Post
Pyton_000
post 17.06.2016, 07:55:55
Post #5





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Musisz trzymać w BD wynik z url('some text'); inaczej zajeździsz bazę a dodatkowo będziesz miał mnustwo kłopotów przez to.
Go to the top of the page
+Quote Post
viking
post 17.06.2016, 08:12:36
Post #6





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


A co do bindowania http://php.net/manual/pl/pdostatement.bindparam.php


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 13:00