Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] sprawdzanie w wielu bazach
Forum PHP.pl > Forum > Przedszkole
skowron-line
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
vokiel
120 zapytań questionmark.gif
4 bazy = 4 zapytania, tyle powinno wystarczyć
Pokaż te zapytania, zobaczymy czy da się je jakos zoptymalizować.
skowron-line
@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.
vokiel
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. ?>
skowron-line
@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.
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.