Array uitlezen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Webdeveloper

Locatie OSPEL Functieomschrijving VACATURE WEB DEVELOPER (JUNIOR/MEDIOR) 24-40 UUR PER DIRECT SALARIS IN OVERLEG LANGERE TIJD DOORGROEIMOGELIJKHEDEN OSPEL Houd je van ICT-vraagstukken en wil je graag online portalen voor de producten ontwikkelen? Je werkt hierbij nauw samen met de marketing- en salesafdeling. Communicatief ben je sterk en goed in staat om commerciële processen te vertalen naar digitale oplossingen. Ben je nieuwsgierig en sterk analytisch? Dan is deze vacature misschien wel wat voor jou! HET BEDRIJF Het bedrijf is al 25 jaar leverancier van kwalitatief hoogwaardige meststoffen. Ze staan voor kwaliteit, en dat merken hun klanten ook. Ze verkopen hun producten

Bekijk vacature »

Application engineer

Do you have at least 3 years of experience in engineering or computer science? Then you may be interested in the position of: Application engineer located in our EMEA headquarters in ‘s-Hertogenbosch About the position: Includes the following essential duties and responsibilities (other duties may also be assigned): Responsible for technical services and work directly with customers resolving technical issues including server systems, PC systems and computer peripherals. Identifying technical issues and resolve computer hardware & software problems. Establish and maintain lines of communication with sales team to discuss services and technical issues. Travel with sales to customer sites to

Bekijk vacature »

Senior ICT Consultant / SQL Ontwikkelaar

Functieomschrijving SQL / database ontwikkelaar / consultant De requirements in kaart brengen van de klant Het analyseren en ontwerpen maken de bedrijfsprocessen van de klant Het maken van functioneel ontwerp Het ontwikkelteam aansturen De database ontwikkelen en onderhouden Queries schrijven en inrichten Tabellen maken in SQL Programmeren in lowcode Het testen en uitleveren van nieuwe functionaliteiten naar de acceptatie en productieomgeving Het bieden van customer support Functie-eisen HBO werk en/of denkniveau, opgedaan door ervaring of opleiding is een eis; Ruime ervaring met SQL (tabellen maken / stored procedures / inrichten) is een eis;Zowel Nederlands als Engels spreken en schrijven; Kennis

Bekijk vacature »

.NET Developer / C# / API's / webservices / Micros

Functieomschrijving Wil jij als .NET Developer bij deze organisatie in Amsterdam als kartrekker in een Scrum team fungeren en je helemaal uitleven in de backend met C#? Krijg jij een grote kick van veel verantwoordelijk en mogelijkheden in een .NET backend? Vindt jij het leuk requirements op te halen bij de business en deze te vertalen in concrete oplossingen? Dan past deze functie jou perfect! Als developer nieuwe gave features implementeren; Werken met technieken als C# .NET en (REST) API's webservices; Ontwikkelen van koppelingen middels API's; Maken van technische keuzes en beslissingen over de architectuur; Junior collega's coachen; Initiatief nemen

Bekijk vacature »

Software Developer / industriële automatiseri

Functieomschrijving Heb jij ervaring als Software Developer en werk jij graag aan software, gericht op machine besturing? Is C# jouw zeer bekend en werk jij graag in een informeel bedrijf met een platte structuur? Dan zijn wij op zoek naar jou voor een organisatie in regio Eindhoven! Je werkt als Software Developer aan industriële software / software gericht op machine besturing en maakt gebruik van C# en C; Je denkt mee over de architectuur en het design; Je weet requirements te vertalen naar de technische oplossing; Je onderzoekt issues en lost storingen op waar nodig; Je denkt mee over de

Bekijk vacature »

PHP Developer op de groei Innovatie Creativiteit

Functieomschrijving Ben jij een PHP Developer die zich nog wilt ontwikkelen? Ben jij innovatief, leergierig en wil je graag groeien? Sta jij te springen om de nieuwste tools en technieken toe te passen in jouw werk? Reageer nu en kom alles te weten! Software ontwikkelen met behulp van PHP; Werken aan verbetering van traditionele en nieuwe SaaS-producten Ontwikkelen van nieuwe functionaliteiten volgens SCRUM; Deelnemen aan verschillende development projecten; Maken van een technisch ontwerp; Meedenken over de architectuur. Functie-eisen Hbo-denkniveau; Minimaal 2 jaar relevante werkervaring; Creatief en innoverend; Ervaring met SCRUM is een pré; Een mooie schone code schrijven, dat geeft

Bekijk vacature »

Java Custom Software Developer

