Ingewikkelde querys

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Junior Back end developer PHP, Symfony

Functie Wij hebben onlangs onze eerste collega’s aangenomen, waardoor ons development team momenteel uit 4 personen bestaat. We bouwen onze software op basis van een PHP-framework (wat op zichzelf een Symfony framework is). Qua ontwikkeling focussen wij ons op 3 focus velden; – API-ontwikkeling/ Component Creatie – Implementatie – Framework ontwikkeling; het toevoegen van nieuwe functionaliteit of interne microservices Onze senior software engineer focust zich momenteel op de laatste twee punten, maar wij komen handen te kort op het eerste veld. Daarom zijn wij op zoek naar een enthousiaste junior software engineer die graag de kneepjes van het vak wil

Bekijk vacature »

Back-end developer

Dit ga je doen Development d.m.v. XQuery, JSON/XML en REST API's; Ontwikkelen aan een tof en complex zorgplatform; Koppelingen maken met de NoSQL database; Testen en documenteren van de ontwikkelde functionaliteiten; Samenwerking met andere front- en back-end ontwikkelaars. Hier ga je werken Voor een vooruitstrevende organisatie binnen de zorg in Den Haag zijn wij opzoek naar een Back-end Developer die ervaring heeft met o.a.XQuery en Vue.JS of daarin graag zou willen ontwikkelen. Je zal ontwikkelen aan een tof en complex zorgplatform en koppelingen maken met de NoSQL database. Ook het testen en documenteren van de ontwikkelde functionaliteiten behoort tot jouw

Bekijk vacature »

Java Developer

Java Developers opgelet! Bij Luminis zijn ze opzoek naar jou. Lees de vacature en solliciteer direct. Luminis is een software- en technologiebedrijf met meerdere vestigingen. Vanuit deze vestigingen werken 200 professionals aan technisch hoogwaardige oplossingen voor klanten zoals KLM, Nike en Bol.com. Ook ontwikkelt Luminis eigen oplossingen op het gebied van cloud, Internet of Things, data intelligence, e-sports en e-learning. Luminis onderscheidt zich door aantoonbaar voorop te lopen in technologie en innovatie. Luminis heeft drie kernpunten die verankerd zitten in alles wat we doen: het omarmen van nieuwe technologie, meesterschap en kennis delen. Functiebeschrijving First things first! Het is belangrijk

Bekijk vacature »

Low-Code Expert/Developer: Power Platform Speciali

Bedrijfsomschrijving Als Low-Code Expert/Developer bij ons innovatieve bedrijf, neem je een cruciale rol op je in de creatie, ondersteuning en implementatie van diverse oplossingen met behulp van het veelzijdige Power Platform. Dit platform omvat Power Apps, Power BI, Power Automate, Power Virtual Agent en Azure Logic Apps. Het Power Platform biedt je de mogelijkheid om klanten te voorzien van naadloze integraties door op maat gemaakte oplossingen te creëren die compatibel zijn met (bijna) alle bestaande software-infrastructuren. Dankzij het uitgebreide scala aan toepassingen, krijg je de kans om als architect en projectleider van je eigen oplossing te fungeren. Dompel jezelf onder

Bekijk vacature »

Senior Java Developer

Als Senior Java Developer bij Sogeti ben je onderdeel van onze toonaangevende community die bestaat uit ruim 100 gepassioneerde Java professionals. In teamverband lever je mooie prestaties. Daarmee draag je aan bij de meerwaarde die wij leveren aan onze top-opdrachtgevers. Geen werkdag is hetzelfde! Je bent voortdurend bezig met het oplossen van allerlei complexe vraagstukken binnen bedrijfs kritische systemen voor onze klanten in regio Noordoost zoals DUO, ING, CJIB en Tendernet. Natuurlijk krijg jij de mogelijkheid je verder te certificeren in dit vakgebied. We organiseren regelmatig technische Meetups en doen veel aan kennisdeling. Sogetisten hebben plezier in hun werk en

