Meerdere queries uit verschillen tabellen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

IoT Software Developer PHP

Functie omschrijving Voor een klein softwarebedrijf in Breda, zijn wij op zoek naar een IoT software developer met kennis van PHP. In deze rol wordt je verantwoordelijk voor het vernieuwen van het multimedia platform van een super tof bedrijf in Breda. Je gebruikt PHP als programmeerlaag, en bent in staat om de helicopterview te pakken / projectmatig te werken. Jouw werkzaamheden zien er als volgt uit: Je gaat aan de slag met de ontwikkeling en vernieuwing van het "intern" ontwikkelde multimedia platform. Je neemt de lead in het moderniseren van het platform door het deels opnieuw op te zetten of

Bekijk vacature »

Als Front-end developer samenwerken met de beste c

Functie Momenteel zijn we voor één van de projecten bij hun key partner, een voorloper in de energiesector, op zoek naar gedreven Front-end developers. Ze nemen de lead in dit project en werken uitsluitend met vooruitstrevende technologieën. Ze verwachten dat de technologie die hier wordt ontwikkeld uiteindelijk door veel meer grote corporates, in verschillende sectoren zal worden toegepast. Dit is dan ook een heel uitdagend project om aan mee te gaan werken. Het team bestaat o.a. uit User Experience designers, Data Scientists en Software Engineers. De consultants en ontwikkelaars werken volgens de Design Thinking methode waarbij de eerste stappen van

Bekijk vacature »

Functioneel Applicatiebeheerder

Wij van CNB zijn op zoek naar een leergierige Functioneel Applicatiebeheerder CNB is de grootste dienstverlener in de markt van bloembollen en vaste planten. In deze markt verricht CNB de volgende diensten: bemiddeling, veilen en het koelen en prepareren van bloembollen. Vanuit ons hoofdkantoor in Lisse werken bijna 100 collega’s dag in dag uit aan de bemiddeling van bloembollen. In Bovenkarspel vindt het koelen en prepareren van de bloembollen plaats. Wij zijn op zoek naar een enthousiaste Functioneel Applicatiebeheerder die naast een applicatie, ook sfeer kan bouwen! Jij: Vindt het leuk om binnen een klein IT-team aan de slag te

Bekijk vacature »

Back-end developer (Magento2)

Functie E-commerce is een ‘’snelle’’ wereld. Om hierin continu voorop te blijven omarmen ze in een vroeg stadium nieuwe technieken. Een webshop is nooit af en kan altijd beter, sneller en efficiënter. Tegelijkertijd hebben ze vanaf hun oprichting altijd vastgehouden aan kwaliteit boven snelheid, en dit loont. Als back-end developer fungeer je als het verlengstuk van hun klanten. Technisch complexe zaken pak je met liefde op, en hierin werk je samen met o.a. front-end developers en designers. Klanten verwacht hierin kwaliteit van het hoogste niveau en een proactieve, meedenkende rol bij het maken van zowel technische als strategische keuzes. Ga

Bekijk vacature »

PHP Developer

Functieomschrijving Vanuit het hoofdkantoor in de regio van Bergen op Zoom ben je als PHP Developer niet alleen gefocust op het ontwikkelen van Software. Daarnaast ben je ook voortdurend bezig met het zoeken naar nieuwe mogelijkheden en innovaties die essentieel kunnen zijn voor de efficiëntie van software ontwikkeling. Je deelt veel kennis en informatie met het team en ontvangt deze dan ook graag terug. Techstack: PHP, Symfony & mySQL. Bedrijfsprofiel Deze uitdagende opdrachtgever is ruim 20 jaar actief in de regio Bergen op Zoom. Het vooruitstrevende team staat de hele dag voor je klaar om je te helpen en ondersteunen.

Bekijk vacature »

Fasttrack learning & development voor Java dev

Wat je gaat doen: Wij zoeken enthousiaste en ambitieuze junior en medior ontwikkelaars die toe zijn aan de volgende stap in hun carrière. Wij helpen je op je pad naar senior ontwikkelaar door ons fasttrack learning en development programma. Na een kort en intensief programma ga jij aan de slag bij klanten van DPA. Daarnaast krijg je veel ruimte om je te ontwikkelen als persoon en als specialist. De eerste maand gaan we aan de slag om je certificeringen te behalen waaronder OCP (Oracle Certified Professional). Daarnaast nemen we een deepdive in Spring Boot. Ook laten we je kennismaken met

Bekijk vacature »

Full stack .NET developer Microsoft 365

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

Developer (One Data)

