Select from twee databases

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

31/10/2015 16:12:34
Quote Anchor link
Kan je ook van twee databases selecteren?
Dit werkt niet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
$query2        = "SELECT naam,prijs FROM producten WHERE id = ".$row1['productID'];
    $result2    = mysql_query($query2) or die (mysql_error());
    $row2        = mysql_fetch_array($result2);
    $query3        = "SELECT naam,prijs FROM producten2 WHERE id = ".$row1['productID'];
    $result3    = mysql_query($query3) or die (mysql_error());
    $row3       = mysql_fetch_array($result3);

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
$query1        = "SELECT * FROM winkelwagen WHERE ip ='".$_SERVER['REMOTE_ADDR']."'";
$result1    = mysql_query($query1) or die (mysql_error());
$query4        = "SELECT * FROM winkelwagen2 WHERE ip ='".$_SERVER['REMOTE_ADDR']."'";
$result4    = mysql_query($query4) or die (mysql_error());


Hij laat alleen de producten van winkelwagen2 zien.
Gewijzigd op 31/10/2015 16:12:54 door
 
PHP hulp

PHP hulp

22/10/2020 05:52:32
 
- Ariën -
Beheerder

- Ariën -

31/10/2015 16:20:23
Quote Anchor link
Gebruik liever MySQLi. Verder kan je ook een connectie-argument gebruiken.

Maar waarom zet je alles niet gewoon in een enkele database?
 

31/10/2015 16:38:51
Quote Anchor link
Zou kunnen, maar ik wil producten op een aparte pagina laten zien, wel in zelfde winkelmand.
Als alles op dezelfde pagina staat wordt het onoverzichtelijk

Voorbeeld:
Fietsen
Brommers

Hoe doe ik dit dan?

Edit: Ben dit script nog aan het passen de queries verander ik later naar mysqli

Toevoeging op 31/10/2015 16:41:10:

Het is namelijk beter om alles in 1 database te hebben anders moet ik er 12 aanmaken
Gewijzigd op 31/10/2015 16:39:45 door
 
Pipo Clown

Pipo Clown

31/10/2015 16:57:26
Quote Anchor link
Zo ver ik weet is het niet mogelijk om een query op 2 verschillende databases tegelijkertijd uit te voeren.

Je maakt eerst een databaseverbinding, dit is altijd met één database.
Vervolgens voer je via die verbinding een query uit.

Bedoel je niet 2 tabellen in plaats van 2 databases ?
 
- Ariën -
Beheerder

- Ariën -

31/10/2015 17:05:01
Quote Anchor link
Volgens mij kan je de mysql_select_db() achterwege laten en de tabellen aanroepen zoals:

databasenaam.tabel

Achter één connectie kunnen meerdere databases zitten.
 

31/10/2015 18:52:12
Quote Anchor link
en hoe doe je dat?
 
- Ariën -
Beheerder

- Ariën -

31/10/2015 18:53:45
Quote Anchor link
Eh.... zoals ik zeg?
Queries aanpassen met de databasenaam erin?

Ik neem aan dat de inlog verder hetzelfde is?

Maar, waarom wil je nou meerdere databases gebruiken, en niet alles overhevelen naar één database?
 
Peter K

Peter K

31/10/2015 19:01:37
Quote Anchor link
Als je een JOIN gebruikt kun je je gewenste resultaat volgens mij behalen.

Of de manier van je data opslaan de goede manier is, valt volgens mij nog te bespreken.

Een klein voorbeeldje:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
SELECT
*
FROM
winkelwagen
INNER JOIN winkelwagen2
WHERE
winkelwagen.ip ='{$_SERVER['REMOTE_ADDR']}' AND
winkelwagen2.ip ='{$_SERVER['REMOTE_ADDR']}'


Heb je overigens al eens nagedacht over het filteren op IP adres?
Wat als ik met 2 computers kijk naar je website vanaf het zelfde ip adres?
Dan zie ik op beide computers dezelfde winkelwagen?
Gewijzigd op 31/10/2015 19:01:53 door Peter K
 