Bekijk vacature »

Gezocht: .Net ontwikkelaars met een maatschappelij

Bedrijfsomschrijving Zoek jij als medior .Net ontwikkelaar een inspirerende werkplek bij een bedrijf met maatschappelijk verantwoordelijkheidsgevoel? Dan is deze vacature je op het lijf geschreven. De organisatie bestaat ruim 20 jaar en ze ontwikkelen in house applicaties waarmee de zorgsector enorm mee gebaat is. Jouw applicaties worden gebruikt door duizenden gebruikers waardoor je echt een waardevolle bijdrage kan leveren aan de maatschappij. Het bedrijf is zeer innovatief en vindt een goede werk/privé balans belangrijk. Je krijgt alle mogelijkheden om jezelf verder te ontwikkelen, je werktijden in te delen en daarnaast is het ook mogelijk om deels thuis te werken. Het

Bekijk vacature »

Medior .NET developer

Functie Jij gaat als Medior .NET ontwikkelaar aan de slag in ons scrumteam met 6 developers die gepassioneerd en actief bezig zijn om onze spelers kwalitatieve en mooie spelervaringen aan te bieden. Als medior .NET developer ga jij werken aan een technisch hoogwaardig platform welke bezoekerspieken verwerkt van tienduizenden tot honderdduizenden gebruikers per minuut! Ons scrumteam werkt in drie wekelijkse sprints en wij beginnen iedere ochtend met een stand-up. Jij werkt bij ons met C# .NET, .NET Core, React.JS, Xamarin, Azure, Docker en Kubernetes. Wij hechten enorm veel waarde aan het leveren van hoogwaardige en kwalitatieve code. Zodra jij de

Bekijk vacature »

Front-end Developer

Dit ga je doen Je komt in een DevOps-cultuur te werken waarbij je met je team werkt aan de front-end van diverse brand websites; Het ontwerpen van functionele en grafische ontwerpen die worden geïmplementeerd; Draagt zorg voor het maken van analyses; Je werkt nauw met je collega’s samen en geeft elkaar feedback en suggesties waar nodig; Het uitwerken van vraagstukken die afkomstig zijn van verschillende klanten; Hier ga je werken Deze marktleider op gebied van fietsen en fietservaring is gevestigd in twee provincies, verspreid over meerdere locaties. Jij zult voornamelijk in regio Joure aan de slag gaan. De organisatie doelt

Bekijk vacature »

Front End Ontwikkelaar (React)

In het kort Als front end developer ga je aan de slag met maatwerkprojecten voor onze klanten. Denk bijvoorbeeld aan het toevoegen van een machine aan een database of het corrigeren van formulieren voor ingestuurde orders. Voorbeeld van zo’n project is Smart Link. De projecten waar je op ingezet kunt worden liggen binnen het technische domein waar jij als front end developer een grote rol speelt om samen met je back end collega’s de juiste oplossingen te leveren. please note that this particular role requires fluent Dutch language skills. Dit vind je leuk om te doen Het omzetten van designs

Bekijk vacature »

Ambitieuze Junior/Medior Low-code Developers gezoc

Bedrijfsomschrijving Transformeer bedrijven met jouw expertise in innovatieve technologie Ben je een bedreven softwareontwikkelaar met ervaring in Low-code platformen, of sta je te popelen om je in deze baanbrekende oplossing te verdiepen? Wij zijn op zoek naar jou! Ons klantenbestand groeit en we willen ons team uitbreiden met deskundige en leergierige Low-code specialisten. Is het jouw passie om organisaties te ondersteunen in hun digitale transformatie en maatwerkoplossingen te bieden met behulp van geavanceerde software? Wij zijn een vooruitstrevend bedrijf dat dagelijks werkt aan het oplossen van complexe vraagstukken om de digitale ambities van onze klanten te realiseren. Functieomschrijving Ontwikkel op