Jouw rol Als Java developer houd jij van uitdagende maatwerk oplossingen. Het liefste bouw je aan aan complexe en grootschalige oplossingen. Laatst zag je bijvoorbeeld nog een slimme oplossing voorbij komen die je graag zou willen uitwerken. Moet je daarvoor nieuwe technologie leren kennen, dan school jij jezelf bij. Soms moet je je collega's en de klant overtuigen om jouw idee te omarmen. Als jij dan het door jou aangebrachte idee ziet draaien dan kijk jij er alweer naar uit om de volgende oplossing te bouwen. Plaats in de organisatie Binnen onze Custom Software Development practice (CSD) werken we gezamenlijk

Bekijk vacature »

C# Developer

De uitgebreide versie Jij hebt ruim twee jaar ervaring als developer. Nu wil je graag je tanden zetten in nog complexere projecten. Samen met je team bereik je nieuwe hoogtes en zelfstandig maak je meters. Je hebt behoefte aan collegae die jou alles leren op het gebied van technologie maar wilt tegelijkertijd ook graag je eigen opgedane kennis delen. Alles wat vandaag nog onbekend is, moet je morgen toepassen in de volgende uitdaging en dàt is wat jou scherp houdt. Je hebt geen zin in een 60-urige werkweek maar haalt wel plezier uit zo nu en dan een technische meeting,

Bekijk vacature »

Cloud Software Developer

Als Cloud Software Developer ga je aan de slag met onze SaaS-dienst Zorgplatform. Voor de ontwikkeling hiervan gebruiken wij Microsoft technologie. Zie jij dit als een uitdaging? Lees dan verder! Jouw baan Als Cloud Software Developer ga je werken aan ons Zorgplatform. Dit is een veilige service die uitgebreide ondersteuning biedt voor transmurale samenwerking. Wij ontwikkelen dit in C# in een ASP.NET Core framework. Je gaat aan de slag met het opzetten van microservices voor de verschillende processen die Zorgplatform ondersteunt. Je maakt bijvoorbeeld de integratie voor het inkijken van het medisch dossier mogelijk aan de hand van toelatingen, geregistreerd

Bekijk vacature »

Informatieanalist

Hou je van analyseren, structureren, specificeren en problemen oplossen en vraag je door tot je het begrijpt? Kan jij complexe processen eenvoudig en helder beschrijven? Ben je daarnaast nieuwsgierig naar de ontwikkelingen van de digitale bibliotheek? Dan ben jij misschien wel de Informatieanalist waarnaar we op zoek zijn. Wat ga je bij ons doen? Als Informatieanalist maak je onderdeel uit van een team van vier informatieanalisten. Je wordt ingezet voor verschillende projecten en analysewerkzaamheden. Zo vertaal je onder meer informatiebehoeften vanuit verschillende werk- en bedrijfsprocessen in informatievoorziening. Je hebt een onmiskenbare rol bij de ondersteuning van de “business” met het

Bekijk vacature »

Software Engineer medior

Over de functie Als Software Engineer ben je met jouw scrumteam van A tot Z betrokken bij het (door)ontwikkelen van de software. Naast het ontwikkelen en testen van de software geef je ook passend advies aan onze klanten. Je maakt daarbij gebruik van de nieuwste technieken waaronder o.a. Azure, Angular,.Net core, MS-SQL server en de elastic search stack. Om je kennis up-to-date te houden verdiep je je regelmatig in nieuwe ontwikkelingen omtrent je vakgebied en probeer je deze effectief te vertalen naar mogelijkheden voor ons bedrijf. Jij als medior bent gedreven om dagelijks de mooiste ontwikkelingen te realiseren en neemt

Bekijk vacature »

Senior Lead Developer / Full stack / .NET / Azure

Functieomschrijving Wil jij graag als meewerkend voorman werken in een ambitieus bedrijf dat moderne software ontwikkelt voor grote klanten? Ben jij goed thuis in .NET omgevingen en het Azure platform en zorg je graag dat alles in goede banen loopt? Lees dan snel verder! Ontwikkelen en testen van de software en het framework via Scrum principes; Dagelijks aansturen van het Development Team; Coördineren van projecten; Kwaliteitscontrole op de code; Architectuur bepalen en zorgen dat deze gevolgd wordt; Overzicht over functioneel en technisch ontwerp van de software; Sparren met directie over IT strategieën. Functie-eisen Ruime ervaring met het .NET framework, ASP.NET,

Bekijk vacature »

Java Developer / Java 8 / Angular / Docker / Autom

Functieomschrijving Wil jij als Java Developer aan de slag bij een internationaal bedrijf die cutting edge applicaties ontwikkeld voor de automotive branche? Ga je graag aan de slag met technieken als Java 8, Java EE7, Docker, Angular en wil je graag direct een lease auto krijgen? Lees dan snel verder! Ontwikkelen van cutting edge applicaties met o.a. Java 8, Java EE7, Angular en Docker; Verantwoordelijk vanaf het in kaart brengen van requirements tot de daadwerkelijke technische oplossing; Meedenken over architectuur; Assisteren van technische implementaties bij klanten; Overleggen met analisten, testers, architecten en consultants. Functie-eisen Minstens 2 jaar ervaring als Java

