Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak wyciągąć z bazy przyjazny url
Forum PHP.pl > Forum > PHP
piotr485
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?

markuz
WHERE nazwa = "'.$zmienna.'" + założenie indeksu na pole `nazwa` w bazie.
com
oczywiście jako binda wink.gif
piotr485
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 ?
Pyton_000
Musisz trzymać w BD wynik z url('some text'); inaczej zajeździsz bazę a dodatkowo będziesz miał mnustwo kłopotów przez to.
viking
A co do bindowania http://php.net/manual/pl/pdostatement.bindparam.php
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.