Bekijk vacature »

Laravel 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 »

Airport Developer / System engineer

De functie Als onze nieuwe Airport Developer / System Engineer is je doel om uit nieuwbouw- en onderhoudsprojecten maximale waarde te creëren voor Schiphol Group en haar stakeholders. Vanuit je visie en expertise, maar ook (technologische) ontwikkelingen, wetgeving en beleid vertaal je klantwensen naar een gedegen programma van eisen. In de planontwikkelingsfase werk je nauw samen met Plan Ontwikkelaars om je kennis in te brengen ten behoeve van de kwaliteit van het investeringsvoorstel. Je overlegt met diverse partijen, stelt de vraag achter de vraag en verbindt zo de belangen van de luchthaven, proceseigenaar en asseteigenaar om tot een gedragen ontwikkelopgave

Bekijk vacature »

C# .NET Backend Developer HBO Javascript

Samengevat: Deze werkgever is een professionele speler op gebied van IT en E-Commerce. Wil jij werken voor een e-commerce platform? Heb je ervaring met C#, Javascript en Scrum? Vaste baan: C# .NET Developer Backend E-Commerce 3.400 - 4.500 Backend Developer Wij ontwikkelen software voor E-Commerce toepassingen. Ons eigen Content Management systeem biedt een integrale oplossing met diverse ERP software. Onze systemen zijn vaak complex en omvangrijk en draaien bij grote organisaties. Maar ook kleine ondernemingen hebben steeds vaker behoefte aan een vlekkeloos werkende E-Commerce oplossing. Zij bieden een uitdagende werkomgeving met gezellige collega's. Je krijgt veel vrijheid en er is

Bekijk vacature »

Front end developer

Functie Binnen de functie van Front-end developer werk je mee aan uitdagende klantprojecten. In teamverband werk je aan de voorkant van onze state-of-the-art portaal oplossingen en apps. Dit alles gebeurt in een multidisciplinaire omgeving waarbij je de ruimte hebt om te sparren, je ideeën scherp te stellen, en waar je met de benodigde kennis en ervaring om je heen altijd terecht kunt bij je collega’s voor vragen en ondersteuning. Meestal werk je vanuit ons kantoor maar we bieden ook alle faciliteiten om thuis te kunnen werken. Voor sommige projecten ga je mee naar de klant, wellicht zelfs in het buitenland!

Bekijk vacature »

Software ontwikkelaar ASP .Net / C#

Functie omschrijving Gezocht! Software ontwikkelaar. Ben jij bekend met termen als ASP .Net, C# en SQL? Ben jij op zoek naar een afwisselende en uitdagende IT-functie binnen de agrarische sector? En omschrijf jij jezelf als zelfstandig, enthousiast en proactief? Dan hebben wij de perfecte functie voor jou! Als Software ontwikkelaar binnen deze organisatie ben je samen met één andere collega verantwoordelijk voor de ontwikkeling en modificatie van het support en controle programma dat binnen dit bedrijf gebruikt wordt. Je gaat hierbij bijdragen aan de vertaling van klantwensen naar effectieve softwareoplossingen. Verder bestaan je werkzaamheden uit: Technische uitwerking van de business

Bekijk vacature »
Koen Bokern

Koen Bokern

18/12/2007 15:22:00
Quote Anchor link
Hallo,

Ik ben bezig met een database met foto's functioneel te maken. Elke foto behoort tot een of meerdere mediums. Zijn er meerdere mediums, worden deze met comma's geschijden. Maar omdat ik een groep foto's op medium selecteer, ziet hij het niet als twee aparte mediums, maar als een hele. Wat uitleg:

Zo staat het ongeveer in de database:
ID IMAGE MEDIUM
1 img01 beeld
2 img02 object
3 img03 object, lettertype

1) Alle items (in dit geval mediums als beeld, object etc) worden weergeven.
SELECT DISTINCT * FROM `sheet1`

