array_diff - wyszukiwanie z dwóch baz danych

Wszystko o językach skryptowych takich jak PHP i Perl, serwerach WWW, CGI, bazach danych i języku SQL.
addmymedia
Posty: 3
Rejestracja: 20 lis 2015, 22:15:39
Płeć: Niewybrana
User Agent: Chrome Windows 1920x1080

array_diff - wyszukiwanie z dwóch baz danych

Post autor: addmymedia »

Hej.

Jestem mocno początkujący w temacie.
Potrzebuję pomocy przy array_diff do którego dane pobierane są z dwóch oddzielnych baz danych.
Możliwe, że w podesłanym kodzie są jeszcze większe błędy, ponieważ cały czas się w tym grzebie.

Ogólnie potrzebuję pobrać JEDEN rekord na raz z bazy 2, ale jego ID nie może znajdować się w bazie 1.

Dotychczas dostawałem w zwrocie jeden rekord, ale nijak się to miało do oczekiwań. Wyglądało to jakby kod analizował tylko po 1 rekordzie w ogóle.

Będę wdzięczny za pomoc.

$db = query();
$historia = "SELECT task_post_id FROM database1.table1";
$historia_id = $db->query($historia);
$find = $historia_id->num_rows;
for ($x = 0; $x < mysqli_num_rows($historia_id); $x++) {
$data1 = mysqli_fetch_assoc($historia_id);

$db = query();
$posty = "SELECT ID FROM database2.table2";
$post_id = $db->query($posty);
$find = $post_id->num_rows;
for ($x = 0; $x < mysqli_num_rows($post_id); $x++) {
$data2 = mysqli_fetch_assoc($post_id);

$res=array_diff($ardata2,$ardata1);


Pozdrawiam
Awatar użytkownika
endriu888
Obsługa CBA
Posty: 1869
Rejestracja: 23 sty 2012, 21:02:33
Strona na CBA.pl: katalogfirm.c0.pl
Płeć: Niewybrana
User Agent: 1024x768
Kontakt:

array_diff - wyszukiwanie z dwóch baz danych

Post autor: endriu888 »

nie wiem ile jest wierszy w tych tabelach, ale zrobiłbym to tak:

najpierw wczytać wszystkie idy z pierwszej tabeli do tablicy nazwijmy ją $tab1;
Jeśli tych idów nie jest dużo, to wygenerować zapytanie:

SELECT id from tabela2 WHERE id NOT IN (tutaj_idy_z_$tab1_rozdzielone_przecinkiem);
Jesli idow jest dużo, to zapytanie:

SELECT id From tabela2;
wczytywać w pętli i sprawdzać czy id jest w $tab1. Jeśli jest -> continue, jeśli nie ma jest szukamy id -> break;

Z tego co zrozumiałem chodzi o pierwszego ida z tabeli2 a nie o wszystkie. ?
Czy wiesz, że:
  • W Panelu CBA w sekcji "wsparcie" jest dedykowany system ticketów (obsługi technicznej)
  • Odpowiadamy na Forum oraz na adres mailowy obsluga(malpa)cba.pl
  • Jesteśmy również na Facebooku! Znajdź nas na facebook.com/hostingcba | cba.pl
W czym jeszcze możemy pomóc?
addmymedia
Posty: 3
Rejestracja: 20 lis 2015, 22:15:39
Płeć: Niewybrana
User Agent: Chrome Windows 1920x1080

array_diff - wyszukiwanie z dwóch baz danych

Post autor: addmymedia »

endriu888 pisze: nie wiem ile jest wierszy w tych tabelach, ale zrobiłbym to tak:

najpierw wczytać wszystkie idy z pierwszej tabeli do tablicy nazwijmy ją $tab1;
Jeśli tych idów nie jest dużo, to wygenerować zapytanie:

SELECT id from tabela2 WHERE id NOT IN (tutaj_idy_z_$tab1_rozdzielone_przecinkiem);
Jesli idow jest dużo, to zapytanie:

SELECT id From tabela2;
wczytywać w pętli i sprawdzać czy id jest w $tab1. Jeśli jest -> continue, jeśli nie ma jest szukamy id -> break;

Z tego co zrozumiałem chodzi o pierwszego ida z tabeli2 a nie o wszystkie. ?

Dzięki za odpowiedź. Nie mam jednak pojęcia jak to napisać. Obecnie mam cały czas jedno rozwiązanie, ale nie wiem w jaki sposób przygotować dane do array diff po przecinku... :evil:
Awatar użytkownika
endriu888
Obsługa CBA
Posty: 1869
Rejestracja: 23 sty 2012, 21:02:33
Strona na CBA.pl: katalogfirm.c0.pl
Płeć: Niewybrana
User Agent: 1024x768
Kontakt:

array_diff - wyszukiwanie z dwóch baz danych

Post autor: endriu888 »

witam

można zapytać specjalistów na tym forum: http://forum.php.pl
Czy wiesz, że:
  • W Panelu CBA w sekcji "wsparcie" jest dedykowany system ticketów (obsługi technicznej)
  • Odpowiadamy na Forum oraz na adres mailowy obsluga(malpa)cba.pl
  • Jesteśmy również na Facebooku! Znajdź nas na facebook.com/hostingcba | cba.pl
W czym jeszcze możemy pomóc?
ODPOWIEDZ