Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> PHP MYSQL - szukanie w całej bazie
dvdx95
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 3
Dołączył: 11.10.2016

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


Witam.
Mam problem , otóż poszukuje skryptu php który przeszuka baze danych w poszukiwaniu danego wyrazenia.
Posiadam taki który zrobiłem sam lecz widze że gdy mam bardzo duża baze danych te rozwiązanie staje się dość powolne.
  1. for($z=0 ; $z >= 10000(przykladowa liczba tabel w bazie) ; $z++){
  2. $rest = mysql_query("SELECT userid FROM `game$z` WHERE `userid` LIKE '".$_GET['id']."' ");
  3. if (mysql_num_rows($rest) > 0) {
  4. //tutaj mam jakies tam polecenia//}
  5. }

Potrzebuje jedynie informacje w ktorej z tabel znajduje sie moje $_GET['id']
ten skrypt bedzie przeszukiwac wszystkie tabele od game1 do game10000 i to troche zajmuje.
Moje pytanie czy nie da się tego jakoś szybciej wykonywać(IMG:style_emoticons/default/questionmark.gif) Bo ja nie mam pomysłow.
Zasadniczo nie wiem w której tabeli w bazie znajduje sie moje $_GER['id'] natomiast wiem ze jest ono w kolumnie 'userid' zawsze .
Nie da się tutaj zastosowac jakiegos innego zapytania czy musze przeszukac je wszystkie??
Prosze o jakieś podpowiedzi

Ten post edytował dvdx95 27.03.2017, 21:11:08
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Jeśli masz tyle tabel o tej samej strukturze w bazie, to budowa tej, jest nieprawidłowa.
Go to the top of the page
+Quote Post
dvdx95
post
Post #3





Grupa: Zarejestrowani
Postów: 47
Pomógł: 3
Dołączył: 11.10.2016

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


tak to sa tabele o tej samej strukturze , ja potrzebuje sie dowiedziec tylko w ktorej z nich znajduje sie moje $_GET['id']
Go to the top of the page
+Quote Post
trueblue
post
Post #4





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Zamiast LIKE wystarczy równość.
Na userid przydałby się indeks. Jeśli nie jest założony, to musiałbyś analogicznie do wyszukiwania w pętli założyć indeksy we wszystkich tabelach (i wtedy szukać).
Zamiast robić pętlę w PHP możesz stworzyć procedurę w MySQL.

A na koniec przebuduj strukturę bazy.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #5





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

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


od biedy zrobić jakąś tabelkę z kolumną db_id, user_id i wpakować tam wszystkie potrzebne dane
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 26.09.2025 - 00:56