2) Gast kiest medium. Bijvoorbeeld `beeld`
<a href="/medium/Beeld/">beeld</a>

3) Alle items waarvan het medium `beeld` is worden weergeven
SELECT * FROM `sheet1` WHERE `medium` = 'beeld'

4) In de database is maar een MEDIUM `beeld`, dus is er maar één foto. Gast klikt op 1.
<a href="/medium/Beeld/1/">1</a>

5) Image wordt weergeven: beeld >> 1, dus wordt het img01
SELECT * FROM `sheet1` WHERE `medium` = 'beeld' AND `id` = '1'

Maar nu moeten er soms meerdere mediums in één veld komen, geschijden met een comma.
Bijvoorbeeld de foto `img03` behoort tot object, en tot lettertype. Dus bij deze query:
SELECT * FROM `sheet1` WHERE `medium` = 'oject'
moet een hyperlink naar `img02` en `img03` worden weergeven.

Zelf dacht ik om in een while alle zonder comma in een array te stoppen, en met comma eerst te splitsen, en dan pas in het array te stoppen. Vervolgens array_unique() toe te passen. Dan de array uitlezen en de resultaten weergeven. Maar is er niet een betere oplossing hiervoor?

Het gaat om deze >> http://annakrylova.nl/medium/

Ik kom er alleen even niet uit.

Groet Koen
 
PHP hulp

PHP hulp

22/12/2024 20:29:10
 
Bo az

Bo az

18/12/2007 15:30:00
Quote Anchor link
Quote:
Zijn er meerdere mediums, worden deze met comma's geschijden.

Daar gaan we...
Een database is er voor om gegevens gescheiden op te slaan.

Je zal die structuur dus moeten aanpassen naar iets als:
tabel image:
- id
- image
tabel medium:
- id
- medium
tabel imagemedium:
- image_id
- medium_id

En vervolgens kan je met joins gaan selecteren.
Gewijzigd op 01/01/1970 01:00:00 door Bo az
 
Koen Bokern

Koen Bokern

18/12/2007 16:13:00
Quote Anchor link
oke, ik snap waar je op doelt. Maar de rede ervan dat de boel met comma's wordt gescheiden, is dat men niet twee keer dezelfde image hoeft in te voeren.
Wat ik kan doen is de boel apart opslaan, maar bij het aanpassen de boel samen voegen.

Hier kan men de boel aanpassen:
http://annakrylova.nl/weergeven/ ( voor aanpassen moet je ingelogd zijn)

Zelf heb ik het namelijk ook liever apart, alleen voor het beheer is het scheiden met comma's makkelijker.
 
Frank -

Frank -

18/12/2007 16:42:00
Quote Anchor link
vlerknozem schreef op 18.12.2007 16:13:
oke, ik snap waar je op doelt. Maar de rede ervan dat de boel met comma's wordt gescheiden, is dat men niet twee keer dezelfde image hoeft in te voeren.
Wat ik kan doen is de boel apart opslaan, maar bij het aanpassen de boel samen voegen.

Hier kan men de boel aanpassen:
http://annakrylova.nl/weergeven/ ( voor aanpassen moet je ingelogd zijn)

Zelf heb ik het namelijk ook liever apart, alleen voor het beheer is het scheiden met comma's makkelijker.
Komma's zijn niet makkelijker, de boel komma-gescheiden opslaan maakt de boel zeker een factor 1000 moeilijker. Dhr. Codd mag je beschouwen als een genie en hij heeft uitgevonden dat komma-gescheiden opslaan een slecht plan is. Totdat je het tegendeel kunt bewijzen, geloof ik hem op zijn woord.

Kortom, ga normaliseren en een goede database aanmaken.
 
Bo az

Bo az

18/12/2007 16:48:00
Quote Anchor link
Ook in de opzet die ik je ga hoef je een image niet 2x op te geven, je image heeft daarna een id en die mag je aan zoveel verschillende media hangen als je zelf wil.
 
