Avatar billede rathkjen Nybegynder
04. november 2008 - 12:09 Der er 9 kommentarer og
1 løsning

Trække ud fra 2 database

Er det muligt at trække indhold ud fra 2 databaser og blande det.

Fx:
$res1 = mysql_query("SELECT * FROM personer_1 ORDER BY navn") or die();
while($row1 = mysql_fetch_array($res1))

$res2 = mysql_query("SELECT * FROM personer_2 ORDER BY navn") or die();
while($row2 = mysql_fetch_array($res2))

og herefter blande disse 2 og sortere efter navn

Fx:

udtrækket hedder:
row1: Bjarne, Viggo, Kenneth
row2: Kirsten, Charlotte, Line

echo bliver:
Bjarne, Charlotte, Kenneth, Kirsten, Line, Viggo

Det der er med det er at Row1 ligger på én mysql server og Row2 på en anden mysql server.

Håber i forstår spørgsmålet og kan hjælpe :)
Avatar billede jakobdo Ekspert
04. november 2008 - 13:13 #1
Ja, du kan blande med UNION.

Så noget ala:

Fx:
$res = mysql_query("SELECT navn FROM personer_1 UNION SELECT navn FROM personer_2") or die(mysql_error());
while($row1 = mysql_fetch_array($res)){
//Indlæs evt. i array og sorter.
}
Avatar billede rathkjen Nybegynder
04. november 2008 - 13:29 #2
Okay, hva så hvis det er fra 2 forskellige mysql databaser de 2 tabeller ligger i? er det muligt?
Avatar billede jakobdo Ekspert
04. november 2008 - 13:50 #3
2 forskellige databaser, ikke i et udtræk.
Men så kan du jo lave:

forbind til db1
udtræk1
indlæs data i array.

forbind til db2
udtræk2
indlæs data i array.

Sorter array og vis det.
Avatar billede rathkjen Nybegynder
04. november 2008 - 14:10 #4
Det lyder som en god idé. kan du gi mig en lille smagsprøve på hvordan det kunne se ud? :)
Avatar billede j4k0b Nybegynder
04. november 2008 - 15:21 #5
Du skal vel gøre noget alá:


function _get($db, $table) {
    mysql_select_db($db) or die(mysql_error());
    $query = mysql_query('SELECT navn,alder FROM '.$table) or die(mysql_error());
    $result = array();
    while($row = mysql_fetch_array($query)) {
        $result[] = $row;
    }
    return $result;
}

$items = array();
$items = array_merge($items, _get('database1', 'tabel'));
$items = array_merge($items, _get('database2', 'tabel'));
Avatar billede jakobdo Ekspert
04. november 2008 - 15:22 #6
Prøv denne:

<?php
//Database 1
$link1 = mysql_connect('localhost', 'mysql_user', 'mysql_password') or die('Not connected : ' . mysql_error());
mysql_select_db('database1', $link1) or die ('Can\'t use database1 : ' . mysql_error());

//Database 2
$link2 = mysql_connect('localhost', 'mysql_user', 'mysql_password') or die('Not connected : ' . mysql_error());
mysql_select_db('database2', $link2) or die ('Can\'t use database2 : ' . mysql_error());

$navne = array();

$res1 = mysql_query("SELECT navn FROM personer_1 ORDER BY navn",$link1);
if(mysql_num_rows($res1)>0){
    while($row1 = mysql_fetch_assoc($res1)){
        $navne[] = $row1['navn'];
    }
}

$res2 = mysql_query("SELECT navn FROM personer_2 ORDER BY navn",$link2);
if(mysql_num_rows($res2)>0){
    while($row2 = mysql_fetch_assoc($res2)){
        $navne[] = $row2['navn'];
    }
}

sort($navne);

echo implode('<br />',$navne);

?>
Avatar billede rathkjen Nybegynder
04. november 2008 - 15:41 #7
Det virker jo som det skal. Du har sku styr på tingene :) nice work!

smid et svar så får du point!
Avatar billede jakobdo Ekspert
04. november 2008 - 15:44 #8
Svar, hvis det er mig du tænker på.
Avatar billede rathkjen Nybegynder
04. november 2008 - 15:46 #9
Det var det :) havde ikk lige set der var 2 :) tak for hjælpen.
Avatar billede jakobdo Ekspert
04. november 2008 - 15:51 #10
Takker for point.
Avatar billede 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. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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