Strona 1 z 1

array_diff - wyszukiwanie z dwóch baz danych

: 18 lip 2020, 13:18:00
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

array_diff - wyszukiwanie z dwóch baz danych

: 19 lip 2020, 11:41:43
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. ?

array_diff - wyszukiwanie z dwóch baz danych

: 19 lip 2020, 23:26:09
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:

array_diff - wyszukiwanie z dwóch baz danych

: 21 lip 2020, 08:04:42
autor: endriu888
witam

można zapytać specjalistów na tym forum: http://forum.php.pl