Robert Deiman

Robert Deiman

18/12/2007 16:51:00
Quote Anchor link
@vlerknozem

En voor de administratie, ik neem aan dat je een dropdown hebt, waaruit je kan kiezen of iets een beeld, object, lettertype is. Met een simpel scriptje kan je met 1 druk op de knop nog een selectbox toevoegen, waaruit je dan bijvoorbeeld het 2e medium hebt.
Nog mooier is de "multiple selectbox" waaruit je met een ctrl+click meerdere willekeurige items kan selecteren.

Als ik jou was zou ik daar eens naar gaan kijken. Dat werkt net zo gemakkelijk als wat jij zegt, maar ik veel controleerbaarder en werkt uiteindelijk ook nog eens eenvoudiger.

Door het goed normaliseren van je database zal je merken dat het uiteindelijk allemaal veel eenvoudiger werkt. En groot voordeel: De kans op fouten in je database is kleiner geworden.

Edit:

En bij zo'n multiple select kan je prima met je genormaliseerde database werken (zoals Boaz je al een goed voorzet gaf!), eigenlijk zitten er vooral voordelen aan, behalve dat je even wat ingewikkelder moet denken misschien (voor je gevoel)
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
 
Koen Bokern

Koen Bokern

18/12/2007 17:14:00
Quote Anchor link
Ok dan :)

Ik werk niet met een selectbox, kan ik eventueel wel doen.

Idee:
Bij de administratie zet de gebruiker:
- MEDIUM `beeld,lettertype`
- IMAGE `img01.jpg`

Nu zoek ik het id van de IMAGE op, dat is bijvoorbeeld 44. Ik split het MEDIUM, en neem de juiste ids. `beeld` krijgt 32 en `lettertype` krijgt `11`.
Dan twee inserts met deze data:

tabel imagemedium:
- image_id = 44
- medium_id = 32
tabel imagemedium:
- image_id = 44
- medium_id = 11

Daarmee selecteer ik de bijbehorende image. Uiteraard moet ik hiervoor een JOIN gebruiken. Selecteer ik een medium selecteer ik het op medium_id. Dus de url /medium/beeld/ wordt dan ook /medium/32/. Voor de administratie selecteer ik voor `medium` weer op image_id, en zet de verschillende mediums weer samen met comma's.

Ik denk dat ik het zo goed begrepen heb.

Ik heb wijnig ervaring met JOIN. Misschien kunnen jullie me daarbij op weg helpen? Ik ben jullie zeer dankbaar :)
 
Robert Deiman

Robert Deiman

18/12/2007 17:17:00
Quote Anchor link
Omdat we de beroerdste niet zijn :)

Klik

Maar hoezo weer samen zetten met comma's? Dat is nooit nodig..
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
 
Koen Bokern

Koen Bokern

19/12/2007 20:33:00
Quote Anchor link
Ziet dit er goed uit?

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
<?php
$get
['resource'] = mysql_query("SELECT    
    c.image_id, c.medium_id, c.infodata_id,
    m.id, m.medium,
    i.id, i.image,    
    d.id, d.titel, d.discipline, d.datum, d.materiaal, d.maatmm, d.oplage, d.opdrachtgever, d.favorite, d.kleur, d.groep, d.publicatie
FROM    
    connections AS c
LEFT JOIN
    image as i
ON
    i.id = c.image_id
INNER JOIN
    infodata as d
ON
    d.id = c.infodata_id
RIGHT JOIN
    medium as m
ON
    m.id = c.medium_id
LIMIT
    "
. $start .", ".$entries) or die ( mysql_error());
?>


Geef me als het niet echt slim is, maar een tik op de vinger hoor :) Maar het werkt in ieder geval we

Edit
Nee hij doet het toch verkeerd!

Situatie:
- Tabel connections is leeg
- Tabel image is leeg
- Tabel mediun is gevuld
- Tabel infodata is leeg.

