larsgrau Seniormester
19. august 2020 - 09:46 Der er 5 kommentarer og
1 løsning

sqlite merge forespørgelser

Hej

Jeg har to sqlite database en med gammel data i og en med nyt data i, jeg kunne godt tænke mig at kunne søge i begge databaser på en gang.
jeg har prøver følgende
$reshis = $dbHIS->query("Select * from signal");
$resny = $dbNY->query("Select * from signal");
$merge = $reshis and resny;
while($row = $merge->fetchArray()){
}

query virker hver for sig

Men det virker ikke hele, noget ideer ?
thomas_bk Guru
19. august 2020 - 09:58 #1
Et forslag vil være at lave to queries, en for hver database og så en query der kæder de to andre queries sammen.
larsgrau Seniormester
19. august 2020 - 11:54 #2
Det har jeg gjort, men hvor sætter jeg dem sammen ?
Slater Ekspert
19. august 2020 - 15:20 #3
Det kan du ikke let fordi dine results vil være af klassen SQLite3Result, som ikke kan merges med almindelige array-funktioner eller lignende. Du er simpelthen nødt til at køre dem efter hinanden - f.eks:

$restotal = [];
while($row = $reshis->fetchArray()){
  $restotal[] = $row;
}
while($row = $resny->fetchArray()){
  $restotal[] = $row;
}
olsensweb.dk Ekspert
19. august 2020 - 16:34 #4
forudsat at de 2 databaser er på sammen server, sammen database brugernavn/password, sammen database type, kan man vel lave noget ala

$sql = "select database1.signal.*, database2.signal.* FROM database1.signal JOIN database2.signal ON database1.signal.xx = database2.signal.yy";
$reshis = $dbHIS->query($sql);
while($row = $reshis->fetchArray()){
  print_r($row);
}


det kan man da i mysql, så jeg tænker også SQLite
arne_v Ekspert
19. august 2020 - 16:51 #5
Ideen med at have to forskellige databaser - en med gamle data og en med nye data er tvivlsom.

Hvis det er et givet design, så er den simple løsning 2 queries.

Men vil du absolut have 1 query, så brug ATTACH og UNIONÆ


<?php
define('DIR', 'C:\\work\\');

// setup
function credb($dbnam, $start, $end) {
    $db = new SQLite3(DIR . $dbnam);
    $db->exec('CREATE TABLE t (f INTEGER NOT NULL PRIMARY KEY)');
    for($i = $start; $i <= $end; $i++) {
        $db->exec("INSERT INTO t VALUES($i)");
    }
    $db->close();
}
credb('gl.db', 1, 3);
credb('ny.db', 4, 6);

// test single
function test($dbnam) {
    $db = new SQLite3(DIR . $dbnam);
    $q = $db->query('SELECT f FROM t');
    while($row = $q->fetchArray()) {
        echo $row['f'] . "\r\n";
    }
    $db->close();
}
test('gl.db');
test('ny.db');

// test multi
$db = new SQLite3(':memory:');
$db->exec("ATTACH '" . DIR . "gl.db' AS gl");
$db->exec("ATTACH '" . DIR . "ny.db' AS ny");
$q = $db->query('SELECT f FROM gl.t UNION SELECT f FROM ny.t');
while($row = $q->fetchArray()) {
    echo $row['f'] . "\r\n";
}
$db->close();

?>
larsgrau Seniormester
03. september 2020 - 10:54 #6
Jeg har lavet 2 div, en der displayer den gamle database og en som display den ny database
Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links

Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





Premium
Fremtiden har aldrig set mere usikker ud for Intel: Her er det, der kan redde – og dødsdømme chip-kæmpen
Computerviews: Intels nyslåede topchef Pat Gelsinger står overfor en stribe rigtig svære beslutninger. Hvis han ikke træder varsomt, vil chip-giganten sandsynligvis sygne hen.
Computerworld
Akut mangel på chip tvinger verdens største bil-producenter til at drosle ned for produktionen af biler
Flere af verdens største bil-producenter er tvunget til at drosle ned for produktionen på grund af mangel på chip, som de ikke kan få leveret.
CIO
Podcast: Hos Viking Life-Saving Equipment er it gået fra at være backend til at være noget, som kunderne spørger aktivt efter
Podcast, The Digital Edge: Viking leverer en stadig større del af deres produkt som en tjeneste. Som en del af tjenesten tager Viking ansvar for sikkerheden ved at levere, dokumentere og vedligeholde det nødvendige sikkerhedsudstyr. Hør hvordan Henrik Balslev senior digital director hos Viking har løftet den opgave.
Job & Karriere
Microsoft i kæmpe dansk satsning - åbner tre store datacentre i Danmark
Microsoft lancerer kæmpe satsning fra hovedkvarteret i Lyngby. Selskabet åbner tre store bæredygtige datacentre på Sjælland.
White paper
Kunsten at navigere i en tilpasningsøkonomi
Evnen til at tilpasse sig en verden i konstant forandring bliver afgørende for virksomhedens mulighed for at vækste i fremtiden. Ét af de finansielle håndtag du kan skrue på, er en hel eller delvis outsourcing af it-driften. I e-bogen ”Kunsten at navigere i en tilpasningsøkonomi” får du viden om, hvordan din virksomhed kan bruge tilpasningsøkonomi til at håndtere fremtidens krav til it. Vi spørger blandt andet: - Kan din virksomhed skalere og tilpasse sin digitale kapacitet og økonomi? - Har dine kunder tillid til, at du har de skarpeste it-løsninger? - Ville I kunne styrke forretningen ved at give jeres it mere fokus? - Kan I få øget funktionalitet til samme pris? Vi fokuserer på risiko, økonomi, fokus og valg af it-partner, som er fire opmærksomhedspunkter du skal have styr på for at lykkes med at tilpasse virksomheden til at modstå forandringerne i verden.