Mysql query probleem

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software Developer

Dit ga je doen Je bent verantwoordelijk voor de warehouse applicatie die een integratie heeft met de PLC laag; Je ontwikkelt in C#/.Net; Je werkt mee aan de migratie naar .NET 6; Je bent verantwoordelijk voor het ontwikkelen van interfaces en het visualiseren van componenten; Je denkt mee over het design voor business oplossingen; Je bent verantwoordelijk voor het testen van de gebouwde oplossing. Hier ga je werken Voor een internationale organisatie in de transport zijn wij momenteel op zoek naar een Software Developer. Zij zijn wereldwijd de grootste speler en lopen voorop met het automatiseren van alle processen van

Bekijk vacature »

Junior PHP ontwikkelaar

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 »

Senior Fullstack Developer (GOLang, TypeScript)

Bedrijfsomschrijving Our client is one of the large worldwide accounting firms. Functieomschrijving We are looking for a senior (all-round) developer (Project On Demand / Tax Technology) Uses as much as possible technology in support of the development process: Git, Jenkins, Docker, npm, skaffold, helm, etc. We are looking for a real hands-on developer; ie not a team lead or other managerial-style role; Acts with integrity both internally and externally and takes personal responsibility in this respect; Curious about the developments within their field and driven to make a difference with the team; Able to empathize with colleagues and stakeholders and

Bekijk vacature »

Front-end developer

Functie Als front-end developer kom je te werken in een team van 30 gedetacheerde, en het team is momenteel flink aan het groeien. Je hebt ervaring met het bouwen van complexe bedrijfsapplicaties waar je gebruik maakt van de nieuwste technologieën waarmee jij elke klant omver blaast. Het gaat om uitdagende projecten met een gemiddelde doorlooptijd van 2 jaar. Hierdoor heb jij echt de volledige focus op een project en kun je flinke impact maken. Het team zit boordevol met ervaren developers die samen dezelfde ambitie delen. Aan de hand van opleidingen en trainingen kun je certificaten halen in jouw expertise

Bekijk vacature »

Junior .NET Software Developer

Dit ga je doen Software development met behulp van C# .NET en / of PHP, je mag zelf kiezen waar jij je in wil specialiseren Meedenken over het nieuwe pakket, waar moet het aan voldoen? Unit-, integratie- en diverse andere tests schrijven en uitvoeren Nauw samenwerken met je IT collega's zoals Testers, Developers, DevOps Specialisten en Architecten Jezelf ontwikkelen met behulp van trainingen en cursussen Hier ga je werken Onze klant, een grote speler in de medische sector, is op zoek naar een enthousiaste junior (of meer ervaren) Software Developer die klaar is voor een nieuwe stap in zijn of

Bekijk vacature »

High level C++ QT Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 13486 Introductie Would you like to be involved in every aspect of software development for our exceptional products, from specification and design to testing and integration? If you're passionate about software development and eager to apply your programming skills to create customer-focused deliverables, then this is the perfect chance for you to expand your expertise. You can become a member of our Machine Control department's data-driven development team, where you'll design and build software solutions that optimize machine productivity. As a senior software design engineer, you'll participate in all phases

Bekijk vacature »

Front-end Developer - Juniorfunctie

Functie omschrijving Ben jij op zoek naar een uitdagende baan als front-end developer, in een informele werksfeer, waar jij echt het verschil kan maken? Wil jij graag werken voor een bedrijf dat sportiviteit en een open communicatie, hoog in het vaandel heeft staan? Dan hebben wij de perfecte vacature voor je! Voor een klein bedrijf in Rijen dat gespecialiseerd is in het omzetten van digitale woningtekeningen naar managementinformatie, zijn wij per direct op zoek naar een allround front-end developer. Jouw werkzaamheden zien er als volgt uit: Ja gaat nauw samenwerken met de back-end developer. De database structuur is volledig gebouwd

Bekijk vacature »

Senior Java developer

Als Senior Developer bij Sogeti ben je onderdeel van onze toonaangevende best-gecertificeerde Java community. Deze bestaat uit ruim 100 gepassioneerde 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 bedrijfskritische systemen. Een voorbeeld hiervan is een cliënt-volgsysteem bij Reclassering Nederland. Andere klanten waar wij onder andere voor werken: KPN, Philips, Nationale-Nederlanden, Kamer van Koophandel, ABN AMRO, Bovemij, Aval en de Nationale Politie. Natuurlijk krijg jij de mogelijkheid je verder te certificeren in dit vakgebied. We

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 »

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 »

Senior .NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

Bekijk vacature »

Lead Fullstack developer

