Zoekfunctie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Front-end developer - working on software for arou

Functie They have recently started looking for an experienced Front-end (mobile/app) developer. Because of the short lines within the team, they are also looking for someone who can communicate with the service desk, sales and support for technical questions. You will join their IT team consisting of about 10 colleagues divided over two teams in rooms opposite each other. Half of these are involved in their front-end. You will work together with, among others, the Architect, 1 senior, 1 junior and there is a Team Leader. In terms of technology, they work with a unique tech-stack, particularly because of the

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 »

Junior .NET developer

Functie Wij zijn bezig met het ontwikkelen van een nieuw product en wij hebben jouw hulp hierbij nodig! Als junior .NET ontwikkelaar krijg jij de kans om samen met ons deze nieuwe uitdaging aan te gaan! Momenteel bestaat ons team uit drie interim Software Engineers. Twee hiervan zijn zeer ervaren .NET specialisten die inmiddels hun strepen in dit vakgebied al hebben behaald. Ook hebben wij een junior als onderdeel van ons team die zich op dit moment nog bezig houdt met de Front-end (Angular/TypeScript), maar zich nu ook meer gaat verdiepen in de backend. Wij willen ons team graag verder

Bekijk vacature »

Functioneel applicatiebeheerder - SOP-SYS-SAM

TenneT is hard groeiend om de onze ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Functioneel Applicatiebeheerder op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je gaat samenwerken in een team van circa 15 functioneel applicatiebeheerders en gaat onderdeel uitmaken van een DevOps team. Met dit team ga je applicaties (laten) ontwikkelen en beheren. Hierbij concentreer je je vooral op de functionele aspecten, zodat

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 »

Junior Software Developer C# Verhuursector Verhuur

Samengevat: Wij ontwikkelen en leveren softwaresystemen voor de logistieke sector en de verhuursector. Ben jij geschikt als Junior Software Developer? Heb je ervaring met Delphi? Vaste baan: C# Software Developer Logistiek HBO €2.500 - €3.900 Deze werkgever is een software ontwikkelaar, gericht op software voor de logistieke sector. Deze werkgever heeft eigen producten ontwikkelen en leveren ook maatwerk. Ons bedrijf kent een boeiende en inspirerende werkomgeving met een open cultuur en mogelijkheden voor je verdere ontwikkeling. Bij bij hun werk je aan onze eigen bedrijfsapplicaties. Je ontwikkelt met ons de meest nieuwe software. Wij blinken uit als het gaat om

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Senior pega developer

You work on software that makes colleagues and customers happy! Thanks to your IT skills, De Mandemakers Groep really makes a difference for its customers. Do coding, testing and deployments make your heart beat faster? Then apply today as Senior Pega Developer at De Mandemakers Groep! Wat ga je doen? The job title gives it away: You will be developing Pega software. This ranges from technical design, coding and testing to test automation, deployments and bug fixing. Your goal is to continuously improve our systems so that colleagues can work efficiently and customers receive optimal service. You don't have to

Bekijk vacature »

Software Programmeur

Functie omschrijving Voor een informele club in omgeving Delft zijn wij op zoek naar versterking. Ben jij op zoek naar een nieuwe uitdaging als Software Programmeur lees dan snel verder! Als ontwikkelaar kom je terecht op een afdeling van 6 medewerkers. Werkzaamheden Programmeur Je bent bezig met het ontwikkelen van software en webapplicaties. Je kunt technische klussen uitvoeren op locatie. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een project goed verloopt. Je zult klanten ondersteunen. Verder zul je technische ontwerpen en gebruikersdocumentaties schrijven en deze onderhouden. Er wordt voornamelijk gewerkt met PHP, Java en

Bekijk vacature »

PHP Developer

Functie omschrijving Voor een bedrijf in Den Bosch zoek ik een PHP Developer, die al wat werkervaring heeft. Jij gaat aan de slag met de verdere professionalisering van de interne applicaties en software. In de functie ga je verder: Verdere ontwikkeling eigen CRM systeem, vooral middels PHP; Bouwen van verschillende API's & koppelingen; Meedenken om de software/applicaties te verbeteren/optimaliseren; Aan de slag met de interne tooling. Bedrijfsprofiel Dit bedrijf is actief binnen de telecombranche. Het hoofdkantoor zit in regio van Den Bosch en er werken ruim 70 medewerkers, verdeeld over verschillende afdelingen. De afdeling Development bestaat uit vijf collega's, onder

