meerdere records tonen na selectie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior, Medior and Junior SAP HANA Developer

Vacature details Vakgebied: Software/IT Opleiding: Medior Werklocatie: Veldhoven Vacature ID: 12696 Introductie Our client is the world's leading provider of lithography systems for the semiconductor industry, manufacturing complex machines that are critical to the production of integrated circuits or chips. Our purpose is “unlocking the potential of people and society by pushing technology to new limits”. We do this guided by the principles “Challenge”, “Collaborate” and “Care”. Wat verwachten we van jou? SAP Certified Application Associate - SAP HANA Cloud Modeling (training and/or certification) Bachelor degree or higher Excellent understanding of SAP HANA (2.0 / Cloud), Data Modelling and writing

Bekijk vacature »

Allan de Bruin

Allan de Bruin

05/01/2012 18:41:56
Quote Anchor link
Hallo allemaal,
Ik ben bezig geweest met een script voor een mulitselectie waarbij je op een volgende pagina gegevens kan vergelijken.
Op dit moment heb ik het volgende geprobeerd:

Als eerste pagina 1 waar je een selectie maakt.
Daar worden de ID's geselecteerd van de records uit de database.
Dan klik je op de knop om te gaan vergelijken.

De volgende pagina wil ik dan de records zien die ik heb geselecteerd in een tabel.

Mijn SELECT is een beetje lang omdat ik alle kolommen benoem die ik wil hebben dus hier even een kleine samenvatting hiervan:


Quote:
$InstId_GET = $_GET['InstId'];

SELECT ALLE KOLOMMEN DIE IK WIL ZIEN FROM ALLE TABELLEN DIE IK WIL HEBBEN WHERE instellingen.InstId = '$InstId_GET' AND tabelnaam.InstId = instellingen.InstId AND tabelnaam.InstId = instellingen.InstId AND tabelnaam.InstId = instellingen.InstId AND tabelnaam.InstId = instellingen.InstId AND tabelnaam.InstId = instellingen.InstId AND tabelnaam.InstId = instellingen.InstId AND tblsociaal.InstId = instellingen.InstId AND tabelnaam.InstId = instellingen.InstId


Nu zou ik verwachten dat deze query alles ophaald aan de hand van de ID's toch?

gr
 
PHP hulp

PHP hulp

04/12/2024 10:26:28
 
Erwin H

Erwin H

05/01/2012 18:56:18
Quote Anchor link
AND tabelnaam.InstId = instellingen.InstId
AND tabelnaam.InstId = instellingen.InstId
AND tabelnaam.InstId = instellingen.InstId
AND tabelnaam.InstId = instellingen.InstId
AND tabelnaam.InstId = instellingen.InstId
AND tabelnaam.InstId = instellingen.InstId
AND tblsociaal.InstId = instellingen.InstId
AND tabelnaam.InstId = instellingen.InstId

Wat is de bedoeling van elke keer hetzelfde statement maken?
 
Allan de Bruin

Allan de Bruin

05/01/2012 18:57:45
Quote Anchor link
tabelnaam.InstId = instellingen.InstId
De eerste heeft een ID die overeenkomt met instellingen.InstId
Dus ID = ID.

Of doe ik dat fout?
 
Erwin H

Erwin H

05/01/2012 18:58:26
Quote Anchor link
maar waarom zo vaak, een keer is genoeg lijkt me. Of mis ik iets...

Of probeer je een aantal tabellen aan te spreken in deze query? Een join dus, maar dan werkt het heel anders.
Gewijzigd op 05/01/2012 19:05:06 door Erwin H
 
Allan de Bruin

Allan de Bruin

05/01/2012 19:11:42
Quote Anchor link
juist, ik probeer een aantal tabellen aan te spreken.
Met een Join zou dat dus beter gaan zeg je?
 
Erwin H

Erwin H

05/01/2012 19:14:29
Quote Anchor link
Niet beter gaan, dat is de methode om het te doen. Afhankelijk van wat je wilt zijn er meerder opties (INNER JOIN, LEFT JOIN, OUTER JOIN etc), maar in zijn algemeenheid doe je het als volgt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
SELECT t.kolom, u.kolom, v.kolom etc
FROM tabel1 t
LEFT JOIN tabel2 u ON t.id = u.id
LEFT JOIN tabel3 v ON t.id = v.id
WHERE t.id = ....
 
Allan de Bruin

Allan de Bruin

05/01/2012 19:19:11
Quote Anchor link
geweldig! thanks! Ik ga hier mee aan de slag en laat het weten hoe het is vergaan!
 
