Query: Hoe aanpakken?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Delphi Programmeur

Functie omschrijving Onze opdrachtgever is gespecialiseerd in kantoor-bedrijfssoftware en zit gevestigd in omgeving Numansdorp. Als programmeur ben jij bij dit bedrijf met het volgende bezig; Je vertaalt technische en functionele ontwerpen naar kwalitatieve software. Je ontwikkelt, ontwerpt en test software. Je maakt daarbij veel gebruik met de volgende tools & technologieën: Delphi 10.3 (Rio), QuickReport 6. Je krijgt in deze rol veel vrijheid en verantwoordelijkheid. Je levert projecten van A - Z op, en werkt daarbij projectmatig en gestructureerd. Bedrijfsprofiel Dit bedrijf richt zich op maatwerk software oplossingen. Deze software oplossingen worden ingezet in de financiële branche. Het betreft een

Bekijk vacature »

C# .NET Developer

Functieomschrijving Voor dit leuke softwarre bedrijf in de omgeving Vught zijn we per direct op zoek naar een C#/.NET Developer. Is development jouw passie en doe je dit graag met C#/.NET? Lees dan snel verder! Jou werkzaamheden zullen zijn: Zorgen voor de optimalisatie van de huidige software en het automatiseren van bedrijfsprocessen. Naar aanleiding van de wensen van de klant ga je, met je collega's op zoel naar passende oplossingen en je werkt dit uit tot een mooi eindproduct. Je gaat webshops, websites en webapplicaties ontwikkelen door middel van ASP.NET, C# en MVC Framework. Bedrijfsprofiel Deze opdrachtgever houdt zich bezig

Bekijk vacature »

C# .NET Developer

Functie omschrijving Wij zijn op zoek naar een C# .NET Developer voor een leuke opdrachtgever in de omgeving van Hilversum! Voor een leuk bedrijf in de omgeving van Hilversum zijn wij op zoek naar een Back-end developer die klaar is voor een nieuwe uitdaging. Ben jij iemand die graag aan verschillende projecten werkt en het ook leuk vindt om bij klanten op bezoek te gaan? Dan ben jij de perfecte kandidaat! Deze functie is erg divers, je moet dus goed kunnen schakelen. Je komt te werken in een klein team van developers. Binnen het bedrijf hangt er een gemoedelijke informele

Bekijk vacature »

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Scrum Master

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 Scrum master op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je begeleidt twee teams binnen de afdeling Platform Services (PLS). Je helpt mee de devops manier van werken van de teams verder door te ontwikkelen. Je helpt de PO bij het managen van de product backlog; het voorbereiden van

Bekijk vacature »

Developer

Functie omschrijving Gaat jouw hart sneller kloppen van software developen in C#.NET? Voor een softwarebedrijf in regio Den Bosch zijn wij op zoek naar een C# programmeur. Lees snel verder! Wat ga je doen? Je gaat werken met C# en ASP.NET MVC Framework om onder meer webapplicaties, webshops en websites te ontwikkelen. Je optimaliseert de bestaande software en helpt mee aan het automatiseren van bedrijfsprocessen. Je gaat samen met je collega's de juiste oplossing op basis van de wensen van de klanten uitwerken tot een mooi product. Bedrijfsprofiel Het ontwikkelen van softwareoplossingen en kantoorautomatiseringen is waar dit bedrijf voor staat.

Bekijk vacature »

Software Developer .NET

Functie omschrijving .NET developer gezocht! Wij zoek op zoek naar een .NET Developer die zich niet uit het veld laat slaan voor een software bedrijf in de regio Veenendaal. Je gaat in deze functie aan de slag met het door ontwikkelen van bestaande producten en het ontwikkelen van nieuwe producten. Dit bedrijf ontwikkeld SaaS applicaties die zowel intern als extern gebruikt worden. Verder bestaat je functie uit: Het ontwikkelen en bouwen van webapplicatie, mobiele applicaties en websites vallen onder jouw verantwoordelijkheden; Werken met onder andere .NET, C#, HTML/CSS, Javascript en MSSQL/Oracle Databases; Hierin werk je samen met andere developers en

