verschillende database
Ik heb op een pr pagin's dat gegevens uit verschillende databases moet halen, de host/user/pass zijn hetzelfde alleen de database is anders, hoe kan ik dit nou goed in php zeten? Want bijv bij querie1 moet ik gegevens uit db1 halen en bij querie2 uit db2. Hoe kan ik dit netjes doen?
M.v.g. ZaP
Beschrijving
resource mysql_query ( string query [, resource link_identifier] )
Oftewel gewoon de connectie met de query meegeven
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
mysql_connect($host,$user,$pass);
$db1 = mysql_select_db('db1');
$db2 = mysql_select_db('db2');
$db3 = mysql_select_db('db3');
mysql_query("SELECT * FROM tabel",$db1);
mysql_query("SELECT * FROM tabel",$db2);
mysql_query("SELECT * FROM tabel",$db3);
?>
mysql_connect($host,$user,$pass);
$db1 = mysql_select_db('db1');
$db2 = mysql_select_db('db2');
$db3 = mysql_select_db('db3');
mysql_query("SELECT * FROM tabel",$db1);
mysql_query("SELECT * FROM tabel",$db2);
mysql_query("SELECT * FROM tabel",$db3);
?>
Gewijzigd op 01/01/1970 01:00:00 door Willem Jan Z
Alleen het werk nog niet, ik probeerde het eerst zoals jij zei, maar toen vertekde php dat die komma niet goed was. dus heb ik die komma binnen de "tags gezet:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$select = "SELECT * FROM news
WHERE hot = 1 ORDER by id DESC LIMIT 0,1 ,$db3";
$query = mysql_query($select);
$count = mysql_num_rows($query);
?>
$select = "SELECT * FROM news
WHERE hot = 1 ORDER by id DESC LIMIT 0,1 ,$db3";
$query = mysql_query($select);
$count = mysql_num_rows($query);
?>
Die count staat trouwen op lijn 28, maar nu krijgik deze error:
Code (php)
1
2
3
2
3
Warning: mysql_num_rows(): supplied argument is not a valid
MySQL result resource in /home/gamereac/public_html/777/nieuws.php
on line 28
MySQL result resource in /home/gamereac/public_html/777/nieuws.php
on line 28
En hij leest gewoon niks ui de dataase, dit is mijn config.php:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$dbhost = 'localhost';
$dbuser = '****';
$dbpass = '****';
mysql_connect ($dbhost, $dbuser, $dbpass);
$db2 = mysql_select_db('gamereac_forum');
$db3 = mysql_select_db('gamereac_news');
$db4 = mysql_select_db('gamereac_images');
$db5 = mysql_select_db('gamereac_review');
?>
$dbhost = 'localhost';
$dbuser = '****';
$dbpass = '****';
mysql_connect ($dbhost, $dbuser, $dbpass);
$db2 = mysql_select_db('gamereac_forum');
$db3 = mysql_select_db('gamereac_news');
$db4 = mysql_select_db('gamereac_images');
$db5 = mysql_select_db('gamereac_review');
?>
Weet iemand wat ik fout doe?
M.v.g. ZaP
Gewijzigd op 01/01/1970 01:00:00 door zap
Je kan in mysql_query geen $db meegeven. Maar die moet uiteraard ook niet in je query.
Het wordt iets vervelender, maar het kan gewoon nog steeds. Kost alleen iets meer tijd soms.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
mysql_connect($host,$user,$pass);
mysql_select_db('db1');
mysql_query("SELECT bla FROM boe;"); // Query op db1
mysql_select_db('db2');
mysql_query("SELECT bla FROM boe;"); // Query op db2
mysql_select_db('db3');
mysql_query("SELECT bla FROM boe;"); // Query op db3
?>
mysql_connect($host,$user,$pass);
mysql_select_db('db1');
mysql_query("SELECT bla FROM boe;"); // Query op db1
mysql_select_db('db2');
mysql_query("SELECT bla FROM boe;"); // Query op db2
mysql_select_db('db3');
mysql_query("SELECT bla FROM boe;"); // Query op db3
?>
mysql_query pakt altijd de laatste actieve database, dus als je een andere database wilt, moet je gewoon mysql_select_db nog een keer aanroepen.
Edit: Kleine uitleg wat er mis ging: Die resource identifier is echt voor de verbinding, dus wat mysql_connect teruggeeft.
Gewijzigd op 01/01/1970 01:00:00 door Willem Jan Z
Ok bedankt dit werkt denk ik wel :)
Stel ik heb een database 'test' met daarin een tabel 'gegevens' waaruit ik alle informatie wil hebben:
Maar hoezo werk je binnen 1 script met 3 verschillende databases? Zou het dan niet logischer zijn om meerdere tabellen binnen 1 database te hebben?
ja, maar ik bezig om de laatste posts van een forum, blog, en nieuwe te laten zien. En die 3 dingen staan in verschillende databases..
zap schreef op 07.11.2006 12:59:
ja, maar ik bezig om de laatste posts van een forum, blog, en nieuwe te laten zien. En die 3 dingen staan in verschillende databases..
Maar het gaat wel om 1 en dezelfde site waar nieuws, blog en forum onderdeel van zijn?
Handiger is het dan echt wel om daar 1 database van te maken. (in principe kan je ook gewoon meerdere sites op 1 database draaien, er staan dan wat meer tabellen in)
Ik vind het niet handig om voor 1 site verschillende databases te gebruiken. Gebruik er gewoon 1'tje, daar kan alles gemakkelijk in, het is voor jezelf ook handiger ;)