Zoekfunctie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software engineer (front-end developer)

Waar de volledige Harry Potter-serie, 9 miljoen gedigitaliseerde krantenpagina’s en usability samenkomen. Dat is de KB in Den Haag. En het is de plek waar jij als software engineer (front-end) de website van de Digitale Bibliotheek voor de Nederlandse Letteren (DBNL) verbetert voor de 4 miljoen bezoekers per jaar. Maak jij het mogelijk? Dit is je kans om te bouwen aan een unieke website. Zoveel websites voor het vinden van oude krantenartikelen, tijdschriften en alle Nederlandse boeken die er ooit zijn geweest, bestaan er niet. En dan kun je ze ook nog woord voor woord doorzoeken. De bestaande website wordt

Bekijk vacature »

Senior Java 8 Developer in High-Tech Industry

Is your interest triggered by software and in particularly Java? Do you have at least 8 years of experience with Java in a High-Tech Industry? Then you could be the perfect candidate. Our client is looking for an senior Java Developer, in Eindhoven, The Netherlands. Functie You will be end-to-end responsible for creating software in Java and Java EE, contributing to the development of several diagnostic applications in a scrum/Agile way of working. Diagnostic & Sequencing applications is done in several teams working together to deliver and integrate solutions to complex problems to enhance the diagnostic capabilities for our customers.

Bekijk vacature »

Frontend Developer Webontwikkeling

Over het bedrijf: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Wij ontwerpen, bouwen en automatiseren digitale programma's om klantervaringen te optimaliseren. Wil jij betrokken zijn bij de productie van innovatieve oplossingen? Heb jij ervaring in een medior / senior functie gefocust op Front-End Development? Vaste baan: Frontend Developer Webontwikkeling 3+ Jaar Ervaring 2.975 - 4.025 Frontend Developer Wij gebruiken AI technology om merken mensenlijker te maken. Hierdoor krijgt de klant een betere experience. Zij werken voor grote klanten. Zij doen omvangrijke projecten die we bij ons op kantoor realiseren

Bekijk vacature »

Mendix Lead Developer bij PostNL

Mendix Lead Developer Den Haag HBO/WO IT - software development Professional "Werk samen met ons om van PostNL een 'logistical tech (driven) company' te maken door Mendix in te zetten voor onze kritieke logistieke processen". Wat ga je doen? PostNL heeft de ambitie om uit te groeien tot het meest efficiënte en innovatieve logistieke post en e-commerce platform in de Benelux. Om die digitale transformatie tot een succes te maken, maken wij op een unieke manier gebruik van Mendix technologie. Wij zetten Mendix namelijk in voor onze meest kritieke logistieke systemen. Daarom bouwen we hard aan onze eigen Mendix engineering

Bekijk vacature »

Backend Developer MSSQL

Over de werkgever: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Wij maken software voor de de financiële markt. Ben jij een enthousiaste Backend Developer? Heb jij ervaring met relationele databases? Vaste baan: Backend Developer MSSQL C# 2.500 - 4.000 Backend Developer Wij maken software voor de financiële markt. Onze klanten zijn de financieel adviseurs, ketens, banken en verzekeraars. Onze software is gericht op de particuliere dienstverlening en wordt gebruikt voor oriëntatie, advies, bemiddeling en administratie. Deze werkgever is een veelzijdige organisatie. Je werkt voor de eigen IT organisatie. Zij

Bekijk vacature »

Pega development - Trainee pega developer - 601947

Vind jij het leuk om echte business software te maken zonder daarvoor gedetailleerde code te hoeven schrijven? Voor ons hoofdkantoor in Waalwijk zoeken wij een trainee Pega developer voor 36-40 uur per week. Vind jij het leuk om echte business software te maken zonder daarvoor gedetailleerde code te hoeven schrijven? Wij leren je werken met het innovatieve platform van Pega en jij verovert de wereld in elke fase van de digitalisering van ons bedrijf. De Mandemakers Groep, een huis vol mogelijkheden. Je neemt deel aan een geweldig traject. We zijn bezig met de invoering van Customer Service, Sales Automation en

Bekijk vacature »

Full Stack .Net Developer Azure

Bij welk bedrijf je gaat werken: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Wij creëren visualisatiesoftware. Wil jij werken als Full Stack .Net Developer? Heb jij ruime kennis en ervaring met het ontwikkelen van webapplicaties? Vaste baan: Full Stack .Net Developer Azure WO 3.300 - 4.700 Full Stack .Net Developer Deze werkgever is een bedrijf dat de wereld van architecten probeert te veranderen. Dit doen zij door nieuwe software te ontwikkelen. Bij bij hun werk je aan onze eigen bedrijfsapplicaties. Je ontwikkelt met ons de meest nieuwe software. Wij

Bekijk vacature »

Senior Software Ontwikkelaar Java of .Net

