Zoekfunctie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ambitieuze medior developer

Wat je gaat doen: Heb jij al een paar jaar ervaring als developer maar wil jij naar the next level? In ons NextLevelDev Programma helpen wij jou om de volgende stap te zetten: een mooi programma aan trainingen op het gebied van Java, hippe frameworks, Agile/Scrum, OCP-certificering en optioneel: andere JVM-talen als Kotlin en Scala; Cloud (AWS, Azure, GCP) Soc 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

Bekijk vacature »

(Lead) PHP Software Developer

Functie omschrijving Voor een klein softwarebedrijf in Breda, zijn wij op zoek naar een PHP software developer met een aantal jaar werkervaring. Je krijgt een plek in een klein team met 2 andere software developers. Wil jij graag werken met de nieuwste technieken bij een bedrijf waar jij de lead gaat nemen in de verder ontwikkeling en modernisering van een eigen software pakket? Dan ben je hier aan het juiste adres! Jouw werkzaamheden gaan er als volgt uit zien: Je gaat aan de slag met de ontwikkeling en vernieuwing van het "in-house" ontwikkelde multimedia platform. Je neemt de lead in

Bekijk vacature »

Senior Organisatieontwikkelaar

Als Organisatieontwikkelaar zorg je ervoor dat we in het magazijn van Coolblue altijd vooruit voetballen op het gebied Medewerker en Organisatie Ontwikkeling. Zo draag je bij aan een toekomstbestendig magazijn waar we klanten én medewerkers elke dag blijven verwonderen. Wat doe je als Senior Organisatieontwikkelaar bij Coolblue? Als Organisatieontwikkelaar werk je voor het magazijn van Coolblue. Je krijgt er energie van om continue te bouwen aan een toekomstbestendige organisatie. Dat doe je samen met 17 collega's in het HR-team, ieder met een eigen specialisme. Je werkt graag zelfstandig en je weet snel je weg te vinden als verandermanager. Ook ben

Bekijk vacature »

Software Ontwikkelaar PHP

Functie omschrijving Software Ontwikkelaar PHP gezocht! Wij zijn op zoek naar een ervaren PHP Software Ontwikkelaar om het team van onze opdrachtgever te versterken! De ideale kandidaat zal fungeren als verlengstuk van klanten en complexe technische vraagstukken met enthousiasme benaderen. Naast het werken met de nieuwste technologieën, ben je in staat om aan meerdere projecten tegelijkertijd te werken. Als je deze uitdaging aangaat, werk je nauw samen met front-end developers en draag je bij aan het realiseren van grote veranderingen bij klanten. Het bedrijf zoekt iemand die zichzelf graag uitdaagt en altijd streeft naar het leveren van de beste resultaten.

Bekijk vacature »

Digital Agency is looking for PHP developers!

Functie The team currently has 20 colleagues, consisting of developers (front and backend) and the operations team, which also includes management and two scrum masters. They are looking for a PHP developer who is able to work independently. You will work in one of the three scrum teams and start working on a project for the customer. The interesting thing about this is that you do have variety in terms of work, but at the same time continuously work for existing customers. This also gives you the opportunity to really go into depth and develop innovative technical solutions. In terms

Bekijk vacature »

Low Code Developer

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en ben jij HBO afgestudeerd in de richting van IT? Heb jij verstand van datamodellering, NO CODE Platformen en kun jij het aan om projecten te leiden? Voor een leuke opdrachtgever in omgeving Rotterdam zijn wij op zoek naar een No Code developer die zich bezig gaat houden met het optimaliseren van bedrijfsprocessen bij klanten in heel het land! Wat ga je hier zoal doen? Je gaat geen code kloppen maar bedenken hoe applicaties eruit moet komen te zien. Je gaat werken met een non code platform, je kunt denken aan

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie Heb jij altijd al willen werken voor een bedrijf, dat veilige netwerkverbindingen levert, door middel van veilige oplossingen, die door middel van de nieuwste technologieën ontwikkelt zijn? Stop dan nu met zoeken! Voor een opdrachtgever in omgeving Moordrecht zijn wij op zoek naar een programmeur. Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen C / C++ / PHP. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten goed verlopen. Je gaat klanten ondersteunen op

