Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] sprawdzanie w wielu bazach
skowron-line
post 19.09.2008, 13:06:31
Post #1





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


Witam mam taka sytuacje, że w 4 bazach mam użytkowników i teraz muszę sprawdzić w jakich bazach danych istnieje użytkownik.
użytkowników na dzień dzisiejszy jest 120 co daje pokaźną ilość zapytań.
Czy jest jakaś możliwość żeby zmniejszyć liczbę zapytań questionmark.gif


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
vokiel
post 19.09.2008, 13:33:46
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


120 zapytań questionmark.gif
4 bazy = 4 zapytania, tyle powinno wystarczyć
Pokaż te zapytania, zobaczymy czy da się je jakos zoptymalizować.


--------------------
Go to the top of the page
+Quote Post
skowron-line
post 19.09.2008, 13:41:24
Post #3





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


@vokiel nie ma co optymalizować, nie są to jakies niewiadomo jakie zapytania.

  1. SELECT login, nazwisko, imie, wycofany, nazwa_grupy FROM victoria.personel, victoria.personel_grupy WHERE victoria.personel.id_grupy = victoria.personel_grupy.id

i w pętli
  1. SELECT id, wycofany FROM '. $dbName .'.personel WHERE login = "'. $P[ 'login' ] .'"'


Edit.
Wymyśliłem że zrobię to na tablicach wielowymiarowych.

Ten post edytował skowron-line 19.09.2008, 13:42:20


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
vokiel
post 23.09.2008, 08:46:21
Post #4





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Może nie do końca zrozumiałęm co chcesz osiągnąć. O ile dobrze czytam, to chcesz sprawdzić w jakich bazach istnieje dany użytkownik, a masz tych usr 120. I chcesz sprawdzić występowanie każdego użytkownika w każdej bazie. Więc zamiast sprawdzać każdą bazę, dla każdego użytkownika (4 x 120 = 480zapytań) lepiej wg mnie pobrać wszystkich użytkowników dla każdej z baz, zapisać to do 4-ech tablic, i w php sprawdzić gdzie dany usr występuje.

4 zapytania w pętli dla każdej bazy:
  1. SELECT id, login, nazwisko, imie, wycofany, nazwa_grupy FROM '.$dbName.'..personel, '.$dbName .'..personel_grupy WHERE '. $dbName .'.personel.id_grupy = '. $dbName .'.personel_grupy.id;

Dla każdego w php:
  1. <?php
  2. for ($i=0; $i<coutn($wynik);$i++){
  3. // dopisanie np do tablicy loginow nazwy bazy w ktorej dany login wystepuje
  4. // tak, żeby otrzymać coś na wzór:
  5. $loginy['login1'] = array ('baza1', 'baza2');
  6. $loginy['login2'] = array ('baza1');
  7. $loginy['login3'] = array ('baza1','baza3', 'baza4');
  8. }
  9. ?>


--------------------
Go to the top of the page
+Quote Post
skowron-line
post 23.09.2008, 10:22:11
Post #5





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


@vokiel no i dokladnie tak zrobiłem
w petli sprawdzam w bazie i tworzylem wielowymiarową tablice.
  1. <?php
  2. $arr[ $P[ 'login' ] ][ 'login' ] = $P[ 'login' ];
  3.            $arr[ $P[ 'login' ] ][ 'imie' ] = $P[ 'imie' ];
  4.            $arr[ $P[ 'login' ] ][ 'nazwisko' ] = $P[ 'nazwisko' ];
  5.            $arr[ $P[ 'login' ] ][ 'nazwa_grupy' ] = $P[ 'nazwa_grupy' ];
  6.            $arr[ $P[ 'login' ] ][ 'id' ] = $P[ 'id' ];
  7. $arr[ $P[ 'login' ] ][ $baza ] = '1'; // jeszcze bylo 2 jako z wycofany
  8. ?>


pzdr.


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
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: 19.07.2025 - 09:02