Functie omschrijving Ben jij een leergierige en ambitieuze junior developer met technische skills? Ben jij op zoek naar een werkgever die jouw de volledige vrijheid geeft om jezelf tot een volwaardige senior te ontwikkelen? Wij zijn op zoek naar een full stack developer die zich bezig wil bezig houden met het uitbreiden en verbeteren van de online webshop. Een onderdeel van jouw werkzaamheden is naast het beheren van de webshop ook om de processen en structuren te stroomlijnen. Werkzaamheden Onderhouden van de webshop (denk aan het bijhouden van de voorraad); Nieuwe functies toevoegen aan de product configurator door middel van

Bekijk vacature »

Senior Software developer PHP

Functie Jij als senior PHP ontwikkelaar komt te werken in 1 van onze SCRUM teams. Momenteel werken er zo’n 30 developers binnen onze organisatie Jij gaat de brug zijn tussen het bouwen van verschillende functionaliteiten binnen onze applicaties en deze vervolgens te integreren in onze centrale hub. Je start je dag om 9 uur met een stand up en dan pak je je taken op voor de dag. Een greep van jouw taken zijn: – Het bedenken en uitbouwen van features binnen de verschillende applicaties – Onderhouden van CI/CD pipelines – Bezighouden met Security & Privacy Eisen • Minimaal 4

Bekijk vacature »

Junior/medior PHP developer Onderwijssector

Functie Momenteel zijn ze op zoek naar een developer die, veelal fullstack, mee gaat werken aan de ontwikkeling van de producten en zo helpt aan de uitvoering van hun ontwikkelprojecten. Je komt te werken binnen hun development team bestaande uit 6 ontwikkelaars. Ze staan zowel open voor meer junior als medior/senior developers. Je kunt snel veel verantwoordelijkheid krijgen en doorgroeien binnen het bedrijf. Bovendien ben je betrokken bij het bepalen van de product roadmap en de inbreng van (nieuwe) technologieën. De applicaties waaraan je werk worden gebruikt op onderwijsinstellingen door heel Nederland. De tech-stack bestaat voornamelijk uit Laravel (PHP), Vue.js

Bekijk vacature »

.NET Developer te Naarden

Bedrijfsomschrijving Voor mijn klant ben ik op zoek naar een .NET Developer om het huidige team te komen versterken. Deze organisatie bevindt zich in de logistieke sector, en zij hebben een eigen ERP systeem ontwikkeld dat zij inzetten ter optimalisatie van de logistieke processen van haar eindklanten. Deze organisatie bestaat inmiddels al ruim 20 jaar, waarbij zij een duidelijke missie hebben, namelijk: het werk van de eindklant makkelijker maken door de systemen die zij leveren. Ze werken over heel de wereld, wat deze organisatie een echte internationale speler maakt. Binnen de organisatie kenmerken ze zich door een dynamische en professionele

Bekijk vacature »

Pagina: « vorige 1 2

Brecht S

Brecht S

13/01/2015 20:55:26
Quote Anchor link
En kan ik die dan JOINEN? Of zie ik dat hier verkeerd en is dat niet meer nodig? Ik heb geen idee hoe je dit zou aanpakken.
 
PHP hulp

PHP hulp

04/05/2024 12:37:23
 
Jan de Laet

Jan de Laet

13/01/2015 20:58:17
Quote Anchor link
@Brecht, als je nu dan vertelt wat je wilt als er meer projecten of taken zijn... dan kunnen we je misschien helpen.

Je zei dat je taak_id nodig had, dus dan heb je ook meerdere records nodig lijkt me.
 
Brecht S

Brecht S

13/01/2015 21:11:50
Quote Anchor link
Wat ik zie is dat er maar 2 personen meerdere keren voorkomen en die hebben toevallig ook een project met meerdere taken onder. Dus daar gaat precies iets verkeerd. Diegene die geen projecten (of taken) hebben komen maar 1 keer voor wat dus juist is en dat zijn de overige in de lijst.

Als er meerdere projecten of projecttaken zijn mag die persoon maar 1 keer verschijnen want er is bvb maar 1 todo aan gekoppeld. Voor alle duidelijkheid: we spreken hier over taken maar dit zijn projecttaken. In het overzicht dat ik wil maken gaat het hier enkel over todo's voor bepaalde personen ( en die hangen vast aan contacten ). Dat ik hier een mix moet hebben met projecten en projecttaken heeft hier eigenlijk rechtstreeks niks mee te zien. Dit is alleen omdat ik die taak_id nodig heb om de taak later te kunnen aanpassen vanuit die overzichtlijst.
Gewijzigd op 13/01/2015 21:19:13 door Brecht S
 