Bekijk vacature »

.NET developer

Functie Als junior .NET Developer start jij in een team met 15 developers. In het team is er genoeg senioriteit om ervoor te zorgen dat jij de juiste begeleiding krijgt. Jij begint als eerst alle software pakketten en processen eigen te maken. Vervolgens ga jij deze software programmeren, onderhouden en testen. Ook ga jij research doen naar nieuwe mogelijkheden en zoek jij uit hoe je dit kan implementeren. Jullie werken intern op project basis en afhankelijk van het project werken jullie wel of niet iedere ochtend met een standup. 50% van jullie werkzaamheden is maatwerk en de overige 50% is

Bekijk vacature »

Freelance JAVA / C# Developer

Functieomschrijving Ben je een ervaren freelancer of werk je in loondienst en ben je toe aan een nieuwe uitdaging? Lees dan snel verder want wie weet is dit een leuke vacature voor jou! Voor een opdrachtgever in omgeving Delft zijn wij op zoek naar ervaren JAVA of C# Developers die graag op projectbasis willen werken. Je komt terecht bij een informele developers club die mooie projecten uitvoeren voor grote klanten. Het fijne van deze werkgever is dat je zelf mag beslissen hoe je te werk wilt gaan. Wil je als freelancer werken dan is dat OK. Wil je de zekerheid

Bekijk vacature »

C#.NET Developer Jr. Functie

Functie omschrijving Bouw jij graag aan applicaties om processen in distributiecentra te optimaliseren? Wij zijn op zoek naar een C#.NET ontwikkelaar in regio Breda die hier graag een steentje aan bijdraagt! Jouw werkzaamheden zullen er als volgt uitzien: Je krijgt veel vrijheid in de keuze van de technieken die je gaat gebruiken. Uiteraard wel binnen de gestelde kaders, en door gebruik te maken van het .NET platform. Je gaat aan de slag met de ontwikkeling van een nieuwe module binnen de WMS suite van dit bedrijf. Deze "carrier" module gaat er voor zorgen dat de selectie van een vervoerder volledig

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 »

PHP Developer

Dit ga je doen Ontwikkelen, implementeren en testen van PHP-oplossingen en Apps voor klanten en bedrijfsprocessen; Opstellen van requirements en uitwerken van de oplossingen; Testen van software en borgen van een soepele overdracht, inclusief documentatie; Proactief adviseren vanuit eigen expertisegebied over ontwikkelingen en verbeterpunten in technische toepassingen en processen binnen de organisatie. Hier ga je werken De organisatie is een ambitieuze en vooruitstrevende speler in de markt in de regio Rotterdam. Ze zijn de snelst groeiende in hun branche. Met een excellent aanbod en service willen zij de beste keuze zijn voor hun bestaande en nieuwe klanten. Dit alles doen

Bekijk vacature »
Yoeri Achterbergen

Yoeri Achterbergen

02/04/2020 01:32:03
Quote Anchor link
Hallo,


Ik ben bezig om een zoekfunctie te maken met PHP en mySQL.
Er word in meerdere kolommen gezochte en dat doe ik met deze code
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
global $wpdb;
$strng            = 'XO';
$table             = $wpdb->prefix . "posts";
$query            = "SELECT ID, post_title FROM $table WHERE (ID LIKE '%$strng%' OR post_title LIKE '%$strng%')";
$connection     = mysqli_connect($wpdb->dbhost, $wpdb->dbuser, $wpdb->dbpassword, $wpdb->dbname);
$result            = mysqli_query($connection, $query);
?>


De variable $strng word straks doormiddel van $_POST gevuld.
Ik krijg nu altijd het resultaat dat ik wil hebben maar wil nog iets toevoegen maar niet precies weet hoe ik dit kan realiseren.

Er zijn twee kolommen "meta_key" en "meta_value".
In de meta_key staat als waarde _sku en in de meta_value staat een bepaalde waarde.

