Meerdere SQL data in 1 array plaatsen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Carl Zwanenburg

Carl Zwanenburg

28/05/2013 20:59:55
Quote Anchor link
LS.

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>'
;    
    }

?>


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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
 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.
 
PHP hulp

PHP hulp

23/12/2024 04:08:37
 
Erwin H

Erwin H

28/05/2013 22:10:18
Quote Anchor link
Gezien het feit dat de structuur van je beide resultsets identiek is kan je die twee queries in 1 doen via een UNION. Heb je maar 1 query nodig en dus ook maar 1 array met uitkomsten.

http://dev.mysql.com/doc/refman/5.0/en/union.html
 
Carl Zwanenburg

Carl Zwanenburg

28/05/2013 22:57:48
Quote Anchor link
Dag Erwin,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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"
);
?>

</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)
PHP script in nieuw venster Selecteer het PHP script
1
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>'
;
        }

?>


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.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

29/05/2013 08:27:39
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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"
);
?>
 



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.