Jan de Laet

Jan de Laet

13/01/2015 21:20:06
Quote Anchor link
Degene die geen projecten of taken hebben komen inderdaad maar 1 keer voor, maar hebben dan geen taak_id. (taak_id heeft waarde NULL).

Van diegene die meerdere projecten en/of taken hebben zie je meer taak_ids in de overzichtslijst.
Welke van die taak_ids moet er dan getoond worden? Is er nog een extra conditie die je toe kunt passen om er maar 1 te zien?
Gewijzigd op 13/01/2015 21:20:48 door Jan de Laet
 
Brecht S

Brecht S

13/01/2015 21:26:31
Quote Anchor link
Ik zal proberen al mijn uitleg hier eens opnieuw van in het begin te verduidelijken want denk dat jullie niet meer mee zijn. Het is ook een heel complex iets.

Ik heb een pagina genaamd 'historiek'. Hier kan je een type kiezen: notitie, todo of taak. Afhankelijk van wat je kiest krijg je andere velden te zien.

In het geval het een notitie is komt die in een lijst te staan die alle callcenters kunnen zien om meer te weten te komen over die prospect/klant. Dus eigenlijk een echte historiek/logboek.

In het geval het een todo is moet die op een andere pagina 'activiteiten' verschijnen (en daar gaat het hier over). Hier hebben we een lijst met alle items die als todo zijn opgegeven met telkens een actiedatum waarop die in de lijst moet verschijnen.

In het geval het een taak is moet die op de pagina 'activiteiten' in de lijst verschijnen. Ook hier is de actiedatum de datum van verschijning. Maar ook moet die op een andere pagina 'projecten' verschijnen onder een project die hangt aan die klant.

Indien dus een taak is opgegeven als type in die pagina historiek verschijnt er ook een knopje bij waar je kan op klikken om naar de aanpaspagina te gaan van die taak. Vandaar heb ik die taak_id nodig.

Misschien is deze uitleg beter?

Toevoeging op 13/01/2015 21:30:37:

@Jan: inderdaad, van diegenen die meerdere projecten/taken hebben zie je ze ook meerdere keren verschijnen. Het gaat hier enkel over de taak_id die als historiek item is opgemaakt met als type 'taak'. In de meeste gevallen zal dit maar 1 taak_id zijn. Misschien is hier nog een extra iets nodig dat ik check of type = taak bij de historiek (met h.type = 'taak') en zo de bijhorende id krijg en dit dus ook de enige is die verschijnt?
Gewijzigd op 13/01/2015 21:39:15 door Brecht S
 
Jan de Laet

Jan de Laet

13/01/2015 22:38:09
Quote Anchor link
Na je uitleg begrijp ik de relatie tussen historiek en projecten / taken nog niet helemaal.
- Type 'notitie' hebben geen relatie naar projecten en taken
- Type 'todo' heeft activiteit, maar het is mij niet duidelijk of hier relatie is met projecten / taken (hoe koppel je een todo aan een project en aan een taak?)
- Type 'taak' heeft ook activiteit, ook hier de vraag: wat is de relatie.

Projecten lijken alleen aan een contact te hangen (contact_id), of is er ook nog relatie met historiek?

Kun je bij de JOIN naar taken bij de ON toevoegen AND h.type=t.type? Zijn type in historiek en taken ook 'todo' of 'taak'?
 
Brecht S

Brecht S

14/01/2015 21:53:02
Quote Anchor link
- Type notitie heeft inderdaad geen relatie naar projecten en taken.
- Type todo heeft ook geen relatie met projecten/taken. Is enkel maar om in de overzichtlijst te laten verschijnen van de activiteiten of agendapunten die iemand moet doen op een bepaalde dag. Je kan het best met een agenda vergelijken met todo's in.
- Type taak is dan ook de enige die wel iets met projecten/taken te maken heeft. Die komen als 'agendapunt' in de activiteitenlijst naar boven op de actiedatum en moeten ook als todo 'afgewerkt' worden.
De relatie tussen de historiek en de taken zit hem in het type. Dus je redenering van h.type = t.type in een AND toe te voegen aan de ON bij taken lost mijn probleem hier op. Ik krijg nu de juiste lijst te zien die ik nodig had.

Projecten of (project)taken hangen inderdaad enkel maar aan contacten en (project)taken zitten ook altijd onder een project. De enige relatie die het heeft met historiek is het type omdat je dus ook een projecttaak kan maken vanuit die historiek door het type op 'taak' te zetten daar. Uiteraard moet je dan ook een project selecteren, maar dit was al opgelost.