Op die waarde wil ik ook kunnen zoeken maar alleen als in dezelfde record in de meta_key _sku is.
Hoe voeg ik die conditie nu precies toe in de query?
 
PHP hulp

PHP hulp

19/03/2024 10:42:09
 
Thomas van den Heuvel

Thomas van den Heuvel

02/04/2020 01:50:09
Quote Anchor link
$query is een string. Deze string kun je dus stap voor stap opbouwen met behulp van condities die je programmeert in PHP.

Let op #1: $strng wordt nu niet ge-escaped, je kunt dus allerlei ongein uithalen in deze query.
Let op #2: ook al escape je $strng dan blijven het underscore karakter (_) en het percentage karakter (%) hun betekenis houden als wildcards, dus als je dit gedrag niet wilt houden en/of je letterlijk de karakters "_" en "%" wilt kunnen matchen zul je deze apart moeten escapen met een \ (backslash).

Mogelijk zou je een IF-statement kunnen gebruiken?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$query = "... WHERE ... OR ... OR IF(meta_key = '_sku', meta_value LIKE '".$strng."%', 1)";

Let op #1: alleen een % aan het einde, zodat gekeken wordt of je een substring van een SKU hebt ingevuld
Let op #2: de "else" case bevat een 1 (true), als de meta_key verschilt van '_sku' is dit OR-deel altijd goed
Let op #3: nog niet geescaped
 
Jeroen van Rensen

Jeroen van Rensen

02/04/2020 15:49:10
Quote Anchor link
Ik heb deze tutorial gevonden en gevolgd. Dit is een vrij goede zoekmachine voor je website: https://www.youtube.com/watch?v=E0K9-0COv-M&list=PLBOh8f9FoHHhSQvHymWKA06r5v7pnYglW
 
Yoeri Achterbergen

Yoeri Achterbergen

02/04/2020 22:45:00
Quote Anchor link
Hallo Thomas,

Ik ben even het stoeien geweest maar krijg het nog niet helemaal voor elkaar.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$con
             = mysqli_connect($wpdb->dbhost, $wpdb->dbuser, $wpdb->dbpassword, $wpdb->dbname);
$strng            = mysqli_real_escape_string($con, $_POST['s']);
$posts            = $wpdb->prefix . "posts";
$postmeta        = $wpdb->prefix . "postmeta";
$query            = "SELECT ID, post_title FROM $posts as p JOIN $postmeta as pm WHERE p.ID LIKE '%$strng%' OR p.post_title LIKE '%$strng%' IF(pm.meta_key = '_sku', pm.meta_value LIKE '%$strng%') AND p.post_type = 'product'";
?>
 
Thomas van den Heuvel

Thomas van den Heuvel

02/04/2020 22:52:54
Quote Anchor link
Je mist sowieso een OR en een else-statement in de IF()?
Je hebt beide nodig voor het gewenste resultaat denk ik.

Controleer nogmaals mijn voorbeeld.
 
Jop B

Jop B

03/04/2020 20:09:38
Quote Anchor link
Dus als ik het goed begrijp Yoeri.

Je wilt een zoekfunctie bouwen die in meerde kolommen zoekt?
Mag ik vragen waarom je een INNER / LEFT / RIGHT of FULL OUTER JOIN wilt gebruiken? Deze zie ik niet terug in je eerste vraag.
 
Yoeri Achterbergen

Yoeri Achterbergen

03/04/2020 20:41:08
Quote Anchor link
@jop,

Klopt inderdaad :)
De JOIN wil ik toepassen omdat de kolommen meta_key en meta_value in een andere tabel staan, dit was ik inderdaad vergeten in mijn vraag.
De zoekresultaten moeten de ID's en posttitels bevatten, dit heb ik tot zover aan het draaien maar kom er niet goed uit met die 2e tabel.
Als een gebruiker het sku nummer invult dan moet alsnog de ID en de posttitel worden teruggegeven van de andere tabel, vandaar dat ik een INNER JOIN heb gebruikt.

De situatie is precies als volgt.
Het betreft een Wordpress database die ik aanroep, omdat ik de info niet op mijn Wordpressite wil maar op een andere site maak ik geen gebruik van de Wordpresstools.