Do you have experience with managing IT Teams in a service delivery organization? Are you keen to bring the team and our platform to a higher level? Then Nutreco has a very interesting role for you! As a One Data developer you are responsible for the management, running and functional use of our integration landscape and processes within Nutreco. Nutreco is using at this time BizTalk 2016, and Apigee for its API management, to be replaced by Azure Integration Services as of 2023. You will be part of a virtual teams of 11 people (own and outsourced) working in an

Bekijk vacature »

C#.NET Developer

Dit ga je doen Ontwikkelen van de Back-end in .NET6 / C# en WebAPI (Focus);) Ontwikkelen van de Front-End in Nodje.js en Angular (secundair); Opstellen van een technisch ontwerp; Testen, documenteren en implementeren van de nieuwe applicatie; Verzorgen van de nazorg, na de implementatie; Het oplossen van bugs en incidenten. Hier ga je werken Als C#.NET Developer binnen deze organisatie kan jij het verschil maken. Zij werken momenteel nog met programmatuur die is ontwikkeld in C++. Hiervan gaan zij afscheid nemen zodra alle nieuwe software in C#.NET geschreven is. Een grootschalig en langdurig project. Voor hen is deze software van

Bekijk vacature »

Medior front-end developer gezocht (€3.300 -

Functie Wat ga je doen? Jij als front-end developer gaat werken binnen de teams van/voor onze klant. Je werkt in een team met starters en ervaren ontwikkelaars met allemaal 1 overeenkomst; passie voor het vak. Maak je een fout? Geen probleem, leer ervan en ga dan weer door. Door de variëteit aan werk kun je in verschillende omgevingen een kijkje nemen en jezelf dus snel ontwikkelen. Wat hebben we jou te bieden? • Uitdagende projecten bij mooie klanten (bij jou in de buurt, of binnenkort intern vanuit ons kantoor!) • Een jonge organisatie met talentvolle collega’s • Veel ruimte voor

Bekijk vacature »

Applicatie ontwikkelaar

Functie omschrijving Zelfstandige applicatie ontwikkelaar gezocht voor familiair bedrijf in omgeving Capelle ad Ijssel Ben jij op zoek naar een nieuwe uitdaging en zoek jij een informele werkgever waar je zelfstandig kunt werken binnen een leuk IT team, lees dan snel verder want wie weet zijn wij op zoek naar jou! Een deel van jouw werkzaamheden: Onderhouden en ontwikkelen van de IT systemen; Opzetten van Azure Cloud systemen, denk aan interfaces, hardware op de Cloud, webportalen of BI functies; Werken aan scripts binnen verschillende software applicaties, denk aan ERP en CAD; Ontwikkelen en implementeren van MS PowerApps en Power BI.

Bekijk vacature »

Fullstack developer

Zie jij mogelijkheden om onze tooling technisch te verbeteren en uit te bouwen? Over Jobmatix Jobmatix is een innovatieve en internationale speler op het gebied van jobmarketing. Onze jobmarketing automation tool helpt organisaties bij het aantrekken van nieuw talent door vacatures digitaal, geautomatiseerd en op een efficiënte manier te adverteren en onder de aandacht te brengen bij de doelgroep op 25+ jobboards. Volledig performance-based, waarbij organisaties betalen op basis van cost per click of cost per applicant. Maandelijks wordt onze jobmarketing automation tool al gebruikt door vele directe werkgevers, intermediairs en mediabureaus, waaronder Picnic, Rijkswaterstaat, AdverOnline, Schiphol, DPA, Teleperformance en

Bekijk vacature »

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 »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

.NET developer

Functie Jij begint als .NET ontwikkelaar in een team met 10 andere Software Engineers. De werkzaamheden zijn afwisselend, zo kan het dat jij bezig bent met volledig nieuwe features of het door ontwikkelen van bestaande sites of shops. Wij ontwikkelen web applicaties, maar ook mobiele applicaties. Daarnaast bijt jij je soms ook van in externe koppelingen met systemen zoals een ERP. Als team is er een duidelijke focus m.b.t. het waarborgen van de performance en snelheid van webshops. Ook zijn wij expert op het gebied van configuratoren. Kortom enorm veel afwisselende werkzaamheden! Ook jouw werkplek kan afwisselend zijn. Soms heb

Bekijk vacature »
Karina Six

Karina Six

05/12/2021 16:51:57
Quote Anchor link
Hi! Ik ben sinds enkele weken bezig met PHP te leren, nu zit ik met een issue waar ik maar niet uit geraak.

Ik zou graag twee id's uit twee verschillende tabellen selecteren. En met deze id's een derde tabel vullen. De id's zijn dus eigenlijk foreign keys (als ik het goed heb). Aan de hand van een ingevuld formulier verkrijg ik de info 'Productnaam' (uit tabel Product) en 'Voornaam','Familienaam' (uit tabel Klant) en het Aantal.

Dus met een 'Select'-query dacht ik zo de id's te verkrijgen uit de twee verschillende tabellen. Het lukt me niet om deze samen in één query te zetten. Aangezien de tabellen geen gemeenschappelijke kolommen hebben, leek een JOIN geen optie. Ik dacht ze dus in twee aparte te zetten? (zie stukje code onderaan)

BV:
tabellen

Product: id, productnaam, prijs
Klant: id, voornaam, familienaam
aankoop: klantId, productId, aantal

Tips om mij verder op weg te helpen?

Vriendelijk bedankt,
Karina

Ter illustratie: (Ik heb ook al geprobeerd de twee queries in één variable onder te brengen gescheiden met een ' ; ' maar dit zorgde voor wat errors.)

public function getIds(string $familienaam, string $voornaam, string $productnaam, int $aantal)
{
$sql = "select id as productId from producten where productnaam = :productnaam";
$sql2 = "select id as klantId from modules where familienaam = :familienaam and voornaam = :voornaam";
 
PHP hulp

PHP hulp

27/05/2026 05:40:04
 
Ivo P

Ivo P

05/12/2021 17:26:24
Quote Anchor link
om je formulier te vullen, heb je 2 query's nodig:
1 om je producten op te halen
1 om je klanten te vinden.

De aankopen kun je wel in 1 query ophalen: (voorbeeld voor klant met id = 123)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
SELECT k.id klantid,
       k.voornaam,
       k.achternaam,
       p.id productid,
       p.productnaam
FROM Klant k
JOIN aankoop ak ON k.id = ak.klantId
JOIN Product p ON p.id = ak.productId
WHERE k.id = 123


Je moet trouwens de prijs ook opslaan in de aankoop: als je later de prijs aanpast, weet je niet meer wat de klant moe(s)t betalen
 
Karina Six

Karina Six

05/12/2021 19:51:54
Quote Anchor link
Dag Ivo, hartelijk bedankt voor de feedback! Ik krijg nog steeds een foutmelding:

Warning: foreach() argument must be of type array|object, bool given in /XXX/doc.php on line 55

Zou het kunnen omdat er geen resultaten in de array terecht komen? Ter info: de tabel aankopen is voorlopig leeg, maar aangezien ik niets ophaal uit die tabel zou dit geen problemen mogen opleveren?

Hier het volledige deel. Zoals je zit wil ik met de resultaten een object maken.

public function getArray(string $familienaam, string $voornaam, string $product, int $aantal)
{
$sql = "select k.id as klantId,
k.voornaam,
k.familienaam,
p.id as productId,
p.naam,
p.prijs
from klanten k
join aankopen ak ON k.id = ak.persoonId
join producten p ON p.id = pu.productId
where p.naam = :product and k.familienaam = :familienaam and k.voornaam = :voornaam";
$dbh = new PDO($this->dbConn, $this->dbUsername, $this->dbPassword);

$stmt = $dbh->prepare($sql);

$stmt->execute(array(
':familienaam' => $familienaam,
':voornaam' => $voornaam,
':product' => $product
));


$resultSet = $stmt->fetch(PDO::FETCH_ASSOC);

$lijst = array();
foreach ($resultSet as $rij) {
$aankoop = new Aankoop(
(int)$rij["klantId"],
$rij["voornaam"],
$rij["familienaam"],
$rij["productId"],
$rij["naam"],
$rij["prijs"]);
array_push($lijst, $aankoop);
}

$dbh = null;
return $lijst;
}
 
- Ariën  -
Beheerder

- Ariën -

05/12/2021 20:03:05
Quote Anchor link
We hebben ook code-tags voor codes.

Wat zegt var_dump?
 
Karina Six

Karina Six

05/12/2021 20:19:24
Quote Anchor link
- Ariën - op 05/12/2021 20:03:05:
We hebben ook code-tags voor codes.

Wat zegt var_dump?


Hi,
Wanneer ik var_dump doe bij $resultSet, krijg ik dit. De variabelen in de foreach-loop hebben bijgevolg geen waarde.

bool(false)
Warning: foreach() argument must be of type array|object, bool given in /opt/XX/doc.php on line 56
array(0) { }
Warning: Undefined variable $punten in /opt/XXX.php on line 67
NULL
 
- Ariën  -
Beheerder

- Ariën -

05/12/2021 20:31:42
Quote Anchor link
Bouw eens foutafhandeling in?

En plaats je code graag tussen codetags.
 
Karina Six

Karina Six

06/12/2021 19:10:33
Quote Anchor link
- Ariën - op 05/12/2021 20:31:42:
Bouw eens foutafhandeling in?

En plaats je code graag tussen codetags.


Hi, blijkt dat mijn SQL-statement niet correct is. Als ik ze test in myPhpAdmin, blijkt één kolomn bij elke waarde 'null' te geven, al zijn er gegevens voor deze id. Ook wanneer ik de beide 'RIGHT JOIN' doe of 'LEFT JOIN - RIGHT JOIN', 'RIGHT JOIN-LEFT JOIN'.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
SELECT k.id,
p.id
from klanten k
LEFT JOIN aankopen ak on k.id = ak.klantId
LEFT JOIN producten p on p.id = ak.productId
 
Adoptive Solution

Adoptive Solution

06/12/2021 20:20:46
 
Karina Six

Karina Six

06/12/2021 21:05:40
Quote Anchor link
Adoptive Solution op 06/12/2021 20:20:46:


Hi, wanneer ik inner join gebruik, krijg ik geen resultaten terug. Ter info: de tabel aankopen is voorlopig leeg. Dus wat ik wil verkrijgen is de id van zowel klanten als producten aan de hand van een invulformulier.

BV. Ik vul in formulier: Klant Peeters koopt Wasmachine. Met een 'where'-statement wil ik zo de juist ID's verkrijgen uit de twee tabellen. ik krijg hierbij nog steeds een foutmelding ter hoogte van 'p.id where ... '

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
SELECT k.id where familienaam = :familienaam,
p.id where productnaam = :productnaam
from klanten k
INNER JOIN aankopen ak on k.id = ak.klantId
INNER JOIN producten p on p.id = ak.productId
 
Ivo P

Ivo P

07/12/2021 10:45:59
Quote Anchor link
Er is geen link tussen die klant en dat product: hij heeft hem nog niet gekocht.

Nu zal er vast wel een of andere exotische query mogelijk zijn om middels een of andere outer join tussen klant en producten alles van beide te verkrijgen, maar dan waarschijnlijk in de aantallen "veel te veel".

Dus iets met 1000 producten en 200 klanten levert je 200.000 records met alle mogelijke combinaties op.

Veel eenvoudiger is het om je lijstje te bouwen met 2 losse query's:
een om alle producten op te halen
en een om alle klanten op te halen (al heb je hopelijk snel zo veel klanten dat je die niet allemaal in 1 lijstje wilt tonen).

Daarna schiet je klant_id en product_id (plus wat info als datum en prijs en aantallen) in de tabel Aankopen.
En dan kun je info ophalen over "wie" en "wat" gekocht is.
 
Karina Six

Karina Six

07/12/2021 13:07:52
Quote Anchor link
Ivo P op 07/12/2021 10:45:59:
Er is geen link tussen die klant en dat product: hij heeft hem nog niet gekocht.

Nu zal er vast wel een of andere exotische query mogelijk zijn om middels een of andere outer join tussen klant en producten alles van beide te verkrijgen, maar dan waarschijnlijk in de aantallen "veel te veel".

Dus iets met 1000 producten en 200 klanten levert je 200.000 records met alle mogelijke combinaties op.

Veel eenvoudiger is het om je lijstje te bouwen met 2 losse query's:
een om alle producten op te halen
en een om alle klanten op te halen (al heb je hopelijk snel zo veel klanten dat je die niet allemaal in 1 lijstje wilt tonen).

Daarna schiet je klant_id en product_id (plus wat info als datum en prijs en aantallen) in de tabel Aankopen.
En dan kun je info ophalen over "wie" en "wat" gekocht is.

Dag Ivo,

Bedankt! Dat brengt mij bij een volgende vraag, kan ik deze twee queries in één variable onderbrengen? Ik zou ze graag in één functie uitwerken en met die gegevens een object maken.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
            $sql = "select k.id as persoonId from klanten k where familienaam = :familienaam;  
            select p.id as productId from product p where naam = :naam";
 
Adoptive Solution

Adoptive Solution

07/12/2021 13:10:50
 
- Ariën  -
Beheerder

- Ariën -

15/12/2021 11:39:52
Quote Anchor link
*Spambericht verwijderd*
 



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.