Select from twee databases
Kan je ook van twee databases selecteren?
Dit werkt niet:
Hij laat alleen de producten van winkelwagen2 zien.
Dit werkt niet:
Code (php)
1
2
3
4
5
6
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);
$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)
1
2
3
4
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());
$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.
Gebruik liever MySQLi. Verder kan je ook een connectie-argument gebruiken.
Maar waarom zet je alles niet gewoon in een enkele database?
Maar waarom zet je alles niet gewoon in een enkele database?
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
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
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 ?
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 ?
Volgens mij kan je de mysql_select_db() achterwege laten en de tabellen aanroepen zoals:
databasenaam.tabel
Achter één connectie kunnen meerdere databases zitten.
databasenaam.tabel
Achter één connectie kunnen meerdere databases zitten.
en hoe doe je dat?
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?
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?
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:
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?
Of de manier van je data opslaan de goede manier is, valt volgens mij nog te bespreken.
Een klein voorbeeldje:
Code (php)
1
2
3
4
5
6
7
8
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']}'
*
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
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.
Of anderzijds deze in de database op te slaan, aan de hand van een uniek ID in je cookie en je database.
PeterK: met een JOIN koppel je tabellen in 1 tabel.
Ik kan me niet voorstellen dat dit werkt:
Ik kan me niet voorstellen dat dit werkt:
Volgens mij zou zoiets gewoon moeten werken.
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...
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...
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.
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.
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.
Gegevens uit 2 tabellen is natuurlijk geen enkel probleem. JOIN gebruik je daarvoor.
@JASPER: 2 tabellen of idd. 2 databases ??
@JASPER: 2 tabellen of idd. 2 databases ??
Gewijzigd op 01/11/2015 17:42:54 door Paco de Wulp
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:
Ik kan me niet voorstellen dat dit werkt:
Wat je hier aangeeft werkt inderdaad niet volgens mij.
Wat wel zou werken is:
Code (php)
1
2
3
4
5
6
7
8
9
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.'
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




