Meerdere SQL data in 1 array plaatsen
Ik wil uit een database met minimaal 2 verschillende SQL query's data ophalen en deze in 1 array plaatsen voor later gebruik.
Het volgende heb ik, maar samen lukt het me nog niet helemaal.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
$query_1 = "
SELECT Grootboeknr_1, TransactieDatum, TransactieOmschrijving, Credit_1, Munteenheid
FROM $tbl_name
WHERE Klantnummer='$Klantnummer' AND ( Grootboeknr_1 = '16600' )
ORDER BY TransactieDatum ASC
";
$result_1 = mysql_query($query_1);
$query_2 = "
SELECT Grootboeknr_2, TransactieDatum, TransactieOmschrijving, Credit_2, Munteenheid
FROM $tbl_name
WHERE Klantnummer='$Klantnummer' AND ( Grootboeknr_2 = '16600' )
ORDER BY TransactieDatum ASC
";
$result_2 = mysql_query($query_2);
while ($data = mysql_fetch_assoc($result_1))
{
echo '
<tr>
<td >' . $data['TransactieDatum'] . '</td>
<td >' . $data['TransactieOmschrijving'] . '</td>
<td >' . $data['Debet_2] . '</td>
<td >' . $data['Credit_1] . '</td>
<td >' . $data['Munteenheid'] . '</td>
</tr>';
}
?>
$query_1 = "
SELECT Grootboeknr_1, TransactieDatum, TransactieOmschrijving, Credit_1, Munteenheid
FROM $tbl_name
WHERE Klantnummer='$Klantnummer' AND ( Grootboeknr_1 = '16600' )
ORDER BY TransactieDatum ASC
";
$result_1 = mysql_query($query_1);
$query_2 = "
SELECT Grootboeknr_2, TransactieDatum, TransactieOmschrijving, Credit_2, Munteenheid
FROM $tbl_name
WHERE Klantnummer='$Klantnummer' AND ( Grootboeknr_2 = '16600' )
ORDER BY TransactieDatum ASC
";
$result_2 = mysql_query($query_2);
while ($data = mysql_fetch_assoc($result_1))
{
echo '
<tr>
<td >' . $data['TransactieDatum'] . '</td>
<td >' . $data['TransactieOmschrijving'] . '</td>
<td >' . $data['Debet_2] . '</td>
<td >' . $data['Credit_1] . '</td>
<td >' . $data['Munteenheid'] . '</td>
</tr>';
}
?>
Ik wil nu dat de resultaten van de eerste $result_1 samengevoegd wroden met de tweede $result_2 zodanig dat ik de gecombineerde data op TransactieDatum kan sorteren en via echo kan printen.
Punt is dat ik wel een array kan maken met b.v.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
while($result = mysql_fetch_object($query_1))
{
//adding data to the array
$myArr[] = $result->$element;
}
?>
while($result = mysql_fetch_object($query_1))
{
//adding data to the array
$myArr[] = $result->$element;
}
?>
maar niet de beide results erin.
Ik hoop op een mooie oplossing, maar misschien kan het ook gewoon simpeler.
Groet, Carl.
bedankt voor je oplossing. Deels want ik heb nu welliswaar de gewenste data in 1 query staan. En dat kan ik ook laten zien op de website, echter het staat in 1 kolom.
Heb heb uit de eerste SELECT de data uit de kolom Debet_2 nodig en uit de tweede SELECT de data uit de kolom Credit_1. Die data is er wel, maar met echo wil ik in de te printen tabel met kolom Debet alleen de Debet_2 gegevens en in een andere kolom Credit de data uit Credit_1.
Onderstaand mijn PHP
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$result = mysql_query("
SELECT TransactieDatum, TransactieOmschrijving, Debet_2, Munteenheid
FROM $tbl_name
WHERE Klantnummer='$Klantnummer' AND ( Grootboeknr_1 = '16600' )
UNION SELECT TransactieDatum, TransactieOmschrijving, Credit_1, Munteenheid
FROM $tbl_name
WHERE Klantnummer='$Klantnummer' AND ( Grootboeknr_2 = '16600' )
ORDER BY TransactieDatum ASC");
?>
$result = mysql_query("
SELECT TransactieDatum, TransactieOmschrijving, Debet_2, Munteenheid
FROM $tbl_name
WHERE Klantnummer='$Klantnummer' AND ( Grootboeknr_1 = '16600' )
UNION SELECT TransactieDatum, TransactieOmschrijving, Credit_1, Munteenheid
FROM $tbl_name
WHERE Klantnummer='$Klantnummer' AND ( Grootboeknr_2 = '16600' )
ORDER BY TransactieDatum ASC");
?>
</p>
<p>
<title>Overzicht</title>
<meta charset="utf-8">
<table width="500" class="hovertable" >
<tr align="left">
<th width="90">Datum</th>
<th width="206">Omschrijving</th>
<th width="60">Debet</th>
<th width="60">Credit</th>
<th width="60">Munt</th>
</tr>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
while ($data = mysql_fetch_assoc($result))
{
echo '
<tr>
<td >' . $data['TransactieDatum'] . '</td>
<td >' . $data['TransactieOmschrijving'] . '</td>
<td >' . $data['Debet_2'] . '</td>
<td >' . $data['Credit_1'] . '</td>
<td >' . $data['Munteenheid'] . '</td>
</tr>';
}
?>
while ($data = mysql_fetch_assoc($result))
{
echo '
<tr>
<td >' . $data['TransactieDatum'] . '</td>
<td >' . $data['TransactieOmschrijving'] . '</td>
<td >' . $data['Debet_2'] . '</td>
<td >' . $data['Credit_1'] . '</td>
<td >' . $data['Munteenheid'] . '</td>
</tr>';
}
?>
Ik weet dus nog niet waarom alle data uit Debet_2 en Credit_1 na de SELECT ....... UNION SELECT ..... samengevoegd worden in 1 kolom. Ik had gehoopt dat na samenvoegen dus weldegelijk een kolom Debet_2 en Credit_1 zou bestaand die dus apart/naast elkaar kunnen worden geprint ( met echo...).
Ik hoop dat je hiervoor ook een oplossing of indicatie heb om verder te zoeken.
Bedankt alvast.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$result = mysql_query("
SELECT TransactieDatum, TransactieOmschrijving, Credit_1, Debet_2, Munteenheid
FROM $tbl_name
WHERE Klantnummer='$Klantnummer' AND ( Grootboeknr_1 = '16600' OR Grootboeknr_2 = '16600')
ORDER BY TransactieDatum ASC");
?>
$result = mysql_query("
SELECT TransactieDatum, TransactieOmschrijving, Credit_1, Debet_2, Munteenheid
FROM $tbl_name
WHERE Klantnummer='$Klantnummer' AND ( Grootboeknr_1 = '16600' OR Grootboeknr_2 = '16600')
ORDER BY TransactieDatum ASC");
?>