Bekijk vacature »

Senior PHP Developer

Senior PHP Developer (EU-citizens only!) Imagine yourself working within an international company as a senior PHP developer and being responsible for the entire back-end development. As the new senior PHP developer you will responsible for raising their game and improving the quality of the code and enhance processes within the back-end. You will be working together with a team that consists of 8 other junior, medior and senior developers, which is good for your personal development. As the experienced PHP Developer, you will take the lead in building new functionalities, implementing improvements within the legacy code. The current stack that

Bekijk vacature »

Technical Lead Developer met doorgroei mogelijkhed

Voor een toonaangevende specialist in softwareoplossingen gericht op strategisch portfolio management ben ik op zoek naar een ambitieuze Technical Lead. De applicatie is volop in ontwikkeling. Zo worden er vele nieuwe functionaliteiten toegevoegd in .Net Core en staat een migratie naar de Azure op de planning. Om deze ontwikkeling te begeleiden en het team aan te sturen, zijn ze op zoek naar een ambitieuze Technical Lead. Wat je gaat doen: Een roadmap maken voor de komende jaren De juiste architectuur neerzetten, hands-on ontwikkelen (front-end en back-end) De migratie naar Azure begeleiden Het 8-koppige ontwikkel team inhoudelijk aansturen en coachen Communicatie

Bekijk vacature »
Jasper DS

Jasper DS

21/02/2013 20:37:21
Quote Anchor link
Hoi,

voor mijn querybuilder ben ik een functie aan het schrijven voor de where-clause. Mijn functie moet zorgen voor een array met parameters en een string met de where-clause. De input moet op deze manier binnenkomen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
array('veld1' => 'value1', 'veld2' => 'value2');

De code die ik gebruik is de volgende:
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
public function setWhere()
{
    $values = array('id' => 1, 'name' => 'test'); // input
    if(count($values) > 0)
    {
        $where = 'WHERE ';
        foreach($values as $key => $value)
        {
            $where .= $key . ' = :' . $key . ' AND ';
            $values[':' . $key] = $value;
            unset($values[$key]);
        }
        $where = substr($where, 0, -5);
        echo $where; // WHERE id = :id AND name = :name
    }    
}


Nu vind ik die code eigenlijk vrij omslachtig dus ik vroeg me af of die niet beter kon? Hoe zouden jullie zoiets aanpakken?

Alvast bedankt,
Jasper
 
PHP hulp

PHP hulp

28/01/2020 09:22:45
 
Ozzie PHP

Ozzie PHP

21/02/2013 20:42:51
Quote Anchor link
Dit soort trucs zijn ook vaak omslachtig.

Waarom doe je dit:

$values[':' . $key] = $value;
unset($values[$key]);

Ik ben ook wel eens zo bezig geweest om functies te maken om een query te bouwen. Ik weet echter niet of ik het nu weer zo ga doen, aangezien het zeer omslachtig is allemaal. Je kunt een query op zoveel manieren opbouwen dat het eigenlijk niet te doen is om dat allemaal in functies te verpakken.
 
- Mark -

- Mark -

21/02/2013 20:45:08
Quote Anchor link
Waarom staat $values binnen de functie trouwens? En normaal return je een waarde, echo hoort niet echt thuis in een functie.

En wat als het OR of iets anders moet zijn in plaats van AND?
 
Jasper DS

Jasper DS

21/02/2013 20:55:18
Quote Anchor link
Quote:
$values[':' . $key] = $value;
unset($values[$key]);


zodat $values kan gebruikt worden als PDO parameter bij de execute. De keys komen dan overeen met de prepared statements. De oude keys zijn niet meer nodig dus die doe ik weg.

@mark, het gaat over de functionaliteit. In de praktijk zal de functie idd returnen en komt $values binnen. Dit is een voorbeeld.

Voor OR of end kan er vrij makkelijk een parameter worden toegevoegd denk ik.

Nog even uitleggen waarom ik het niet op de doctrine manier wil doen. Ik wil dat er via mijn builder alleen data binnen komt dus niet zoals doctrine "id = :id AND name = :name" want dat is SQL.
Gewijzigd op 21/02/2013 20:56:35 door Jasper DS
 
Jan Koehoorn

Jan Koehoorn

21/02/2013 21:21:59
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
function set_where ( $columns ) {
    $wheres = array ( );
    foreach ( $columns as $column ) {
        $wheres[ ] = $column . ':=' . $column;
    }

    return 'WHERE ' . implode ( ' AND ', $wheres );
}

