PDO fulltext MATCH

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior Fullstack developer wanted! (C#, Java, Angu

Functie Under the guidance of 3 account managers, one of whom will be your point of contact within your expertise, you will start working for various clients. He or she will help you find a suitable and challenging assignment. Naturally, they will take your situation, experience and (technical) ambitions into account. The assignments last one to two years on average. This allows you to really commit to a project and make an impact as a consultant. Besides the assignment, you will regularly meet your colleagues from the IT department to share knowledge or discuss new trends, for example. Master classes

Bekijk vacature »

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 »

.NET developer

Functie Voor jou als junior .NET ontwikkelaar staat er een flinke uitdaging klaar bij dit bedrijf waar jij veel van kan gaan leren. Zo willen zij een flinke uitbreiding doen op het webbased gedeelte dat zij nu hebben en willen zij het standaard deel gaan moderniseren. Jouw team is dan ook op zoek naar een junior .NET ontwikkelaar die het leuk vindt om op basis van research en development aan de slag te gaan. Jouw mening telt mee als het gaat om hoe en met wat deze applicaties gebouwd en herschreven gaan worden. Jouw functie bij dit bedrijf gaat dan

Bekijk vacature »

Traineeship Fullstack developer (WO, 0 tot 3 jaar

Functie Zoals beschreven ga je vanaf start aan de slag bij een passende opdrachtgever, hierbij kijken ze echt naar jouw wensen, kennis/ervaring maar ook de reisafstand. Momenteel hebben ze meerdere klanten waarbij ze groepen hebben opgezet wat maakt dat er diverse uitdagende kansen liggen. Naast het werken bij de opdrachtgever, en het volgen van de masterclasses, zul je regelmatig met de andere trainees in contact zijn. Niet alleen op professioneel vlak maar juist ook bij de borrels en kwartaaluitjes! Kortom; een jaar lang hard aan jezelf werken in combinatie met gezelligheid en plezier. Spreek dit jou aan? Dan komen we

Bekijk vacature »

Front-End React Developer

As a Front-End React Developer you improve the user-experience of our web applications for your colleagues in Coolblue. How do I become a Front-End React Developer at Coolblue? As a Front-End React Developer you are responsible for developing user interface components and implementing them using React.js concepts and workflows. You work with the UX Designer and get energy from coming up with creative solutions and present these within the team. During the day you gather and welcome feedback on your technical and soft skills. Would you like to become a Front-End React Developer at Coolblue? Read below if the job

Bekijk vacature »

PHP Developer - medior functie

Functieomschrijving Ben jij innovatief en wil jij je kennis graag delen met jouw nieuwe collega's? Lees dan snel verder! Voor een leuke opdrachtgever in de omgeving van Roosendaal zoeken wij een Symfony developer. Of je nou junior, medior of senior bent, je krijgt hier alle vrijheid en verantwoordelijkheid om jouw eigen loopbaan te ontwikkelen. Je gaat je hier bezig houden met en inspelen op de actualiteiten van jouw vakgebied. Techstack: Symfony, PHP, mySQL. Kennis van Svelte is helemaal mooi meegenomen. Bedrijfsprofiel Al sinds '99 is dit webbureau actief. De kernwaarden binnen het bedrijf zijn integer, dienstbaar en deskundig. Je komt

Bekijk vacature »

Software Developer

Functie omschrijving Heb jij affiniteit met ICT en een WO diploma in de pocket? Dan ben je hier aan het juiste adres. Voor een opdrachtgever in Amsterdam zijn wij op zoek naar kandidaten die (enige) ervaring hebben met Java, Javascript, C of C++. Je zal door middel van trainingen worden opgeleid tot een volwaardige Software Developer. Er wordt tijdens de training natuurlijk veel aandacht besteedt aan de vaktechnische aspecten, maar er gaat ook veel aandacht uit naar jouw persoonlijke ontwikkeling. Bedrijfsprofiel Bij deze opdrachtgever in de omgeving van Amsterdam zoeken ze meerdere enthousiaste kandidaten die hun carrière willen starten met

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 »

Airport Developer / System engineer

De functie Als onze nieuwe Airport Developer / System Engineer is je doel om uit nieuwbouw- en onderhoudsprojecten maximale waarde te creëren voor Schiphol Group en haar stakeholders. Vanuit je visie en expertise, maar ook (technologische) ontwikkelingen, wetgeving en beleid vertaal je klantwensen naar een gedegen programma van eisen. In de planontwikkelingsfase werk je nauw samen met Plan Ontwikkelaars om je kennis in te brengen ten behoeve van de kwaliteit van het investeringsvoorstel. Je overlegt met diverse partijen, stelt de vraag achter de vraag en verbindt zo de belangen van de luchthaven, proceseigenaar en asseteigenaar om tot een gedragen ontwikkelopgave

Bekijk vacature »

PHP Developer

Functieomschrijving Vanuit het hoofdkantoor in de regio van Bergen op Zoom ben je als PHP Developer niet alleen gefocust op het ontwikkelen van Software. Daarnaast ben je ook voortdurend bezig met het zoeken naar nieuwe mogelijkheden en innovaties die essentieel kunnen zijn voor de efficiëntie van software ontwikkeling. Je deelt veel kennis en informatie met het team en ontvangt deze dan ook graag terug. Techstack: PHP, Symfony & mySQL. Bedrijfsprofiel Deze uitdagende opdrachtgever is ruim 20 jaar actief in de regio Bergen op Zoom. Het vooruitstrevende team staat de hele dag voor je klaar om je te helpen en ondersteunen.

Bekijk vacature »

Software Developer

Functie omschrijving Psst hé jij daar! Op zoek naar een nieuwe uitdaging als developer? Wacht niet langer en reageer direct. In deze functie ga je bij een familiebedrijf werken als developer. Je gaat maatwerk software ontwikkelen met de Microsoft stack. Je gebruikt technieken als C#, ASP.NET en MVC. Je werkt in een leuk team van andere developers. Je krijgt veel vrijheid in je werk en kan flexibel werken. Dagje thuiswerken? Geen probleem! Daarnaast is er veel ruimte om écht mee te denken met het bedrijf en met de klanten. Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Boxtel. Vanaf

Bekijk vacature »

Medior Front-end Developer

Bij Getnoticed doen wij wat we leuk vinden, websites bouwen en online marketing. Voor veel van onze klanten doen we dan ook allebei. Wel zo fijn om campagnes te draaien voor conversiegerichte websites die in eigen beheer zijn. In onze vestiging in Nederweert zit onze development afdeling en worden de websites gebouwd. Op dit moment zijn we op zoek naar jou: dé Medior Front-end Developer die net als wij, het hoofd boven het maaiveld durft uit te steken! In het kort Even een paar punten die omschrijven wat deze toffe baan inhoudt: Het uitwerken van designs tot functionele layouts Je

Bekijk vacature »

C# Developer

Functie omschrijving Voor een softwarebedrijf in de omgeving van Veghel zijn we op zoek naar een C# developer. Word jij blij van ontwikkelen in C# en .NET? Lees dan snel verder! Jouw werkzaamheden zullen er als volgt uit gaan zien: Door middel van ASP.NET, MVC Framework en C# ga je webshops, websites en webapplicaties ontwikkelen. Je zorgt voor de optimalisatie van bestaande software en de automatisering van bedrijfsprocessen. Op basis van de wensen van de klant ga je samen met je collega's ga je op zoek naar de juiste oplossingen en je gaat dit uitwerken tot een mooi eindproduct. Bedrijfsprofiel

Bekijk vacature »

.NET Developer Medior Senior

Dit ga je doen Ontwikkelprocessen verder optimaliseren en verder ontwikkelen met C#; CI/CD-pipelines automatiseren; Herbruikbare componenten maken; Testen; Front-end pagina's gebruiksvriendelijk maken. Hier ga je werken Als .NET Developer kom jij terecht binnen een grote en internationale organisatie. Zij streven naar een positieve impact op de mens, milieu en maatschappij. Het bedrijf is oorspronkelijk een familiebedrijf en werkt aan de productie van hoogwaardige en technische systemen voor de gezondheidszorg. Momenteel willen zij betere ontwikkelprocessen creëren op internationaal gebied en staat kwaliteit en veiligheid voor hun op nummer 1! Als .NET Developer werk jij aan het ontwikkelen van verbeterde software voor

Bekijk vacature »

.NET developer

Functie Jouw team van vier collega .NET developers is verantwoordelijk voor het bouwen van de ETL processen van jouw nieuwe werkgever. Op dit moment wordt de front-end gedaan door een extern team van professionals. Echter wilt jouw nieuwe werkgever graag intern deze kennis uitbreiden en heeft dan ook de ambitie om dit voor het eind van het jaar intern te gaan aanpakken. Dit betekend dat jij als .NET ontwikkelaar de ideale kans krijgt om jezelf samen met jouw collega’s te ontwikkelen als full stack developer. Als .NET ontwikkelaar werk jij bij deze gave werkgever met C# .NET, SQL, JavaScript, REST

Bekijk vacature »
Dennis WhoCares

Dennis WhoCares

16/08/2016 21:12:39
Quote Anchor link
Hi all,

Met dank aan een tutorial waar Arien me opgewezen heeft, (tijdje geleden al, maar kwam er nu pas echt aan toe)

Heb ik dus de tabeltype van producten tabel aangepast naar myisam en een fulltext index gemaakt op
prod_title en op prod_description

In phpmyadmin werkt het geweldig. Maar in php krijg ik helemaal niks terug.

Ik debug de query in php, en print deze op het scherm, en ziet er goed uit.
Kopieren->plakken naar SQL in phpmyadmin geeft gewoon resultaten terug.

De query is ongeveer als volgt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT p.*,COUNT(r.rev_id) as revAmount, SUM(r.rev_score) as revTotal,h.*,m.*
FROM dnshop_products p
      LEFT JOIN dnshop_reviews r ON r.rev_prod_id = p.prod_id
      LEFT JOIN dnshop_highlighted h ON p.prod_id = h.hlight_prod_id
      LEFT JOIN dnshop_media m ON p.prod_id = m.media_prod_id

WHERE p.prod_visible = 1
AND m.media_weight = 1
AND p.prod_price < 900

GROUP BY p.prod_id

ORDER BY MATCH(p.prod_title) AGAINST("disney") DESC,p.prod_title ASC LIMIT 0,20


Zien jullie iets verkeerds?

Mijn select functie is als volgt:
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
function __construct($DB_TYPE, $DB_NAME, $DB_HOST, $DB_USER, $DB_PASS) {
        parent::__construct($DB_TYPE . ':host=' . $DB_HOST . ';dbname=' . $DB_NAME, $DB_USER, $DB_PASS);
    }

    public function select($query, $array = array(), $fetchMode = PDO::FETCH_ASSOC) {
        $sth = $this->prepare($query);
        foreach($array as $key => $value) {
            $sth->bindValue(':' . $key, $value);
        }
        
        if($this->debug)
            print_r($sth->queryString);
        
        $sth->execute();

        if($sth->rowCount() == 0) {
            return false;
        } else {
            return $sth->fetchAll($fetchMode);
        }
    }

Ik gebruik gewoon PDO type:mysql
Gewijzigd op 16/08/2016 21:15:50 door Dennis WhoCares
 
PHP hulp

PHP hulp

24/04/2024 23:17:04
 
Thomas van den Heuvel

Thomas van den Heuvel

17/08/2016 14:37:48
Quote Anchor link
- hoe roep je deze select() methode precies aan? hoe luiden de parameterwaarden?
- wat geeft deze methode weer als $this->debug true is?
- als je de query logt: hoe luidt de query die daadwerkelijk is uitgevoerd? dit is overigens de énige manier om duidelijkheid te krijgen wat er aan de hand is
- staat dit alles (aanroep van select()) in een try-catch blok?
- worden fouten gemeld (in het algemeen en voor PDO specifiek)? wat is de waarde van PDO::ATTR_ERRMODE? dit is standaard PDO::ERRMODE_SILENT, oftewel, er kraait dan geen haan naar opgetreden fouten
- hoe luidt de waarde van PDO::ATTR_EMULATE_PREPARES? dit is standaard true, oftewel, als er fouten optreden (die mogelijk niet gemeld worden) dan komt dit pas tot uiting bij de execute() en niet al bij prepare(), omdat ingeval je prepared statements emuleert er geen SQL-sjabloon naar de database wordt verstuurd

Quote:
Ik debug de query in php, en print deze op het scherm, en ziet er goed uit.
Kopieren->plakken naar SQL in phpmyadmin geeft gewoon resultaten terug.

Maar dat is niet de exacte query die wordt uitgevoerd? Log dat ding, en kijk welke query er daadwerkelijk wordt uitgevoerd. Werk van daaruit terug naar je code.
 
Dennis WhoCares

Dennis WhoCares

17/08/2016 15:57:13
Quote Anchor link
Hey Thomas,

de query die ik bovenaan noemde, is toch wel hetgene wat ik krijg als debug true is ;-)
Behalve dat het naast elkaar staat dan, en de price:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
AND p.prod_price < 900

==
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
AND p.prod_price < :tPrice


Dus wordt dan:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
$getResults = $this->model->getSearchResult('SELECT p.*,COUNT(r.rev_id) as revAmount, SUM(r.rev_score) as revTotal,h.*,m.*
FROM dnshop_products p
      LEFT JOIN dnshop_reviews r ON r.rev_prod_id = p.prod_id
      LEFT JOIN dnshop_highlighted h ON p.prod_id = h.hlight_prod_id
      LEFT JOIN dnshop_media m ON p.prod_id = m.media_prod_id

WHERE p.prod_visible = 1
AND m.media_weight = 1
AND p.prod_price < :tPrice

GROUP BY p.prod_id

ORDER BY MATCH(p.prod_title) AGAINST("disney") DESC,p.prod_title ASC LIMIT 0,20',array('tPrice' => 900))

Hoewel ik de bindValue al weg gehaald had en alles static in de query gezet heb.

Ik zal vanavond de ERRMODE_EXCEPTION eens instellen en eventueel de try blok proberen, misschien dat ik dan foutmeldingen krijg? En waarschijnlijk zelf wel uitkom, anders kan ik hier duidelijkere informatie geven.

Momenteel zijn geen fouten, maar gewoon lege result.
Hoewel dat waarschijnlijk komt door:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
if($sth->rowCount() == 0) {
            return false;
        } else {
            return $sth->fetchAll($fetchMode);
        }


Toevoeging op 17/08/2016 20:34:40:

kom er nou achter, dat blijkbaar de vps er zin in had om een backup terug te zetten..
of moet ik de FULLTEXT INDEX () elke keer weer toevoegen als ik ga zoeken?

Toevoeging op 17/08/2016 21:06:06:

Ik wil ook graag op partials zoeken.
Bijv. 5 punt
Moet ik resultaten krijgen zoals 5 puntsgordel

Nou zag ik dat dit ALLEEN kan met, MATCH (field) AGAINST ('*5*punt*' AS BOOLEAN)
(als voorbeeld), maar dan is de MATCH natuurlijk 0 of 1. Dus is er weinig te sorteren op daadwerkelijke 'match score'

Is hier een oplossing voor ?
 
Ivo P

Ivo P

18/08/2016 09:22:25
Quote Anchor link
Een query met SELECT * en ook COUNT(*) oid erin gaat doorgaans mis:

Als je een aggregatie functie (zoals count, sum, avg etc) gebruikt, moeten ALLE andere kolommen in GROUP BY staan.

Ik zie in jouw query p.*, h.* en m.* staan, maar je groupt alleen op p.prod_id....

http://wiki.pfz.nl/group-by

In principe hoor je daar een foutmelding op te krijgen.
 
Dennis WhoCares

Dennis WhoCares

18/08/2016 11:33:41
Quote Anchor link
Hi Ivo,

deze opmerking heb ik al eens eerder gehad geloof ik.
Suggereer je dat ik
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
GROUP BY p.prod_id, m.media_prod_id, h.hlight_prod_id

moet doen ? Momenteel met vele producten, meerdere media en de hlight is maar een enkele record p product (als die er uberhaubt is(de hlight))

Dan nog zit ik met partial match, waar ik problemen mee heb.
Is daar een oplossing voor?
 
Ivo P

Ivo P

18/08/2016 11:38:20
Quote Anchor link
je moet strikt genomen ALLE kolommen noemen.

als je SELECT * FROM adres
doet
en adres bevat adres_id, naam, straat, postcode

dan hoort er bij
SELECT count(1), adres.* FROM adres
dus GROUP BY adres_id, naam, straat, postcode

Daarom is het gebruik van * in combinatie met een aggregatie functie niet zo'n goed idee.

Ook al omdat een tabel best kan worden aangepast. Stel iemand bedenkt dat de kolom Land ook wel handig is in je adres. Dan zou je die moeten toevoegen, terwijl je dat land mogelijk helemaal niet nodig hebt bij die query.
 
Dennis WhoCares

Dennis WhoCares

18/08/2016 14:37:59
Quote Anchor link
Ivo P op 18/08/2016 11:38:20:
je moet strikt genomen ALLE kolommen noemen.

als je SELECT * FROM adres
doet
en adres bevat adres_id, naam, straat, postcode

dan hoort er bij
SELECT count(1), adres.* FROM adres
dus GROUP BY adres_id, naam, straat, postcode

Daarom is het gebruik van * in combinatie met een aggregatie functie niet zo'n goed idee.

Ook al omdat een tabel best kan worden aangepast. Stel iemand bedenkt dat de kolom Land ook wel handig is in je adres. Dan zou je die moeten toevoegen, terwijl je dat land mogelijk helemaal niet nodig hebt bij die query.


Jeetje, wordt dan wel een gigantische query -.- als ik ALLE 'SELECT' velden moet opgeven.
Zijn er bekende problemen, als je dit niet doet ?

Momenteel werkt alles nog altijd naar behoren in de huidige situatie.
 
Ivo P

Ivo P

18/08/2016 14:44:37
Quote Anchor link
De vraag is om te beginnen, of je SELECT * over 3 tabellen wel nodig hebt natuurlijk.

Bij http://www.pfz.nl/wiki/group-by/#maar-dat-hoeft-toch-niet-altijd
staat een voorbeeld hoe het resultaat er keurig uitziet.
Klopt weliswaar niets van, maar je krijgt een resultaat.
 
Dennis WhoCares

Dennis WhoCares

19/08/2016 19:51:52
Quote Anchor link
Ik heb inderdaad alle gegevens van product, de 1e media, en highlight tabel nodig, ok media_prodprod_id, media_weight en hlight_prod_id zijn niet perse nodig nee.

De tabel media, kan meerdere records hebben op 1 prod_id, maar highlight max. 1
De media heb ik al gevangen door media_weight = 1 te geven.
Dus ik ben niet bang dat ik ooit meerdere records krijg.
 



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.