De tabel posts heeft de kolom ID en post_title.
De tabel post_meta heeft de kolom post_id, meta_key en meta_value.

De kolom ID en post_id zijn dus altijd gelijk, hier moet ik dus een koppeling maken tussen de twee tabellen als ik het goed heb.

Als Wordpress een post aanmaakt dan word er voor elke meta een nieuwe record aangemaakt in de post_meta tabel.
Er zijn in deze tabel dus per post meerdere records bijvoorbeeld
post_idmeta_keymeta_value
1700price20.00
1700_sku782736
1700typesimple


Daarom is er een IF-statement nodig om alleen te filteren op _sku en dan de bijbehorende waarde van kolom meta_value.

In feit wil ik dan dus zoeken op 3 verschillende kolommen in 2 verschillende tabellen.
Met als uitkomst de ID en de post_title.

Ik ben wat aan het stoeien geweest maar krijg het niet voor elkaar met de 2e tabel en het if statement.

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
<?php
$output
         = '';
$con            = mysqli_connect($wpdb->dbhost, $wpdb->dbuser, $wpdb->dbpassword, $wpdb->dbname);
$keywords       = mysqli_real_escape_string($con, $_POST['s']);
if(strlen($keywords) < 3){
    echo 'Fill in 3 or more characters';
    return;
}

$posts          = $wpdb->prefix . "posts";
$postmeta       = $wpdb->prefix . "postmeta";
$query          = " SELECT ID, post_title
                    FROM $posts as p
                    INNER JOIN $postmeta as pm ON p.ID = pm.post_id
                    WHERE p.post_type = 'product' AND p.ID LIKE '%$keywords%' OR p.post_title LIKE '%$keywords%' OR IF(pm.meta_key = '_sku', pm.meta_value LIKE '%$keywords%', 1)
                    ORDER BY post_title"
;
$result         = mysqli_query($con, $query);
if(mysqli_num_rows($result) > 0){
    while($row = mysqli_fetch_array($result)){
        $output .= '<table>';
        $output .= '<tr><td>'.$row['ID'].'</td><td>'.$row['post_title'].'</td></tr>';
        $output .= '</table>';
    }

    echo $output;
}
else{
    echo 'Data Not Found';
}

?>
 
Thomas van den Heuvel

Thomas van den Heuvel

03/04/2020 21:03:24
Quote Anchor link
Oh, meerdere tabellen, met ook nog eens meerdere records, zoveel stond niet in het oorspronkelijke vraagstuk, of misschien heb ik niet goed gelezen.

Dan zou je wellicht beter een soort van (LEFT) JOIN kunnen gebruiken misschien.

Neem in de (LEFT) JOIN-conditie op dat de meta_key gelijk moet zijn aan _sku, en als je daar resultaat hebt (meta_key verschilt van NULL) kijk dan of de meta_value matcht met je keywords?

Het is misschien handig om te weten of er altijd (precies) één _sku meta_key hoort bij een post?
 
Yoeri Achterbergen

Yoeri Achterbergen

03/04/2020 21:12:04
Quote Anchor link
Hi Thomas,


Ik was dat stukje helemaal vergeten in het vraagstuk, OEPS.
Er is inderdaad altijd maar één _sku per post :)

Dus ik voeg een LEFT JOIN toe aan
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
 $query
            = "    SELECT ID, post_title
                    FROM $posts
                    WHERE post_type = 'product' AND ID LIKE '%$keywords%' OR post_title LIKE '%$keywords%'
                    ORDER BY post_title"
;
?>
 
Thomas van den Heuvel

Thomas van den Heuvel

03/04/2020 23:19:28
Quote Anchor link
Als er altijd een _sku meta_key dan kun je ook een INNER JOIN gebruiken.

Het volgende zou dan ongeveer moeten werken denk ik:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
SELECT p.ID, p.post_title
FROM $posts p
INNER JOIN $postmeta pm ON (pm.post_id = p.ID AND pm.meta_key = '_sku')
WHERE p.post_type = 'product'
AND (p.ID LIKE '%$keywords%' OR p.post_title LIKE '%$keywords%' OR pm.meta_value LIKE '%$keywords%')
ORDER BY p.post_title