?>
Gewijzigd op 21/02/2013 21:47:30 door Jan Koehoorn
 
Ozzie PHP

Ozzie PHP

21/02/2013 21:22:26
Quote Anchor link
NOgmaals Jasper, goed nadenken of je dit allemaal wel wil. Ik was er ook ooit heel enthousiast over... totdat ik tot de ontdekking kwam dat queries gruwelijk lang en gecompliceerd kunnen worden. Dat krijg je nooit allemaal in functies gestopt.
 
Jasper DS

Jasper DS

21/02/2013 22:14:27
Quote Anchor link
Ozzie, wat heb jij dan gedaan?
Jan, bedankt! Ziet er beter uit mits enige aanpassingen. Zo is het beter niet?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
if(count($columns) > 0)
        {
            $wheres = array();
            foreach ($columns as $key => $column )
            {
                $wheres[':' . $key] = $key . '= :' . $key;
            }
           echo 'WHERE ' . implode ( ' AND ', $wheres );

            var_dump($wheres);
        }
Gewijzigd op 21/02/2013 22:18:57 door Jasper DS
 
Erwin H

Erwin H

22/02/2013 08:39:18
Quote Anchor link
Is het niet veel makkelijker om op de plek waar je nu al die functies aan gaat roepen om de SELECT, FROM, WHERE, ORDER BY, GROUP BY, LIMIT etc clausules op te bouwen, gewoon een string met de query en (eventueel) een array met parameters door geeft. Veel flexibeler dan dat kan het niet.... En in je code uiteindelijk een stuk korter.
 
Jasper DS

Jasper DS

22/02/2013 09:59:38
Quote Anchor link
Neen want ik wil werken met een soort van ORM. In mijn model bouw ik een storage op. Deze bevat enkel data (fields, from, action, where, limit, orderby). De sotorage bouw ik zo op:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$storage = new Storage('SELECT', 'users'); // action en from zijn verplicht
$storage->setFields(array('id', 'name', 'email')); // niet verplicht -> standaard *
$storage->setWhere(array('id' => 1, 'name' => 'Jasper')); // field -> value


Die dataholder gaat dan naar de adapter, dat kan een PDOAdaptor zijn, txtAdaptor, MysqlAdaptor. In de PDO en in de MysqlAdaptor word sql gegenereerd met behulp van de data van de Storage classe. De sql in de Mysql en de PDO adaptor is niet hetzelfde want PDO werkt met prepared statements en Mysql niet.

M.a.w. ik wil een adaptor kunnen opbouwen met de functies uit de Storage(builder) de storage builder word opgebouwd in mijn model want ik wil geen SQL in mijn model zodat ik daar niet van afhankelijk ben.
Gewijzigd op 22/02/2013 10:01:14 door Jasper DS
 
Erwin H

Erwin H

22/02/2013 10:08:41
Quote Anchor link
Waarom zou je in godsnaam MySQL en (of) PDO gebruiken? Allebij werken ze met mysql databases. Normaal gesproken gebruik je een andere adapter omdat je een andere database gebruikt. Een andere adapter gebruiken om maar een andere adapter te kunnen gebruiken is een beetje nutteloos. Ook omdat je het nu al in een abstractie laag gaat verwerken.

Anyway, ik ga je verder niet proberen over te halen. Doe wat je moet doen, maar ik voorspel nu dat je binnen een half jaar er weer vanaf stapt omdat het vele malen complexer is dan je nu denkt, uitermate inflexibel is (ik geef je een maand voor je je eerste query vindt die je er met geen mogelijkheid in krijgt) en het kost je veel te veel werk voor iets dat veel sneller en simpeler kan.
 
Jasper DS

Jasper DS

22/02/2013 10:58:06
Quote Anchor link
Erwin H op 22/02/2013 10:08:41:
Waarom zou je in godsnaam MySQL en (of) PDO gebruiken? Allebij werken ze met mysql databases. Normaal gesproken gebruik je een andere adapter omdat je een andere database gebruikt. Een andere adapter gebruiken om maar een andere adapter te kunnen gebruiken is een beetje nutteloos. Ook omdat je het nu al in een abstractie laag gaat verwerken.


MysqlAdaptor en PDOAdaptor was idd een slecht voorbeeld in de praktijk maar het is wel nodig voor no-SQL databases. PDOAdaptor voor alle SQL database en andere Adaptors voor no-sql databases.

Dit wil ik bereiken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
public function findById($id)
    {
        $sb = new StorageBuilder('SELECT', 'gebruikers');
        $sb->setFields(array('id,', 'name'));
        $sb->setWhere(array('id' => $id));

        $result = $this->getStorage()->execute($sb);

        $this->populate($result);
    }
Gewijzigd op 22/02/2013 11:06:54 door Jasper DS
 



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.