arrays met zoekresultaten uit 2 databases samenvoegen
Da's wat ik graag wil kunnen doen. De situatie
- één database: database1 (tabel: test, velden: id en naam)
- een tweede database: database2 (tabel: test2, velden: id en persoon)
De beide databases bevinden zich niet op dezelfde server.
De velden naam en persoon bevatten eenzelfde soort gegevens.
Wat me lukt: achtereenvolgens met de ene en daarna met de andere database een connectie maken en via een query de gegevens ophalen en uitschrijven.
Resultaat:
- naam1
- naam2
- ...
- persoon 1
- persoon 2
- persoon 3
...
Nu wil ik graag de resultaten uit beide queries samen gooien, alfabetisch sorteren en vervolgens in z'n geheel uitschrijven.
Naam1
Persoon1
Naam2
Persoon2
...
't Zal misschien supersimpel zijn, maar ik raak er toch niet uit.
Geeft iemand een duwtje?
Gewijzigd op 01/01/1970 01:00:00 door Zuppo
Alles in 1 array() gooien en array() sorteren?
Wel een gekke situatie om twee verschillende databases te gebruiken voor twee tabellen die zo op elkaar lijken. Waarom heb je dat zo?
Code (php)
Je zult een link moeten hebben tussen de rijen, als het volgende tenminste niet mag gebeuren:
naam1 persoon1
naam2 persoon3 (omdat persoon 2 ontbreekt)
met de resultaten, waarin de eerste dimensie de naam + id als sleutel heeft. Dit om dubbele waarden te voorkomen. Vervolgens kun je er dan een sort() overheen gooien, om het al op alfabetische volgorde te krijgen.
Tenzij bij allebei de tabellen nr 523 jantje heten...
Gewijzigd op 01/01/1970 01:00:00 door Pieter van Linschoten
bedankt voor jullie reacties. Jullie maken het blijkbaar graag laat op vrijdagavond. Was al in bed geklommen ...
@ Jan: 't is de bedoeling om de inhoud van een externe database met gelijkaardige gegevens via een zoekscherm te koppelen aan een eigen database. Vandaar de overeenkomst in de structuur ...
@Santhe, Storeman en Lapidi: misschien heb ik jullie een beetje op het verkeerde been gezet met m'n voorbeeld. Ik wil als resultaat een lijst met '1 kolom' van namen die alfabetisch gesorteerd is.
Dus als in database 1 de namen Jan, Piet, Miet zitten en in database2 Ann, Roos en Dirk, dan moet m'n resultaat uitgeschreven als Ann, Dirk, Jan Piet, Miet, Roos.
Edit:
Eureka! Heb 't intussen dank zij jullie hints voor elkaar gekregen.
// eerste array
$arr1 = array();
while($row1 = mysql_fetch_array($res)){
$arr1[] = $row1[naam];
}
// tweede array
$arr2 = array();
while($row2 = mysql_fetch_array($res2)){
$arr2[] = $row2[persoon];
}
$arrdef = array_merge ($arr1,$arr2);
sort ($arrdef);
//bekijken
print_r ($arrdef);
Die suggestie om dubbels te filteren lijkt me zeker relevant. Ben ik nog niet helemaal achter hoe dat moet ...
Eureka! Heb 't intussen dank zij jullie hints voor elkaar gekregen.
// eerste array
$arr1 = array();
while($row1 = mysql_fetch_array($res)){
$arr1[] = $row1[naam];
}
// tweede array
$arr2 = array();
while($row2 = mysql_fetch_array($res2)){
$arr2[] = $row2[persoon];
}
$arrdef = array_merge ($arr1,$arr2);
sort ($arrdef);
//bekijken
print_r ($arrdef);
Die suggestie om dubbels te filteren lijkt me zeker relevant. Ben ik nog niet helemaal achter hoe dat moet ...
Gewijzigd op 01/01/1970 01:00:00 door zuppo