---
title: "Flera db öppna samtidigt?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/16197-flera-db-öppna-samtidigt"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "GrodanBoll"
published: "2001-10-15T08:03:00.000Z"
updated: "2001-10-16T07:10:00.000Z"
replies: 9
views: 201
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/16197-flera-db-öppna-samtidigt"
---

# Flera db öppna samtidigt?

## #1 — GrodanBoll, 2001-10-15T08:03Z

Tjo på er

Om man lägger dbkopplingarna  som klasser, så att man accessar en db genom att skapa ett objekt. 
Är det inte då möjligt att ha flera dbkopplingar öppna samtidigt?
Om så, vad tror ni det kostar i prestanda?

/Grodan :)

Permalänk: https://www.webforum.nu/p/16197

## #2 — Marcus, 2001-10-15T08:54Z

Det kan fungera med en massa meckande. Du kommer dock inte kunna skjuta in data i två databaser i samma SQL-sats. 

Hur mycket data handlar det om? Det är inte säkert att du märker någon prestandaförsämring om du jobbar med ett litet projekt. 

Varför kan du inte ha en(1) databas?

Permalänk: https://www.webforum.nu/p/324372

## #3 — GrodanBoll, 2001-10-15T10:23Z

Kan inte, måste hämta data från andra databaser i landet :(
På plats kommer jag antagligen \*hoppas\* bara att behöva 1 db.

Så problemet är att jag behöver hämta en del data från en db och en del annan data från en annan db. Sen behöver jag sammanställa dett apå en sida eller i ett formulär...

Jag vet inte hur jag ska angripa problemet?

/Grodan

Permalänk: https://www.webforum.nu/p/324373

## #4 — Marcus, 2001-10-15T11:15Z

Jag vet inte hur strukturen för ditt system ser ut men följande exempel kanske kan ge lite tips: 

Du har en databas i Oslo som innehåller medlemsinformation.

Du har en databas på din sajt som innehåller material som är kopplat till databasen i Oslo. 

Plocka ut materialet ur din db, där får du även ett ref_id till medlemsdatabasen. Stäng ned kopplingen till db. 

Koppla upp till medlemsdatabasen i Olso och hämta medlem med id:t som du fick som ref_id. 

Alltså. För att hämta data från flera databaser: Ställ många SQL-satser.

Permalänk: https://www.webforum.nu/p/324374

## #5 — GrodanBoll, 2001-10-15T12:12Z

Bugar o tackar för svaren :), men har en fråga till...

Men hur e det bäst att mellanlagra datan?
I en array kanske?

/Grodan

Permalänk: https://www.webforum.nu/p/324375

## #6 — SPiN, 2001-10-15T12:24Z

Om du använder MySQL kan du med mysql_fetch_array($resultFromQuery); få all hämtad information i en array. Det är ju även det vanligaste sättet att använda sig av när man bara använder en databas ;) 

Äh, vaffan, jag bifogar ett exempel :)

```
<?php
mysql_connect("mysql.host.com", "uID", "uPass")
	or die("No connection");
mysql_select_db("dinDB")
	or die("No DB");

$resultFromQuery = mysql_query("SELECT * FROM dinTabell")
	or die("MySQL-error: " . mysql_error());

$resultSuperArray = mysql_fetch_array($resultFromQuery);

mysql_close();

mysql_connect("mysql.host2.com", "uID", "uPass")
	or die("No connection");
mysql_select_db("dinAndraDB")
	or die("No DB");

osv...
?>
```

Hoppas det hjälper :)

Permalänk: https://www.webforum.nu/p/324376

## #7 — GrodanBoll, 2001-10-15T12:30Z

Thx :)

Japp vet, men hur ser en sådan array ut? Blir den en eller två dimensionell?
E det så kasst att värdena läggs eftervarandra på en lång rad eller? Eller det e kanske inte kasst? ;)
Vet inte hur den arrayn ser ut?

Isåfall skulle jag ju vilja föra in datan från den andra sökningen i den första, men det e väl antagligen lättast att loopa två ggr istället?

/Grodan

\[Redigerat av GrodanBoll den 15 okt 2001\]

Permalänk: https://www.webforum.nu/p/324377

## #8 — SPiN, 2001-10-15T13:03Z

Arrayen ser ut som en tabell, med de fält som du valde med SQL-queryn.
Ex:

```
$result = mysql_query("SELECT namn, email, icq FROM minTabell ORDER BY namn ASC")
&nbsp; &nbsp; or die(mysql_error());
$superArray = mysql_fetch_array($result);
```

Koden genererar en tabell som skulle kunna se ut så här:

```
namn		email				icq
SPiN			bjorne.w@telia.com	000
```

Du hämtar datan från PHP'n på det här sättet:

```
echo "Namn: " . $superArray['namn'] . "<br>";
echo "Email: " . $superArray['email'] . "<br>";
osv...
```

Permalänk: https://www.webforum.nu/p/324378

## #9 — SPiN, 2001-10-15T13:22Z

Hmm... Insåg just att det där inte var en bra lösning. mysql_fetch_array($result); returnerar bara en rad från databasen ju.

Du skulle kunna använda den här funktionen som jag skrev ihop:

```
function storeInArray($resultFromQuery) {
	$counter = 0;
	$fields = mysql_num_fields($resultFromQuery);
	
	while($row = mysql_fetch_array($resultFromQuery)) {
		for($i = 0; $i < $fields; $i++) {
			$superArray[mysql_field_name($resultFromQuery, $i)][$counter] = $row[$i];
		}
		$counter++;
	}
	
	return $superArray;
}
```

Den returnerar en array i form av en tabell, med de fältnamn som du plockade ut från databasen i första dimensionen samt informationen i fälten i den underliggande numrerade dimensionen.

Ex:
Tabellen **Users**

```
id	namn	email	icq
1	SPiN		bjorne.w@telia.com	000
2	GrodanBoll	vet@inte.nu	001
osv...
```

Scriptet:

```
...
$result = mysql_query("SELECT namn, email, icq FROM Users");

$minSuperArray = storeInArray($result);

for($i = 0; $i < count($minSuperArray['namn']); $i++) {
    echo "Namn: " . $minSuperArray['namn'][$i] . "<br>";
}
```

Scriptet hämtar ut alla namn, email och ICQ# från tabellen Users, och skriver sedan ut namnen.

Hoppas du förstår hur min funktion bygger upp arrayen, om inte: Du är välkommen att fråga :)

Lycka till! :)

Permalänk: https://www.webforum.nu/p/324379

## #10 — GrodanBoll, 2001-10-16T07:10Z

Kanon, tror faktiskt det nästan e exakt vad jag behöver...

Jag bugar o tackar :) :)

/Grodan

Permalänk: https://www.webforum.nu/p/324380

---

Tråden på webben: https://www.webforum.nu/amne/php/16197-flera-db-öppna-samtidigt
