[php][mysql]gegevens uit 2 tabellen vergelijken.

Pagina: 1
Acties:
  • 220 views sinds 30-01-2008
  • Reageer

Onderwerpen


Verwijderd

Topicstarter
ik wil uit 2 tabellen vergelijken en dan plaatsten in een html tabel.
de gegevens moeten op volgorde van klein naar groot in een tabelletje komen.
alleen de id's uit de beide tabbellen zijn niet autoincredment en zijn dus van te voren niet bekend.
ik moet dus iets hebben om de ene id te kunnen vergelijken met de andere en dan te bepallen welke er eerst komt en welke later en als ze gelijk zijn dat ze bij elkaar horen.
tot nu toe heb ik geprobeerd om met simpele boolean vergelijkingen te werken. alleen het werkt gewoon niet zoals ik wil. de gegevens worden of alleen uit een tabel of helemaal niet weergegeven.

hiermee ben ik begonnen
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        while($rijdb1 = mysql_fetch_array($showdb1)) //start while loop db1
        {
            $rijdb2 = mysql_fetch_array($showdb2); // db2
            
                if($rijdb1['ID'] < $rijdb2['ID'])
                {
                
                    echo $rijdb1['ID'] ."<br>";
                    
                }
                else 
                {
                    if($rijdb1['ID'] == $rijdb2['ID'])
                    echo $rijdb1['ID'] ." ";
                    echo $rijdb2['ID'] ."<br>";
                }
            
            
        
        }

  • Redshark
  • Registratie: Mei 2002
  • Laatst online: 20-09 13:25
Misschien kun je ook iets vertellen over je database? Een modelletje of dump van de twee tabellen zou zijn zijn :)
Waarschijnlijk vergelijk je de verkeerde ID's. Je moet if($rijdb1['ID'] vergelijken met $rijdb2['foreign_ID']) oid.

Verwijderd

Topicstarter
er is van oorsprong geen koppeling gelegd tussen de twee tabbeletjes

voorbeeldje van de 2
code:
1
2
3
4
5
id | gegeven
1     15
2     10
3     15
5     1

2de tabel
code:
1
2
3
4
5
id | gegeven
1     8
4     12
5     13
6     4

samen moet dit worden
code:
1
2
3
4
5
6
7
id | gegeven
1    15 | 8
2    10
3    15
4    12
5    1  | 13
6        | 4


de enige koppeling die er is is dat de id's die aanwezig zijn in bijde tabellen bij elkaar horen.

Verwijderd

Dan moet je je query aanpassen :)

SQL:
1
SELECT * FROM tabel1 LEFT JOIN tabel2 ON ID

Klaar :) Werkt alleen als gegeven in tabel1 een andere naam heeft dan gegeven in tabel2...

[ Voor 27% gewijzigd door Verwijderd op 23-02-2006 09:44 ]


Verwijderd

Topicstarter
nope, wat ik zelf was vergeten is dat er een SUM word gedaan over de gegevens aan het id.
ik heb nu 2 de zelfde query's.

SELECT klanten.ID,
SUM((bestelling.prijs * 0.01) * DB1.procent) AS ptotaal
FROM DB1, klanten, bestelling
WHERE klanten.ID = bestelling.ID
BETWEEN \"".$datum1."\"
AND \"".$datum2."\"
AND bestellung.status = '1'
GROUP BY klanten.ID";

de 2 query functioneren los van elkaar gewoon goed maar het zaakje samenvoegen lukt me niet goed.

Verwijderd

Het kan echt wel in 1 query hoor... Leg even uit wat je precies wilt, heb je 2 tabellen met klantgegevens? Wat jij wil kun je volgens mij veel beter direct m.b.v. je query doen.

[ Voor 4% gewijzigd door Verwijderd op 23-02-2006 10:21 ]

Pagina: 1