Erwin H

Erwin H

05/01/2012 19:24:01
Quote Anchor link
Als je nog iets meer wilt weten over joins (en dan voornamelijk de verschillen tussen alle mogelijkheden): http://blog.sqlauthority.com/2009/04/13/sql-server-introduction-to-joins-basic-of-joins/
 
Allan de Bruin

Allan de Bruin

05/01/2012 21:50:10
Quote Anchor link
thanks! in het grote MySQL boek kon ik niet echt wat passend vinden.


Toevoeging op 06/01/2012 09:38:25:

duidelijke tutorial/ bron!

Toevoeging op 06/01/2012 09:47:38:

Ik heb gekeken naar die tutorial/ uitleg en ik denk dat de inner join het beste zal werken, echter lukt het mij niet....:( huil!

Waar nu de tabel 'kamer' (zie onder) staat zullen nog 6 andere tabellen moeten komen te staan, die allemaal de kolom 'InstId' bevatten en linken naar de tabel 'instellingen'.
Dus dan is de INNER JOIN hiervoor geschikt begrijp ik uit de tutorial.


De query moet dit gaan verwerken (uit de GET )

?InstId=1&InstId=2&InstId=3

Dit zijn alle geselecteerde ID's van een vorige pagina die ik wil gaan vergelijken.


Dan in bron zet ik deze neer: $InstId_GET = $_GET['InstId'];

SELECT * FROM instellingen INNER JOIN kamers ON (instellingen.InstId = '$InstId_GET' AND kamers.InstId = instellingen.InstId)




Misschien dat ik iets over het hoofd zie?





Toevoeging op 06/01/2012 09:59:19:

sorry voor de vele postst maar wil graag anderen op de hoogte houden van mijn oplossing...denk dat ik het heb gevonden:

Ik heb een aantal tabellen en die linken naar een andere tabel met een ID.

Nu heb ik dus de volgende Join gebruikt en ik krijg eindelijk een resultaat terug! :)

"SELECT * FROM instellingen INNER JOIN kamers USING (InstId)"




Toevoeging op 06/01/2012 11:04:34:

Ik heb nu het volgende gemaakt via Toad. Dit lijkt te werken ;) alleen nu nog de filter maken dat deze alleen de selectie laat zien van het geselecteerde op de vorige pagina. Heeft iemand daar een oplossing voor?

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
30
31
32
33
34
35
36
37
38
39
SELECT instellingen.InstId,
       instellingen.InstNaam,
       instellingen.KoepelId,
       instellingen.InstAdresStraat,
       instellingen.InstAdresNr,
       instellingen.InstPostCijfer,
       instellingen.InstPostLetter,
       instellingen.InstPlaats,
       instellingen.InstProvincie,
       instellingen.Status,
       tblextra.*,
       tblsociaal.*,
       tblsoortzorg.*,
       tblkeuken.*,
       ligging.*,
       tbldoelgroep.*,
       kamers.*
  FROM    (   (   (   (   (   (   db_ziz.tblextra tblextra
                               LEFT OUTER JOIN
                                  db_ziz.instellingen instellingen
                               ON (tblextra.InstId = instellingen.InstId))
                           RIGHT OUTER JOIN
                              db_ziz.ligging ligging
                           ON (ligging.InstId = instellingen.InstId))
                       RIGHT OUTER JOIN
                          db_ziz.tblsociaal tblsociaal
                       ON (tblsociaal.InstId = instellingen.InstId))
                   RIGHT OUTER JOIN
                      db_ziz.tblsoortzorg tblsoortzorg
                   ON (tblsoortzorg.InstId = instellingen.InstId))
               RIGHT OUTER JOIN
                  db_ziz.tblkeuken tblkeuken
               ON (tblkeuken.InstId = instellingen.InstId))
           RIGHT OUTER JOIN
              db_ziz.kamers kamers
           ON (kamers.InstId = instellingen.InstId))
       RIGHT OUTER JOIN
          db_ziz.tbldoelgroep tbldoelgroep
       ON (tbldoelgroep.InstId = instellingen.InstId)
Gewijzigd op 06/01/2012 09:49:25 door Allan de Bruin
 
Allan de Bruin

Allan de Bruin

06/01/2012 23:39:57
Quote Anchor link
Helaas is dit niet gelukt.
Tevens heb ik iemand vandaag gesproken die mij vertelde dat het best kan zoals ik het eerder had omdat de ID's in de tabellen overeenkomen.

@Erwin, heb je misschien nog andere ideeën?
 



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.