Mijn nieuwe query is nu:
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
SELECT
   h.actiedatum,
   h.contact_id,
   h.historiek,
   h.id as hid,
   h.type as htype,
   c.bedrijfsnaam,
   c.voornaam,
   c.achternaam,
   t.id as tid
FROM
   historiek h
JOIN
   contacten c
ON
   h.contact_id = c.id
LEFT OUTER JOIN
   projecten p
ON
   p.contact_id = c.id
LEFT OUTER JOIN
   taken t
ON
   t.project_id = p.id AND h.type = t.type
WHERE
   h.actiedatum <= CURRENT_DATE AND h.afgewerkt <> 'ja' AND h.actiedatum <> '0000-00-00'


Als ik nu $row['tid'] wil oproepen, blijft die leeg. Hoe zou dat komen?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

14/01/2015 22:28:51
Quote Anchor link
Wie weet.
 
Brecht S

Brecht S

14/01/2015 23:15:46
Quote Anchor link
Aan dat antwoord heb ik wel niet veel hé, Ger...
 
Jan de Laet

Jan de Laet

15/01/2015 08:29:49
Quote Anchor link
tid krijgt alleen een waarde als:
- het contact een project heeft en
- project een taak heeft en
- type uit historiek en taak gelijk zijn aan elkaar.

Voor de meeste rijen kun je dus een lege tid krijgen.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

15/01/2015 11:03:10
Quote Anchor link
Het punt is dat hier een poging gedaan wordt om twee totaal verschillende queries in één query te gieten.
Dat kan wel maar het gevolg daarvan is dat je soort van cross join krijgt.
Stel dat contact 1 in de historiektabel x entries heeft en in de takentabel y entries, dan is het (logische) gevolg van de join x*y records.

Een relatie op een niet sleutel kolom is geen relatie (hooguit een one-night stand), je weet in de historiek tabel alleen dat het een taak is, maar niet welke taak.
Daardoor kan je wel de recordset verkleinen, maar blijf je nog steeds alle taken gekoppeld krijgen aan een record van het type "taak" in de historiektabel.

Conclusie: historiek en taken moeten in relatietherapie of je moet in PHP omgaan met de meerdere records.
 
Brecht S

Brecht S

15/01/2015 11:22:54
Quote Anchor link
@ Ger: Denk dat dit nu aan het gebeuren is, inderdaad. Ik had iets over het hoofd gezien gisteren. Het is zo dat indien h.type = t.type en er hangt een taak/taken (projectentaken) of een project/projecten aan dat contact (wat altijd zo zal zijn) dat ik dubbels krijg op dat contact en wel zoveel als er projecttaken zijn voor dat contact (op die moment werkt tid wel).
Kan je dat niet oplossen met een GROUP BY of ORDER BY? Wat zou hier de meest goede oplossing voor zijn. Kan je eens een duidelijk voorbeeld geven waarmee ik aan de slag kan?

Toevoeging op 15/01/2015 11:25:00:

Ger van Steenderen op 15/01/2015 11:03:10:
je weet in de historiek tabel alleen dat het een taak is, maar niet welke taak.

Denk dat hier momenteel het probleem zit...
Gewijzigd op 15/01/2015 11:28:43 door Brecht S
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

15/01/2015 12:01:32
Quote Anchor link
Dus toch relatietherapie, de therapeut is dan een extra tabel:
historiek_taken
- historiek_id (PK)
- taak_id

Op het moment dat je een historiek hebt op een bepaalde taak, sla je de beide id's op in de historiek_taken tabel.

De relatie tussen historiek en historiek_taken is dan 1 - 1/0, en dan doet het bijbehorende project niet meer terzake:
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
SELECT
   h.actiedatum,
   h.contact_id,
   h.historiek,
   h.id as hid,
   h.type as htype,
   c.bedrijfsnaam,
   c.voornaam,
   c.achternaam,
   t.id as tid
FROM
   historiek h
JOIN
   contacten c
ON
   h.contact_id = c.id
LEFT JOIN
   historiek_taken ht
ON
   h.id = ht.historiek_id
LEFT JOIN
   taken t
ON
   ht.taak_id = t.id
WHERE
   h.actiedatum <= CURRENT_DATE AND h.afgewerkt <> 'ja' AND h.actiedatum <> '0000-00-00'
Gewijzigd op 15/01/2015 12:04:09 door Ger van Steenderen
 
Brecht S

Brecht S

15/01/2015 13:46:46
Quote Anchor link
Schitterend Ger... Denk dat het is gelukt op jouw manier. Maar moet nog een paar testen uitvoeren om zeker te zijn. Op het eerste zicht lijkt het prima! Thanks!
 

Pagina: « vorige 1 2



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.