Bekijk vacature »

Medior front-end developer gezocht (€3.300 -

Functie Wat ga je doen? Jij als front-end developer gaat werken binnen de teams van/voor onze klant. Je werkt in een team met starters en ervaren ontwikkelaars met allemaal 1 overeenkomst; passie voor het vak. Maak je een fout? Geen probleem, leer ervan en ga dan weer door. Door de variëteit aan werk kun je in verschillende omgevingen een kijkje nemen en jezelf dus snel ontwikkelen. Wat hebben we jou te bieden? • Uitdagende projecten bij mooie klanten (bij jou in de buurt, of binnenkort intern vanuit ons kantoor!) • Een jonge organisatie met talentvolle collega’s • Veel ruimte voor

Bekijk vacature »

Web Developer

Bedrijfsomschrijving ENGIE Nederland is onderdeel van de beursgenoteerde ENGIE Groep. ENGIE is actief in 70 landen, met wereldwijd 150.000 medewerkers. Als groep is het de missie om bij te dragen aan de verduurzaming van de wereld. ENGIE Energie biedt energiediensten aan particulieren en grootzakelijk en gaat de uitdagingen van de energietransitie aan door het beschikbaar maken van duurzame energie, het streven de klimaatverandering tot een minimum te beperken, leveringszekerheid te bieden en zorg te dragen voor een verantwoord gebruik van de beschikbare resources. ENGIE Energie investeert daarom in hernieuwbare energiebronnen zoals zon, wind en bio-gas. Functieomschrijving Heb jij veel ervaring

Bekijk vacature »

Back-end developer

Dit ga je doen Development d.m.v. XQuery, JSON/XML en REST API's; Ontwikkelen aan een tof en complex zorgplatform; Koppelingen maken met de NoSQL database; Testen en documenteren van de ontwikkelde functionaliteiten; Samenwerking met andere front- en back-end ontwikkelaars. Hier ga je werken Voor een vooruitstrevende organisatie binnen de zorg in Den Haag zijn wij opzoek naar een Back-end Developer die ervaring heeft met o.a.XQuery en Vue.JS of daarin graag zou willen ontwikkelen. Je zal ontwikkelen aan een tof en complex zorgplatform en koppelingen maken met de NoSQL database. Ook het testen en documenteren van de ontwikkelde functionaliteiten behoort tot jouw

Bekijk vacature »

Remote - Front-end Angular developer

Functie The IT team currently consists of the IT Manager, 2 back-end developers, 1 full-stack developer, 1 designer, and a DevOps engineer. They are currently looking for an experienced Front-end developer who will work autonomously and in a disciplined manner, being the only developer working on their Front-end applications at the start. They do have the ambition to find a second developer soon, who you will then be able to supervise. You will be working on the further development of their existing UI in Angular. But also developing a mobile app. They place great value on User Experience and opt

Bekijk vacature »

Java developer Zorgsysteem

Dit ga je doen Werken aan het eigen gebouwde zorgsysteem; Verbeteringen maken en toepassen binnen de applicatie; Jij gaat werken aan de Back-end van de applicatie en sporadisch werk je mee aan de Front-end; Samenwerken met andere teams voor een optimaal resultaat; Jij kan 'clean' werken en high quality code schrijven; Jij werkt resultaatgericht. Hier ga je werken De organisatie houdt zich bezig met diverse applicaties met betrekking tot zorgregistratie. Dankzij hun systeem komt alle informatie, omtrent de zorg van een patiënt, op een overzichtelijke en toegankelijke manier samen in één systeem te staan. Op deze manier is deze informatie

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET ontwikkelaar start jij in een ontwikkelteam met 7 .NET developers. In ons team werken er drie senior .NET developer, twee medior .NET developers en twee junior .NET developers. Er is dan ook genoeg senioriteit in ons team om jou te kunnen bieden wat jij nodig hebt! Wij werken in scrum en hebben drie wekelijkste sprints. Daarnaast doen wij minimaal vier keer per jaar een release. Ons platform is ontzettend complex en groot. Het is dan ook in het begin belangrijk dat jij de processen gaat begrijpen. Jij krijgt dan ook een cursus om beter te begrijpen

Bekijk vacature »

.NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

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 »

Pagina: 1 2 volgende »

Marina janssen

marina janssen

20/02/2016 23:38:49
Quote Anchor link
Ik heb een kolom Kleur in een database. De inhoud ziet er zo uit: bijv. zwart/wit of zwart/wit/rood of rood/wit/zwart of wit/zwart/rood of wit/rood etc.

Nu wil ik dat je met checkboxes kleuren kan selecteren. Dus als je kiest [wit] [zwart] en [rood], dat alle beesten met die kleuren (ongeacht de volgorde in de kolom) tevoorschijn komen.

Weet iemand welke functie je daarvoor kan gebruiken?
 
PHP hulp

PHP hulp

18/12/2024 03:12:56
 
Thomas van den Heuvel

Thomas van den Heuvel

20/02/2016 23:57:50
Quote Anchor link
Is het voldoende dat die beesten een of meer van die kleuren hebben, of moet de combinatie (ongeacht de volgorde) precies overeenkomen?

Of wil je kunnen kiezen of het kleur X en kleur Y en kleur Z is (alles inclusief), of kleur X en/of kleur Y en/of kleur Z (alles optioneel)?
 
Marina janssen

marina janssen

21/02/2016 00:32:21
Quote Anchor link
De combinatie moet precies zijn. Dus als je wit, rood en zwart hebt aangevinkt dat moeten ze minimaal alledrie die kleuren hebben. (in eerste voorbeeld zou je drie records krijgen )

NB
Ze mogen wel meer kleuren hebben. Dus als er een dier is dat bijv. wit/rood/zwart/beige is dan moet die er ook uitrollen.
Gewijzigd op 21/02/2016 00:36:35 door marina janssen
 
Frank Nietbelangrijk

Frank Nietbelangrijk

21/02/2016 08:39:03
Quote Anchor link
Je mag wat mij betreft die kolom kleuren direct uit je tabel halen.

Dan mag je een tabel kleuren aanmaken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
ID Kleur
========
1  Wit
2  Rood
3  Zwart
...


En vervolgens mag je een koppeltabel maken (user_kleur):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
user_id Kleur_id
================
   1       1     // gebruiker 1 heeft kleur Wit geselecteerd
   1       3     // gebruiker 1 heeft kleur Zwart geselecteerd
   2       1     // gebruiker 2 heeft kleur Wit geselecteerd
   2       2     // gebruiker 2 heeft kleur Rood geselecteerd
   2       3     // gebruiker 2 heeft kleur Zwart geselecteerd
...


Elk record in die laatste tabel is een aangevinkte checkbox in je formulier (van een bepaalde gebruiker).

Nu wil je weten welke kleuren gebruiker 1 geselecteerd heeft:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
SELECT k.id, k.kleur FROM kleur k
JOIN user_kleur uk ON k.id = uk.kleur_id
WHERE k.user_id = ?

- In bovenstaande sql wordt gebruik gemaakt van JOIN om twee tabellen te koppelen
- Ook worden aliasses gebruikt. k staat voor de tabel 'kleur' en uk staat voor de tabel 'user_kleur'
- Op de plek van het vraagteken moet het ID van de gebruiker komen
Gewijzigd op 21/02/2016 11:55:27 door Frank Nietbelangrijk
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

21/02/2016 10:24:02
Quote Anchor link
Gebaseerd op Frank zijn opzet (ik heb alleen de tabel- en/of kolomnamen wat veranderd) kan je met de volgende query dan het gevraagde ophalen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
SELECT d.naam,
    GROUP_CONCAT(k.kleur ORDER BY k.kleur SEPARATOR '/') kleuren
FROM dieren d
JOIN dieren_kleuren c
    ON d.dier_id = c.dier_id
JOIN kleuren k
    ON c.kleur_id = k.kleur_id
WHERE c.kleur_id IN (1,3)
GROUP BY d.naam
HAVING COUNT(*) >= 2
Gewijzigd op 22/02/2016 09:21:54 door Ger van Steenderen
 
Frank Nietbelangrijk

Frank Nietbelangrijk

21/02/2016 11:50:45
Quote Anchor link
* knip * (sorry wilde mijn vorige post wijzigen maar ik had het verkeerde knopje)
Gewijzigd op 21/02/2016 11:53:36 door Frank Nietbelangrijk
 
Thomas van den Heuvel

Thomas van den Heuvel

21/02/2016 14:42:02
Quote Anchor link
Een alternatieve aanpak is de volgende:
Geef de kleur een code dat een getal is wat een macht van 2 is:
wit = 1 (2 tot de macht 0)
zwart = 2 (2 tot de macht 1)
rood = 4 (2 tot de macht 2)
(enzovoorts, 8, 16, 32, 64 etc.)

In je "beesten" tabel kun je dan in één kolom de kleuren die een beest rijk is opslaan. Dit is dan de optelsom van deze codes. Bijvoorbeeld een witrood (of roodwit) beest heeft kleurcode 5 (1 + 4), een witzwart (of zwartwit) beest heeft code 3 (1 + 2).

Omdat de kleurcode is opgebouwd uit getallen die een macht van 2 zijn, is elke kleur uniek afleidbaar uit deze optelsom.

En hoe lees je dit weer uit een tabel als je op zoek bent naar een of meer specifieke kleuren? Dit doe je (onder andere) met de bitwise operator &. Deze operator werkt op twee waarden (operanden) net zoals de operator + werkt op A en B in de rekensom A + B. Maar wat is de uitkomst van A & B? Deze operator vergelijkt elke overeenkomende bit (lees: macht van 2) in A en B met elkaar. De uitkomst van deze som is de optelsom van alle bitjes die zowel in A als B op "1" stonden.

Je moet het zo zien, elk getal is te representeren als een rij nullen en enen die overeenkomen met machten van 2. Hierbij lees je zo'n bitreeks van recht naar links. Neem bijvoorbeeld 10110 binair, dit komt overeen met (gelezen van rechts naar links):
0 x 2 tot de macht 0 = 0 +
1 x 2 tot de macht 1 = 2 +
1 x 2 tot de macht 2 = 4 +
0 x 2 tot de macht 3 = 0 +
1 x 2 tot de macht 4 = 16
-------------------------
22 decimaal.

Stel dat je wilt weten of de tweede bit en de derde bit (vanaf rechts gezien) "aan" staan, dan kun je dit vergelijken met het getal 0 + 2 + 4 = 6 via de & operator. De uitkomst van deze som moet ook 6 zijn.

Dit zou je bijvoorbeeld in MySQL als volgt kunnen doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT 22 & 6

De uitkomst hiervan is ook 6, dus de tweede en de derde bit van 22 staan aan.

Op een andere manier weergegeven:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
10110
00110 &
-------
00110


En op eenzelfde wijze, mogelijk heb je de parallel met je kleurcodes al gezien, kun je een beest-kleurcode vergelijken met een gewenste kleur(combinatie).
 
Marina janssen

marina janssen

21/02/2016 15:37:30
Quote Anchor link
Wat betreft het laatste voorbeeld met kleurcodes: stel ik heb wit, zwart en rood aangevinkt, dan komt de kat die zwart/wit/rood/beige is er dus niet uit rollen, vrees ik.
 
Thomas van den Heuvel

Thomas van den Heuvel

21/02/2016 16:03:18
Quote Anchor link
Jawel.

Stel:
zwart = 1
wit = 2
rood = 4
beige = 8

Wat je wilt is zwart + wit + rood = 7.
De kat met zwart + wit + rood + beige = 15.

15 & 7 is nog steeds 7. Oftewel, de selectie zwart + wit + rood levert ook beesten met zwart + wit + rood + whatever op.
 
Marina janssen

marina janssen

21/02/2016 19:56:55
Quote Anchor link
dit gaat boven mn pet
Ik zit hier al de hele middag naar te kijken maar tis alsof je chinees praat, dat van die kleurcodes begrijp ik nog wel maar hoe uit te lezen snap ik echt h e l e m a a l n i k s van
kan het niet makkelijker?
 
Ivo P

Ivo P

22/02/2016 14:14:19
Quote Anchor link
Thomas' manier werkt wel, maar is best complex om te begrijpen. Al is de berekening als je hem door hebt eigenlijk eenvoudig.

Ik zou gaan voor Franks benadering met een koppeltabel gaan
 
Thomas van den Heuvel

Thomas van den Heuvel

22/02/2016 14:40:49
Quote Anchor link
Mja, maar als je dan vervolgens @Ger zijn query hanteert, deze zul je elke keer moeten aanpassen op de selectie: het IN(...) deel (wat overeen moet komen met de kleur-id's) en de COUNT() (die overeen moet komen met het aantal geselecteerde kleuren). De complexiteit zit simpelweg op een andere plaats, is toch een beetje lood om oud ijzer.

Ook, als je wat boolse logica kent en kunt (& staat niet ver af van && en die zou, als je met PHP of JavaScript werkt, toch al redelijk vertrouwd moeten zijn) en enigszins kunt tellen in n-tallige stelsels (je bent het 10-tallige stelsel al gewend, de inwoners zijn de cijfers 0 t/m 9) dan staat het binaire stelsel (inwoners 0 en 1) hier ook niet zo ver vanaf. Maar ja, als je geen lijn kunt bespeuren in dit alles dan begrijp ik dat het lastig is. Wanneer je je dit eigen hebt gemaakt en terugkijkt is het eigenlijk meer van hetzelfde maar in een andere verschijningsvorm. In de vorm zit niet de moeilijkheid, want die kende je in zekere zin al.

Je zou "&" ook kunnen zien als een functie die twee argumenten accepteert. Als je begrijpt wat je invoert, en hoe de uitvoer totstand komt, dan snap je ook wat "&" in feite doet. Je zou dit simpelweg kunnen zien als de functionaliteit van &&, die twee booleans (twee bitjes, 0 of 1, false of true) accepteert. Het resultaat hiervan is alleen true (of 1) als beide bits true (1) zijn. Kijk nu nog eens naar deze som:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
10110
00110 &
-------
00110

Dit is een simpele rekensom, maar enkel met de cijfers 0 en 1 en een ander wiskundig symbool.
 
Marina janssen

marina janssen

22/02/2016 15:24:48
Quote Anchor link
machtsverheffen was ik echt helemaal vergeten
ik zit me nu in te lezen, ik moet gewoon helemaal bij het begin beginnen

ik leer nu alles over cijfertjes :)
http://code.tutsplus.com/tutorials/number-systems-an-introduction-to-binary-hexadecimal-and-more--active-10848
en als ik dat doorgeploegd heb, ga ik weer terug naar het hoofdstuk bitwise misschien snap ik het dan wel
 
Marina janssen

marina janssen

27/02/2016 23:48:51
Quote Anchor link
Thomas van den Heuvel:
Jawel.

Stel:
zwart = 1
wit = 2
rood = 4
beige = 8

Wat je wilt is zwart + wit + rood = 7.
De kat met zwart + wit + rood + beige = 15.




want 7 = 2<sup>3</sup>2<sup>2</sup>2<sup>1</sup>2<sup>0</sup>
0 1 1 1

15 = 2<sup>3</sup>2<sup>2</sup>2<sup>1</sup>2<sup>0</sup>
1 1 1 1

& ----------------------------------------------------------
0 1 1 1


Thomas van den Heuvel:


15 & 7 is nog steeds 7. Oftewel, de selectie zwart + wit + rood levert ook beesten met zwart + wit + rood + whatever op.


Ik heb er een week over gedaan, maar nu snap ik dat 15 ook 7 is.
Alleen nog niet helemaal hoe ik dat kan selecteren, maar misschien komt dat nog
Gewijzigd op 27/02/2016 23:51:55 door marina janssen
 
Thomas van den Heuvel

Thomas van den Heuvel

28/02/2016 17:04:35
Quote Anchor link
Quote:
Alleen nog niet helemaal hoe ik dat kan selecteren, maar misschien komt dat nog

Selectboxes kleuren[] maken met als waarde de unieke kleurcode, en dan, als je je zoekformulier submit (gebruikt $_GET, dat werkt doorgaans fijner) kijk je of "kleuren" ($_GET['kleuren'] dus) bestaat en tel je de waarden bij elkaar op met array_sum($_GET['kleuren'). Zoals eerder aangegeven kun je elke kleur uniek identificeren omdat elke kleurcode een waarde heeft die een macht van 2 is (1, 2, 4, 8, 16 etc.).
 
Marina janssen

marina janssen

28/02/2016 22:39:53
Quote Anchor link
Nou, het is (deels) gelukt (yeahhh!) :) Ik heb een kolom gemaakt met kleurcodes etc. Alleen wat ik niet begrijp is: waarom de paginatie de kleurcode niet kan onthouden na blz 1. Komt dat omdat het een array is?
De kleurcode wordt wel uitgelezen (opgeteld) uit de url. Ik doe precies hetzelfde als op andere pagina;s maar ik krijg array_sum() expects parameter 1 to be array als ik naar blz 2 (of verder) blader. heelp
 
Thomas van den Heuvel

Thomas van den Heuvel

29/02/2016 00:53:50
Quote Anchor link
Als je zoiets hebt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<form action="..." method="get">
...
<input type="checkbox" name="kleuren[]" id="kleuren_1" value="1"><label for="kleuren_1">zwart</label>
<input type="checkbox" name="kleuren[]" id="kleuren_2" value="2"><label for="kleuren_2">rood</label>
<input type="checkbox" name="kleuren[]" id="kleuren_4" value="4"><label for="kleuren_4">wit</label>
<input type="checkbox" name="kleuren[]" id="kleuren_8" value="8"><label for="kleuren_8">beige</label>
...
<button type="submit">zoek</button>
</form>

Dan komt dit op de volgende manier in je URL:
zoekscript.php?kleuren[]=1&kleuren[]=4&...

Je moet dan wel zorgen dat je alles op een of andere manier overneemt als er iets is aangevinkt.

Denk eraan dat niet aangevinkte checkboxen in het geheel niet worden verstuurd, je zult dus op het bestaan van $_GET['kleuren'] (of $_POST['kleuren'] als je de POST method gebruikt) moeten controleren.
 
Marina janssen

marina janssen

29/02/2016 23:45:23
Quote Anchor link
Allereerst nogmaals dank voor alle moeite die jij (en ook de anderen) nemen om te helpen php te begrijpen.

Stel ik vink grijs en wit aan. (wit= 1 en grijs =2)

Dan is de url van blz 1: kleurcodes.php?Code[]=1&Code[]=2

Maar als ik naar blz. 2 ga, (nog steeds zelfde checkboxes dus) dan is de url: kleurcodes.php?Code=3&page=2

Vraag 1: Ik snap niet waarom hij op blz 1 de ingevoerde codes exact weergeeft als Code[]=1&Code[]=2 in de url maar ze optelt als ik naar pag 2 ga. Want ik stop $Code in de query en de var_dump daarvan is 3 (op blz. 1).

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if(isset($_GET['Code'])) {
     $Code = array_sum($_GET['Code']);
   var_dump($Code);
?>

Vraag 2:
Hoe krijg ik Code[]=1&Code[]=2 in de url op blz 2 ipv Code=3

Vraag 3:
Waarom blijft mn query eigenlijk leeg op blz 2 bij Code=3? De Code is 3! Ben ik nou gek???

Vragen, vragen vragen ...
 
Ward van der Put
Moderator

Ward van der Put

01/03/2016 09:46:01
Quote Anchor link
Marina janssen op 29/02/2016 23:45:23:
Dan is de url van blz 1: kleurcodes.php?Code[]=1&Code[]=2

Maar als ik naar blz. 2 ga, (nog steeds zelfde checkboxes dus) dan is de url: kleurcodes.php?Code=3&page=2

Vraag 1: Ik snap niet waarom hij op blz 1 de ingevoerde codes exact weergeeft als Code[]=1&Code[]=2 in de url maar ze optelt als ik naar pag 2 ga. Want ik stop $Code in de query en de var_dump daarvan is 3 (op blz. 1).
Dat doe je toch echt zelf, want je telt 1 + 2 op met array_sum():
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if(isset($_GET['Code'])) {
     $Code = array_sum($_GET['Code']);
   var_dump($Code);
?>

Als je toch gaat pagineren, waarom sla je de keuzen van pagina 1 dan niet even op in een sessie voordat je pagina 2 toont?
 
Thomas van den Heuvel

Thomas van den Heuvel

01/03/2016 14:40:00
Quote Anchor link
vraag 1: dat doe je waarschijnlijk zelf op een of andere manier

Quote:
Als je toch gaat pagineren, waarom sla je de keuzen van pagina 1 dan niet even op in een sessie voordat je pagina 2 toont?

Omdat het een zoekformulier is. Waarbij je een resultaat op deze manier makkelijk kunt bookmarken. Je hebt dan precies alle data die je nodig hebt in je URL. Je hebt dan geen externe hulpstukken in de vorm van een sessie nodig. Deze oplossing is stateless (of iig "self contained").

vraag 2: URL opbouwen / uitschrijven; plak voor elke geselecteerde kleurcode <separator>code[]=<kleurcode> vast aan de querystring. Waarbij <separator> ofwel een ? is, of een & en <kleurcode> de geselecteerde kleurcode, dit kan met een eenvoudig loopje die $_GET['Code'] doorloopt, nadat je hebt gecontroleerd of $_GET['Code'] bestaat.

vraag 3: waarschijnlijk omdat $_GET['Code'] op dat moment geen array meer is. Het resultaat van array_sum($_GET['Code']) levert op dat moment niks op (of liever gezegd NULL, wat mogelijk nog omgezet wordt naar het cijfer 0). Dit produceert tevens een warning. Je zou altijd moeten ontwikkelen met het ingeschakeld zijn van het melden + weergeven van fouten. Zet de bovenstaande code aan het begin van scripts waar je aan ontwikkelt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
error_reporting(E_ALL);
ini_set('display_errors', 'stdout');
?>

Dan worden dit soort fouten meteen evident.
 
Marina janssen

marina janssen

06/03/2016 19:06:21
Quote Anchor link
edit: Alles werkt nu.

Maar ik snap een ding nog niet helemaal mbt het selecteren.
Als ik bijv. rood en wit invul in het formulier en opvraag met select, dan krijg ik alleen de katten die daar exact aan voldoen. Dus de katten die rood/wit zijn en de katten die wit/rood zijn.
Op zich kan ik daar prima mee leven maarrrrr je zei ergens dat de rood/wit/zwarte katten er dan ook uit zouden rollen maar dat gebeurt niet. Dus de vraag is: heb ik iets niet goed begrepen of niet goed uitgevoerd?
dit is mn query
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if(isset($_GET['Code'])) { $Code = array_sum($_GET['Code']);

$sql = "SELECT Nummer FROM katten WHERE Code = $Code";
    $records = mysqli_query($conn, $sql);
    $rows = mysqli_num_rows($records);
    $pages = ceil($rows / $perpage);
    $rec = "SELECT Nummer, Naam, Kleur, Geslacht, Vacht, Ras, Bijzonderheden, DATE_FORMAT(Datum,'%d/%m') AS Datum, FROM katten WHERE Code ='$Code' ORDER BY Nummer_id DESC LIMIT $start, $perpage";

    
$result = mysqli_query($conn, $rec);
etc etc
 ?>
Gewijzigd op 06/03/2016 23:27:32 door marina janssen
 

Pagina: 1 2 volgende »



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.