De query moet kijken naar wat in connections staat. Uit de andere tabellen mag dus enkel de data worden gehaald die overeen komen met de connecties. Als deze tabel connecties dus leeg is, zouden er toch geen mediums mogen verschijnen? Toch worden alle mediums uit de tabel medium gehaald.
Gewijzigd op 01/01/1970 01:00:00 door Koen Bokern
 
Koen Bokern

Koen Bokern

19/12/2007 22:18:00
Quote Anchor link
Oke, het werkt nu beter. Ik heb LEFT en RIGHT veranderd naar INNER.

Echter nu het volgende:

In de vorige database stond bij `medium` bijvoorbeeld 'object, drukken'.
Nu heb ik in plaats van scheiden met comma's, twee connecties gemaakt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
+-----------+-----------+-------------+
|  image_id | medium_id | infodata_id |
+-----------+-------------+-----------+
|    48     |    4      |     48      |
+-----------+-----------+-------------+
|    48     |    5      |     48      |
+-----------+-----------+-------------+


Dit werkt. Alleen omdat er twee connecties zijn, zal zit bij de adminpagina ook zo zijn, terwijl ik eigenlijk maar één keer dezelfde image wil weergeven, met de bijbehorende data. Nu komt het er dus op neer dat je één image ook vaker in de database moet zettten, wat ik dus wil voorkomen.

Ik zou natuurlijk bij de while lus een geschiedenis kunnen bijhouden door de mediums die zijn geweest in een array te zetten. En iedere keer controleren of hij niet toevallig is geweest. Als hij al is geweest de key ervan opzoeken, en de twee medium erbij plakken. Vervolgens die array uitlezen en de data weergeven, maar ik denk zelf dat dit gekkenwerk is.

Is er misschien een betere (mogelijke) oplossing dan wat ik hierboven vertel?
Alvast bedankt :)

Edit:
Overigens sorry voor de bump bedenk ik me net. Maar anders werd het ook erg veel voor een bericht.
Gewijzigd op 01/01/1970 01:00:00 door Koen Bokern
 
Joren de Wit

Joren de Wit

19/12/2007 22:30:00
Quote Anchor link
Als je enkel de afbeelding nodig hebt, zou je een DISCTINCT kunnen gebruiken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT DISTINCT(image_id) FROM connections

Als echter ook de verschillende mediums nodig hebt, zul je inderdaad zoals je zelf al zegt een geschiedenis in de while loop bij moeten houden.
 
Koen Bokern

Koen Bokern

19/12/2007 22:36:00
Quote Anchor link
Dan ga ik dat maar doen. Als iemand anders een betere oplossing heeft, is het daarvoor nooit te laat.
Gewijzigd op 01/01/1970 01:00:00 door Koen Bokern
 
Joren de Wit

Joren de Wit

19/12/2007 22:38:00
Quote Anchor link
Quote:
Nu ik dit schrijf heb ik 59 posts. Maar als ik op 'Plaats bericht' klik, heb ik nog steeds 59 posts. Hoe wordt dat aantal eigenlijk berekend?
Zodra jij op 'plaats bericht' drukt wordt je postaantal in de database geupdate. Maar voor de pagina die getoond wordt, wordt nog wel de oude waarde uitgelezen.

Pas zodra de pagina weer refreshed, is je postaantal geupdate. Nu sta je immers op 60...
 
Koen Bokern

Koen Bokern

19/12/2007 23:42:00
Quote Anchor link
Nee dat had ik al gemerkt :) En ik heb het daarom ook weggehaald. Maar het leek net even alsof het gewoon bleef staan, ik had in mijn achterhoofd ook dat het al eerdere 59 was.. Stom.

Maar weer ontopic nu.

Nu wordt het goed aangepast. Nu alleen nog even enkele tabellen legen, en de data nog een keer juist overzetten. Dan ben ik alweer een heel stuk verder.

Bedankt mensen.
 



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.