- Ariën -
Beheerder

- Ariën -

31/10/2015 19:08:45
Quote Anchor link
Winkelwagens per IP? Ik vind het een no-go. In dat geval kan je beter met PHP-sessions werken.
Of anderzijds deze in de database op te slaan, aan de hand van een uniek ID in je cookie en je database.
 
Eddy E

Eddy E

01/11/2015 08:31:33
Quote Anchor link
PeterK: met een JOIN koppel je tabellen in 1 tabel.
Ik kan me niet voorstellen dat dit werkt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
SELECT database_een.naam, database_twee.adres
FROM database_een.tabel_namen, database_twee.tabel_adressen
WHERE database_twee.tabel_adressen.postcode = '1234AB'
AND database_een.tabel_namen.voorletters = 'J.A.'
 
- Ariën -
Beheerder

- Ariën -

01/11/2015 09:51:50
Quote Anchor link
Volgens mij zou zoiets gewoon moeten werken.
 
Thomas van den Heuvel

Thomas van den Heuvel

01/11/2015 14:22:05
Quote Anchor link
Dit gaat volgens mij niet vliegen allemaal.

Het kan wel, als je in je query-aanroepen aangeeft van welke connectie je gebruik wil maken (stap ook ajb over op MySQLi of PDO), maar het lijkt mij gewoon hinken op twee benen.

Stop alles gewoon in één database...
 
Frank Nietbelangrijk

Frank Nietbelangrijk

01/11/2015 15:22:34
Quote Anchor link
Ik heb sterk het gevoel dat de topic starter twee tabellen bedoelt en niet twee databases. Je kunt met een join query gegevens uit meerdere tabellen trekken.
 
Thomas van den Heuvel

Thomas van den Heuvel

01/11/2015 15:34:22
Quote Anchor link
In dat geval lijkt het mij handiger dat soortgelijke gegevens in eenzelfde tabel zitten, je kunt op andere manieren onderscheid maken tussen verschillende producten en winkelwagens.

Ik heb (ook hier) het sterke gevoel dat er is beknibbeld op tijd die besteed had moeten worden aan een degelijk database-ontwerp. Daar plukt de TS nu de wrange vruchten van.
 
Paco de Wulp

Paco de Wulp

01/11/2015 17:41:43
Quote Anchor link
Gegevens uit 2 tabellen is natuurlijk geen enkel probleem. JOIN gebruik je daarvoor.

@JASPER: 2 tabellen of idd. 2 databases ??
Gewijzigd op 01/11/2015 17:42:54 door Paco de Wulp
 
Peter K

Peter K

02/11/2015 11:28:25
Quote Anchor link
Eddy E op 01/11/2015 08:31:33:
PeterK: met een JOIN koppel je tabellen in 1 tabel.
Ik kan me niet voorstellen dat dit werkt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
SELECT database_een.naam, database_twee.adres
FROM database_een.tabel_namen, database_twee.tabel_adressen
WHERE database_twee.tabel_adressen.postcode = '1234AB'
AND database_een.tabel_namen.voorletters = 'J.A.'



Wat je hier aangeeft werkt inderdaad niet volgens mij.
Wat wel zou werken is:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
SELECT
    database_een.tabel_namen.kolomnaam,
    database_twee.tabel_namen.kolomnaam
FROM
    database_een.tabel_namen,
    database_twee.tabel_adressen
WHERE
    database_twee.tabel_adressen.postcode = '1234AB' AND
    database_een.tabel_namen.voorletters = 'J.A.'


Belangrijk is dus wat zoekt topicstarter? Zoeken in databases of tabellen, het is beide mogelijk.

Oh een kleine notitie: meerdere databases werkt alleen als je met één user in alle databases kunt komen.
Gewijzigd op 02/11/2015 11:28:57 door Peter K
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.