Bekijk vacature »

Full stack developer

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

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 »

Java developer

Functie Je gaat aan de slag als Tester voor een aantal mooie projecten. Je komt terecht in een DevOps team waar jij aan de slag gaat om de kwaliteit te waarborgen omtrent de maatwerk software voor de klanten. Je draait je hand er niet voor om de adviserende rol te bekleden op het gebied van testautomatisering en het opzetten van testframeworks. Zoals aangegeven ga je daadwerkelijk in het eigen team aan de slag en is het daarnaast ook gebruikelijk bij de klanten op locatie te komen om te werken aan de opdrachten. Je krijgt zodoende echt een mooie kijk in

Bekijk vacature »

Outsystems Developer Junior

Dit ga je doen Bouwen aan nieuwe en innovatieve applicaties; Maken van koppelingen tussen Outsystems en het bestaande applicatielandschap; Troubleshooting op bestaande software. Hier ga je werken De organisatie is internationale speler binnen de bouwbranche en richt zich op de infrastructuur, zowel boven als onder de grond. Ze zijn ruim 1100 man groot en maken op IT vlak een mooie groei door. Als junior Outsystems Developer kom je te werken op een IT-afdeling van zo'n 25 man groot. Een aantal jaar geleden hebben ze de keuze gemaakt om zich meer te gaan richten op ontwikkeling en door de groei van

Bekijk vacature »

Junior PHP (Laravel) Developer

Functie omschrijving Wij zijn op zoek naar een PHP Laravel Developer! Sta je aan het begin van je carrière en ben je op zoek naar een leuke baan? Lees dan verder! Voor een softwarebedrijf in omgeving van Schiphol zijn wij op zoek naar een ervaren PHP (Laravel) Developer. Je gaat je bezighouden met het ontwikkelen van innovatieve bedrijfsapplicaties. Samen met het team, bestaande uit designers en developers, maak je mooie oplossingen voor bedrijven in diverse branches. Je zorgt dat de opgeleverde websites perfect werken en de klant meer dan tevreden is. Je kunt rekenen op een afwisselende baan met leuke

Bekijk vacature »

Ervaren Magento developer gezocht!

Functie Je komt te werken in een zelfsturend team waarin vertrouwen voorop staat en inbreng en ideeën worden gewaardeerd. Ook staat innovatie centraal. Ze bieden jou de mogelijkheid om jezelf door te ontwikkelen. Denk hierbij aan cursussen en een persoonlijk ontwikkelplan. Je komt terecht in het team van momenteel 4 (ervaren) collega’s en zal meewerken aan de doorontwikkeling en nieuwbouw van de Magento platformen van meerdere opdrachtgevers volgens Agile/Scrum. Denk hierbij aan nieuwe functionaliteiten, UX en koppelingen met verschillende back-end systemen. Als ervaren developer zul je hiernaast ook andere developers assisteren en waar nodig de leiding nemen in het project.

Bekijk vacature »

SAP HANA Cloud Application Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Veldhoven Vacature ID: 12662 Introductie HANA Cloud Application Developer at a High Tech company. The company 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”. This role is situated in the Big Data Analytics (BDA) Domain. The teams have mixture of young talent and senior specialists and have a

Bekijk vacature »

Experienced Lead Java Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Delft Vacature ID: 13301 Introductie We are seeking a Lead Java Developer for our team in the area of Delft. You will develop an application used exclusively by the engineers and geologists for site characterizations, which imports raw field and laboratory measurements for further processing, integration, ground modelling, and geotechnical analysis and reporting. The client/server application is entirely written in Java, and the server is hosted in the Amazon cloud, utilizing frameworks such as Spring and Hibernate, and connected to an MS SQL Server RDS instance. There is a trend towards using more

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

29/03/2024 08:30:07
 
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.