Informatie uit query halen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Specialist Informatiebeveiliging

Waar een linked-data-omgeving, 500 licenties op databanken en digitale tijdschriften en ISO 27001/27002 en de BIO samenkomen. Dat is de KB in Den Haag. En het is de plek waar jij als specialist informatiebeveiliging waardevol digitaal erfgoed, maar ook informatie van en voor miljoenen bibliotheekbezoekers, beschermt tegen cybercriminaliteit. Stilstaan is geen optie. Als onze specialist informatiebeveiliging werk je in ons complexe IT-landschap met eindgebruikersdiensten, landelijke netwerkdiensten en diensten die ons nationaal erfgoed duurzaam opslaan. We ondersteunen de informatiebeveiliging vanuit een afdeling overstijgend team waarin de strategische, tactische en operationele rollen vertegenwoordigd zijn met één CISO, één ISM (information security manager)

Bekijk vacature »

Joris R

Joris R

18/03/2021 14:47:32
Quote Anchor link
Hallo allemaal,

Ik had een vraagje. Ik probeer als hobbyproject meerdere APIs en datastromen met elkaar te verbinden, maar hier zit dus ook een zoekfunctie achter.
Mijn vraag hierover is alsvolgt: wanneer een eindgebruiker op een bepaald keyword zoekt, wil ik bijvoorbeeld andere informatie tonen (infocards etc). Hiervoor moet ik dus de query van de gebruiker kunnen filteren en dan deze cards tonen op de resultatenpagina.

Ik geloof dat dit mogelijk is (zie dit op meerdere websites), maar ik vraag mij af wat de achterliggende technologie hiervan is, en of iemand mij in de richting kan sturen van een tutorial o.i.d.

Groetjes en alvast bedankt!
 
PHP hulp

PHP hulp

13/06/2021 04:23:54
 
Thom nvt

Thom nvt

18/03/2021 15:05:59
Quote Anchor link
Heb je een concreet voorbeeld of een schets?
Ik kan me niet echt visualiseren wat je precies probeert te bereiken.
 
Joris R

Joris R

18/03/2021 15:11:49
Quote Anchor link
Een voorbeeld zou kunnen zijn hoe als je "coronavirus" opzoekt op Google je hier statistieken over kunt vinden. Wil min of meer soortgelijke info cards toevoegen aan mijn site (weliswaar met andere functie).

Hoop dat dit iets duidelijker is :).
 
Thom nvt

Thom nvt

18/03/2021 15:23:47
Quote Anchor link
Ah, duidelijk.

Dat is op een aantal manieren te doen, belangrijkste is het filteren van (grote) hoeveelheden data.
Als je dat uit meerdere APIs op wil bouwen zou het beste zijn als deze het zoeken/filteren al ondersteunen, dan is het een kwestie van de zoekopdracht van de gebruiker doorsturen naar de API en de resultaten samenvoegen.

Als je het zelf moet gaan doen is het nogal afhankelijk van de hoeveelheid en diversiteit van de achterliggende data.
Als het om veel data gaat zul je al snel op een oplossing als ElasticSearch (of wat ouder: Apache Solr) komen, deze ondersteunt geavanceerde zoek en filter mogelijkheden maar dan moet je alle data lokaal opslaan (cache).

Is het weinig data dan kun je het in PHP filteren, al zal dat een aantal beperkingen opleggen, met name snelheid en complexiteit van de zoek/filter algoritmes.

Als de data relatief statisch is maar wel divers zou ik er voor kiezen om het periodiek in een dedicated zoekoplossing als ElasticSearch op te slaan en elke X uur te refreshen. Dan leg je de complexiteit buiten je eigen oplossing.
PostgreSQL/MySQL kan ook maar die is naar mijn mening minder geschikt voor zoek en filter oplossingen.

Er zullen ongetwijfeld meerdere manieren zijn die ik nu niet zie.
De gekozen oplossing is geheel afhankelijk van de data dus daar kan ik niet echt een advies over geven zonder meer te weten.
Gewijzigd op 18/03/2021 15:25:00 door Thom nvt
 
Eddy E

Eddy E

21/03/2021 21:06:19
Quote Anchor link
Met LEFT JOIN kan je in MySQL meerdere tabellen koppelen.
Zo krijg je toch alle data in 1 array terug die je kan aflopen.

Met SELECT onzinnaam AS voorkeurnaam kan je ook kolomnamen in 1 array-sleutel krijgen.
Gewijzigd op 21/03/2021 21:08:19 door Eddy E
 
Ad Fundum

Ad Fundum

22/03/2021 09:10:11
Quote Anchor link
Je vraagt het op een PHP forum dus het antwoord zal zijn: met PHP.
PHP kan zoekresultaten combineren en presenteren, de gebruikelijke manier is in een browser.

Voor presentatie heb je kennis nodig van PHP, HTML, liefst ook CSS en eventueel JavaScript.
Voor het binnenhalen van zoekresultaten heb kennis nodig van waar je de gegevens vandaan kunt halen, zoals cURL, PDO en SQL, bestandssystemen, of documentatie van de API die je gebruikt.

Tutorials staan op verschillende sites, maar een veelgebruikte is https://www.w3schools.com
Documentatie over de verschillende PHP-onderdelen staan op https://secure.php.net
 
Joris R

Joris R

22/03/2021 12:47:53
Quote Anchor link
Hoi allemaal, bedankt voor de antwoorden en excuus voor mijn late antwoord!

Ik gebruik cURL voor de api requests, maar mocht een gebruiker zoeken naar bijvoorbeeld 'feedback' dan wil ik bovenaan de resultaten al een feedback formulier plaatsen (zoals een zoekmachine informatie laat zien als een rekenmachine bij een zoekopdracht waar een berekening in voorkomt, of een stuk tekst bij een antwoord).

Ik moet mij nog even inlezen over elasticsearch e.d. want hier heb ik geen ervaring mee, maar bedankt!
 
Thom nvt

Thom nvt

22/03/2021 12:53:43
Quote Anchor link
Om bijv. een specifiek formulier of een rekenmachine te tonen kun je (een deel van) de zoekstring matchen.
Dat kan prima in PHP, zelfs zonder database:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
if (str_contains($_POST['zoekopdracht'], 'feedback')) {
    // Toon feedback-formulier
}


Op een vergelijkbare manier kun je rekenmachine opdrachten herkennen d.m.v. een RegEx.
 
Ad Fundum

Ad Fundum

23/03/2021 09:11:06
Quote Anchor link
Dat is de eerste keer dat ik PHP 8 code aangereikt zie worden :-)
 
Thom nvt

Thom nvt

23/03/2021 09:13:48
Quote Anchor link
Je moet een beetje met je tijd mee gaan, ik ben erg gecharmeerd van PHP 8 :)
In eerdere PHP versies is dit natuurlijk ook prima op te lossen, bijv. met strpos().
 
Ad Fundum

Ad Fundum

23/03/2021 19:37:52
Quote Anchor link
Wil ik ook wel, maar zit nog op Debian met 7.3.
 
Joris R

Joris R

25/03/2021 11:27:42
Quote Anchor link
Thom nvt op 22/03/2021 12:53:43:
Om bijv. een specifiek formulier of een rekenmachine te tonen kun je (een deel van) de zoekstring matchen.
Dat kan prima in PHP, zelfs zonder database:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
if (str_contains($_POST['zoekopdracht'], 'feedback')) {
    // Toon feedback-formulier
}


Op een vergelijkbare manier kun je rekenmachine opdrachten herkennen d.m.v. een RegEx.


Wauw! Dit is precies wat ik zocht, heel erg bedankt!
 



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.