Het loont ook altijd de moeite om expliciete haken om combinaties van AND en OR te zetten, ten einde verwarring/dubbelzinnigheid te voorkomen.

A AND (B OR C) is namelijk iets compleet anders dan (A AND B) OR C. Wanneer je A AND B OR C gebruikt dan zal dat equivalent zijn aan het eerste statement vanwege de associativiteit van AND en OR.

Zie ook de volgende waarheidstabel:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
| A  B  C |  (A AND B) OR C  |  A AND (B OR C)  |
|---------+------------------+------------------|
| 0  0  0 |               0  |              0   |
| 0  0  1 |               1  |              0   | *
| 0  1  0 |               0  |              0   |
| 0  1  1 |               1  |              0   | *
| 1  0  0 |               0  |              0   |
| 1  0  1 |               1  |              1   |
| 1  1  0 |               1  |              1   |
| 1  1  1 |               1  |              1   |
Gewijzigd op 03/04/2020 23:24:50 door Thomas van den Heuvel
 
Yoeri Achterbergen

Yoeri Achterbergen

04/04/2020 20:31:04
Quote Anchor link
Hi Thomas,


Duidelijk antwoord waar ik iets mee kan :)
Ik heb altijd artikelnummers ingevuld waardoor _sku altijd aanwezig is maar als ik een niet artikel aanmaak dan is er geen _sku aanwezig in de kolom meta_key.
Hierdoor vind hij nooit dat artikel.
Ik ben dus even terug gegaan naar je eerste antwoord en heb dit gemaakt
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$query
            = "    SELECT p.ID, p.post_title
                    FROM $posts p
                    INNER JOIN $postmeta pm ON pm.post_id = p.ID
                    WHERE p.post_type = 'product'
                    AND p.ID LIKE '%$keywords%' OR p.post_title LIKE '%$keywords%' OR IF(meta_key = '_sku', pm.meta_value LIKE '%$keywords%', 1)
                    ORDER BY p.post_title"
;
?>


Maar krijg nu heel erg veel records terug wat niet helemaal de bedoeling is, zelfs records die geen van de keywords bevat.
 
Thomas van den Heuvel

Thomas van den Heuvel

04/04/2020 21:00:40
Quote Anchor link
Okay... Dus er is *ten hoogste* één _sku, en niet precies één, dat is namelijk wat ik vroeg :p.

Dan moet je dus terug naar de constructie met een LEFT JOIN, waarbij je de tabellen verbindt met de extra conditie pm.meta_key = '_sku'. Mocht dit bijbehorende record er (nog) niet zijn dan zijn alle kolommen uit de $postmeta tabel gelijk aan NULL, maar krijg je dus wel altijd precies één resultaat (per post id), of er nu een _sku is of niet.

Je krijgt in de bovenstaande query waarschijnlijk heel veel records terug omdat je die twee tabellen enkel met de post_id = ID conditie aan elkaar fietst, dan krijg je waarschijnlijk voor elk record in $postmeta wat overeenkomen met het post ID een record terug, en dat is niet wat je wilt...

En die "1" moet waarschijnlijk bij nader inzien een 0 zijn, anders staat er immers ... OR ... OR 1, en dat is altijd waar :p.

Dus, ten overvloede, met wat aanpassingen ten opzichte van mijn vorige query, en een extra controle of meta_value wel een waarde heeft, zou dit beter moeten werken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
SELECT p.ID, p.post_title
FROM $posts p
LEFT JOIN $postmeta pm ON (pm.post_id = p.ID AND pm.meta_key = '_sku')
WHERE p.post_type = 'product'
AND (
    p.ID LIKE '%$keywords%' OR
    p.post_title LIKE '%$keywords%' OR
    IF(pm.meta_value IS NULL, 0, pm.meta_value LIKE '%$keywords%')
)
ORDER BY p.post_title

Let hierbij dus ook nog steeds op de haken om de OR-statements, want die zijn in jouw bovenstaande query alweer verdwenen.
Gewijzigd op 04/04/2020 21:07:41 door Thomas van den Heuvel
 



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.