Voor wie je gaat werken: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Wij geven advies over de vernieuwingen in de online wereld. Wil jij ICT oplossingen analyseren, beschrijven en beheren? Heb je ruime ervaring als .Net / Java developer? Vaste baan: Senior Software Ontwikkelaar Java of .Net HBO WO 4.300 - 5.500 Senior Software Engineer Deze werkgever is een fullservice online bedrijf dat grote klanten adviseert over de vernieuwingen in de online wereld en dat advies ook direct kan realiseren. Onze creatie-afdeling is volledig geïntegreerd met sales en consultancy

Bekijk vacature »

Software Webdeveloper .Net

Voor wie je gaat werken: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Wij voorzien in oplossingen voor creditmanagement. Ben jij een veelzijdige Software Developer? Heb je veel ervaring met .Net, c# en SQL? Vaste baan: Software Webdeveloper .Net SQL 3.200 - 4.300 Software Webdeveloper De databank bevat essentiële informatie over consumenten, bestuurders en bedrijven. De dimensie van deze databank is voor Nederlandse begrippen uniek. We verzamelen, verwerken, analyseren en interpreteren alle data zelf, om de inhoud vervolgens beschikbaar te stellen aan onze opdrachtgevers. Dit kan automatisch, waardoor onze klanten

Bekijk vacature »

Python Software Ontwikkelaar

Bij welk bedrijf je gaat werken: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Wij houden ons bezig met de ontwikkeling van embedded software voor energiemeters en stroomdistributie units. Wil jij werken als Software Engineer? Heb jij kennis van van HTML, CSS en javascript? Vaste baan: Python Software Ontwikkelaar API 2.900 - 4.500 Software Engineer Wij maken PDUs (Power Distribution units) voor datacenters. We maken deze in onze Nederlandse bedrijven en zorgen dat de klanten een op maat gemaakt product krijgen. Deze werkgever is een bedrijf waar teamverband hoog in

Bekijk vacature »

SAPUI5 Node.js Developer

Functieomschrijving Een duurzame toekomst: jij creëert het als SAPUI5 / Node.js Developer bij Alliander en draag bij aan de energietransitie. Ontwerp, bouw en test jij de nieuwe oplossingen voor het digitaliseren van energienetten en het automatiseren van onze processen? Jouw energie Werken aan complexe IT-problemen om energienetten te digitaliseren en de processen klaar te maken voor de toekomst. Daar krijg jij energie van! Bij Alliander ga je als SAPUI5 en/of Node.js Developer aan de slag in een echt DevOps-team. Je werkt Scrum, waar je jezelf en het team continu blijft uitdagen om nieuwe en innovatieve oplossingen te vinden voor een

Bekijk vacature »

Mendix Lead Developer

As ASML is growing rapidly, the Corporate IT Shared Services Team is maturing its team to establish Mendix application development as one of its core focus to maximize the business value that IT generates. Bringing value through, speed, quality and agility to our business with this platform is what we strive for. You will be joining the ASML Mendix Team as a lead developer who is responsible of leading Mendix projects on the delivery side , as well as executing Mendix platform and competence related activities to help Mendix Competence team grow in maturity. The main objective is to utilize

Bekijk vacature »

Frontend Web Developer

Functieomschrijving As a Front-end web Developer, you will be at the core of our data visualizations activities. You have final responsibility for the front-end work of our data analytics dashboards, which means that together with the designers and back-end web developers, you will work on translating data into engaging graphical user interfaces. You will be a key driver in improving our product to guarantee the best possible user interaction. You will be part of the Analytics and Visualization group. This group is responsible for design, implementation, testing and integration of (Big) Data Intensive dashboarding, root-cause and other extensive Analysis tooling.

Bekijk vacature »

Senior Java Full Stack Developer

Functieomschrijving Als Senior Java Full Stack Developer binnen ons Client domein maak je directe impact op de dienstverlening van heel Randstad Groep Nederland. Je bent onderdeel van onze interne IT afdeling. Ondanks de domein naam dus geen eindeloze klantopdrachten, maar juist focus op de technische innovatie van onze eigen processen en dienstverlening. Om dit continu te kunnen optimaliseren zitten we middenin een grote transformatie en zijn daarom op zoek naar een tweetal vaste senior developers die ruimte en vrijheid zoeken om hun kennis en ervaring in te zetten. Wat bieden wij? Het nodige vertrouwen en de autonomie om je werk

Bekijk vacature »

Java Developer

In het kort Als Java Developer bij InTraffic werk je aan technisch uitdagende en complexe projecten voor een beter en veilig Openbaar Vervoer in Nederland. Denk aan realtime reisinformatie koppelen en ontsluiten. Je werkt aan projecten waarbij jouw code direct een bijdrage levert aan een beter en veilig OV in Nederland. Je haalt van nature het beste uit jezelf en je Scrum-team. Jij brengt een kritische en nieuwsgierige kijk op zaken en je ziet uitdagingen in situaties waarin wordt afgeweken van de gebaande paden. De perfecte functie als je toe bent aan de tweede of derde stap in je loopbaan.

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

06/07/2022 15:05:01
 
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.