syntax mysqli query

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Java Developer

Jij volgt ontwikkelingen op de voet. Sterker nog: je bent er een onderdeel van. Jij loopt voorop. Jij denkt met klanten mee en helpt hen innoveren. Zo kun jij een bijdrage leveren aan de Rabobank-app, de beveiliging van treinen voor Pro-rail verbeteren of de website van ING een boost geven. Vergaderen? Liever gewoon zorgen dat het werkt! Hoe omschrijft men een Sogetist? Gedreven, resultaatgericht en niet snel tevreden. Wat niet wil zeggen dat je nooit met hem of haar kunt lachen. Integendeel. Plezier hoort wat ons betreft net zo goed bij werken. Maar we gaan op de eerste plaats voor

Bekijk vacature »

Young Professional Front-end Developer

Jij weet wat er nodig is. Jouw hart gaat sneller kloppen van techniek. Jij wil vooruit. Vacature Front-end Developer per 1-7-2019 Je bent creatief, thuis in gebruikersinteractie en een gedreven developer in hart en nieren. Daarnaast heb jij een klantgerichte en proactieve houding. Precies de kwaliteiten die een Front-end Developer nodig heeft. Aan de slag als Young Professional Front-end Developer Als Front-end Developer werk je aan de technische realisatie van front-end (web)applicaties in de verschillende uitdagende opdrachten voor Sogeti’s klanten. Dit kan zowel op klantlocatie zijn, als intern bij Sogeti. Jij houdt van het uitdenken en implementeren van responsive (web)

Bekijk vacature »

Business Analist ICT

Wat ga je doen? Door jouw inzicht in onze bedrijfsprocessen ben je in staat om (functionele) vragen / wensen vanuit de business te begrijpen en te vertalen naar concrete ICT-oplossingen. Nadat je de functionele wensen en eisen in kaart hebt gebracht en geanalyseerd, start je met het uitvoeren van een vooronderzoek waarbij je verschillende oplossingsalternatieven onderzoekt en tegen elkaar afweegt. Daarbij denk je verder dan alleen het onderzoeken van de initiële vraag. Zo overzie jij de gevolgen van de veranderingen voor de diverse processen / systemen, kijk je wat het beste in het huidige ICT-landschap past en kijk je groepsbreed

Bekijk vacature »

.NET C# developer, .NET CORE, Typescript, React, K

Voor een ambitieuze en snelgroeiende organisatie in Ridderkerk zijn we momenteel op zoek naar een .NET C# developer. De organisatie bestaat inmiddels ruim 15 jaar en heeft een systeem ontwikkeld waarmee bedrijven de informatie van grote en complexe projecten beter kunnen managen. Dit systeem is geheel webbased. Om hun globale ambities waar te maken zijn ze recentelijk begonnen het systeem geheel te herbouwen met de nieuwste technieken. Denk hierbij aan technieken als .NET.CORE, Typescript, React, Kubernetes en Azure. Niet alleen betekent voldoende nieuwe technische uitdaging maar ook betekent dit dat je voor 80 tot 90% van je tijd aan nieuwbouw

Bekijk vacature »

digitaal specialist

Wat ga je doen? Als digitaal specialist speel je een belangrijke rol in de opsporing van strafbare feiten in digitale omgevingen. Je bent de intermediair tussen de digitale techniek en de recherche en adviseert over een effectieve aanpak. Je bent volledig bij complexere opsporings- onderzoeken betrokken. Je houdt je bezig met het verzamelen, combineren en analyseren van gegevens uit diverse digitale bronnen. Hierdoor maak je het mogelijk om menselijke handelingen te interpreteren uit digitale gegevens die standaard forensische middelen niet inzichtelijk kunnen maken. Op basis van jouw bevindingen kan verder onderzoek gedaan worden. Je werkt zowel zelfstandig als in teamverband.

Bekijk vacature »

IT Inkoper

Ons IT Support Team Ons IT Support Team is het eerste aanspreekpunt voor onze game ontwikkelaars. We leveren technische ondersteuning en zorgen dat de medewerkers alle nodige hard- en software tot hun beschikking hebben om geweldige entertainment ervaringen te ontwikkelen. Om ons snel groeiende IT infrastructuur en ons maximale prestatiestandaarden te verzekeren, zoeken we een ervaren IT Inkoper. Daarbij wordt je verantwoordelijk gesteld voor de binnenkomende incidenten. Als onze 8e teamlid ga je onderdeel uitmaken van een divers en ervaren IT team. Kortom, een rol met verschillende verantwoordelijkheden en veel uitdaging! Wat ga je doen? Je bent verantwoordelijk voor het

Bekijk vacature »

Medior .Net Developer Salaris administratie Webapp

Medior .Net Developer Salaris administratie Webapplicatie Wat ga je doen? Als Medior .Net Developer ga jij werken voor een specialist op het gebied van Salarisadministratie. Als specialist zijn ze continu op de hoogte van de juiste wet- en regelgevingen rondom arbeidsrecht en CAO's. Dit verandert regelmatig en ondernemers besteden dit liever uit aan een specialist. Het gaat daarbij met name om: toepassen van de juiste, complexe wet- en regelgeving, afdekken van arbeidsrechtelijke risico's en het afdekken van financiële risico's voor ondernemers. Dit doen zij voor meer dan 10.000 werknemers in Nederland. Jouw webapplicatie ondersteunt hen hierbij met diverse features zoals;

Bekijk vacature »

Data Consultant

Data Consultant Stap in de dynamische wereld van het maken van digitale kaarten. Bij AND Products zetten wij momenteel een tandje bij en zetten wij in op de toenemende vraag naar geografische data voor autonomousdriving en real-time map updating. Om onze ambities waar te maken, zoeken wij per direct voor ons kantoor in Rotterdam (Capelle a/d IJssel) een enthousiaste Data Cunsultant. Als Data consultant ben je verantwoordelijk voor: Acquisitie van nieuwe geografische databronnen Source management Beheren van contracten Het leiden van sourcing gerelateerde projecten Kwaliteitscontrole van (navigatie) data en andere locatie- en kaartgerelateerde producten Ontwikkelen van tests en opmaken van

Bekijk vacature »

Business Intelligence developer

Jij ben niet bang om hard te werken. Uitdagingen zijn welkom. En problemen? Die zijn er om opgelost te worden of, nog beter, om voorkomen te worden! Voor jij aan de slag gaat met het ontwerpen van BI- en DWH-oplossingen, leg je eerst je oor te luister bij de klant. Zo weet jij wat de klant wil, en hoe jouw ontwerp eruit moet komen te zien. Simpel! Althans… met jouw Developer-kwaliteiten wel! Over deze BI vacature Als Business Intelligence Developer ga je zowel op locatie bij de klant aan de slag, als op een van de Sogeti-locaties. Je analyseert de

Bekijk vacature »

Python Developer vacature

Jij volgt ontwikkelingen op de voet. Sterker nog: je bent er onderdeel van. Jij loopt voorop. Jij denkt met klanten mee en helpt hen innoveren. Zo kun jij een bijdrage leveren aan de Rabobank-app, de beveiliging van treinen voor Pro-rail verbeteren of de website van ING een boost geven. Vergaderen? Liever gewoon zorgen dat het werkt! Hoe omschrijft men een Sogetist? Gedreven, resultaatgericht en niet snel tevreden. Wat niet wil zeggen dat je nooit met hem of haar kunt lachen. Integendeel. Plezier hoort wat ons betreft net zo goed bij werken. Maar we gaan op de eerste plaats voor de

Bekijk vacature »

Java Backend Developer

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 werk je mee aan de architectuur laag. Daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het software ontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je ondersteunt de software architect en projectleider bij hun werkzaamheden. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak

Bekijk vacature »

Angular Developer gezocht in Amsterdam-Noord

Functieomschrijving In verband met continue groei is behoefte aan een ervaren Frontend/Angular Developer. Je komt terecht in een omgeving waar een hoge mate van zelfstandigheid van je verwacht wordt. De kern van jouw werkzaamheden bestaat uit het verder uitbouwen van de interface van de applicatie, waarbij je gebruik maakt van Angular. Hiervoor wordt pas sinds kort Angular gebruikt, voorheen werd dit enkel met Javascript gedaan. In jouw functie is veel ruimte voor eigen inbreng. Het is belangrijk dat je sowieso Angular gebruikt, maar verder heb je vrijheid in het kiezen van de andere talen waarmee jij wil werken. Ook wanneer

Bekijk vacature »

Java Full Stack Developer

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Full Stack Developers om ons development team te versterken. Als Full Stack developer werk je in Agile teams bij onze klanten en ben je verantwoordelijk voor alle lagen van de stack. Ben je beter in de backend, dan helpen we je verder met de front-end en andersom natuurlijk. Je gaat hoogwaardige software maken voor verschillende opdrachtgevers in jouw regio. Je ontwikkelt, adviseert over architectuur en past de nieuwste technologieën toe. Je bent een professional die het IT-vak serieus

Bekijk vacature »

Full-Stack Developer

Voor onze opdrachtgever in Amsterdam zijn wij op zoek naar een Full-Stack Developer die net zo hard wil groeien als de organisatie in kwestie. Omdat je als Full-Stack Devloper de hele software stack waarop de software wordt ontwikkeld overziet zoeken wij een IT specialist met een brede technische expertise om zelfstandig aan de slag te kunnen met het ontwikkelen van functionaliteiten. Als Full-Stack Developer programmeer jij zowel frond-end als back-end en ontwikkel je nieuwe functionaliteiten. Daarnaast bedenk en bespreek je oplossingen voor de binnen komende vraagstukken om constant verbeteringen aan te kunnen brengen. Je gaat samenwerken met hooggekwalificeerde professionals die

Bekijk vacature »

Programmeur

Functieomschrijving Je hebt een ondersteunende rol bij de uitvoer van de projecten en voert zelfstandig projecten uit. Het is tenslotte een team waarin er altijd wordt samengewerkt, om zo de continuïteit en kennis te waarborgen. Je bent bezig met het aanpassen en ontwikkelen van embedded software, en soms ook desktopapplicaties. Je ontwerpt elektronische schakelingen en printplaten. Er wordt van je verwacht dat je op de hoogte bent van de ontwikkelingen binnen het bedrijf en de branche. Een bijdrage aan de kwaliteit van de bedrijfsvoering is belangrijk, bijvoorbeeld door zowel gevraagd als ongevraagd te adviseren over verbeteringen. Je maakt ook regelmatig

Bekijk vacature »
Peter Kroonenburg

Peter Kroonenburg

21/04/2019 22:11:38
Quote Anchor link
Wie kan mij aan de oplossing helpen?

In de variabele var1 staat “ABCD”

Onderstaande query moet foto’s laten zien als een van de waarden uit var1 voorkomt in veld groep_id.
Ik ben dus op zoek naar de juiste syntax in regel 3 van de query


$query_rs_foto = "SELECT * FROM foto ";
$query_rs_foto .= "WHERE ocatID='$ocatID' ";

//$query_rs_foto .= "AND groep_id LIKE $var1 ;” ;

$query_rs_foto .= "AND sub_ocatID='$sub_ocatID' ";
$query_rs_foto .= "ORDER BY foto_volgorde DESC ";
$rs_foto= mysqli_query($verbinding,$query_rs_foto) or die(mysqli_error());
$row_rs_foto = mysqli_fetch_assoc($rs_foto);
$totalRows_rs_foto = mysqli_num_rows($rs_foto);
 
PHP hulp

PHP hulp

25/05/2019 12:18:32
 
- Ariën -
Beheerder

- Ariën -

21/04/2019 22:30:04
Quote Anchor link
Ik mis de quotes om je $var1 en die punt-komma hoort er niet.

En goede gratis tip: echo ter debugging en testen eens $query_rs_foto voor je de query uitvoert. Dan zie je jouw volledige query.

Oh ja, je voert die regel nu niet uit, maar dat wist je vast al ;-)
Gewijzigd op 21/04/2019 22:31:08 door - Ariën -
 
Peter Kroonenburg

Peter Kroonenburg

21/04/2019 22:38:19
Quote Anchor link
Klopt. De quotes en de puntcomma foutje van mij. Maar wat is het geval Als ik in var1 alleen A zet krijg ik de foto's met A. Zet ik er C in krijg ik de foto's met C.
Dat werkt dus wel maar zodra in var1 AC staat krijg ik geen resultaat meer. Ik zou dus graag zien dat bij AC kuist allebei de foto's worden getoond.
 
- Ariën -
Beheerder

- Ariën -

21/04/2019 22:43:51
Quote Anchor link
Het zijn dus twee typen foto's die gegroepeerd zijn in reeks A OF reeks C?
 
Rob Doemaarwat

Rob Doemaarwat

21/04/2019 22:45:00
Quote Anchor link
Splits $var1 in losse karakters, en doe dan per karakter een LIKE (samenvoegen via OR)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$a = [];
foreach(str_split($var1) as $c) $a[] = "groep_id LIKE '%$c%'";
$query_rs_foto .= "AND (" . implode(' OR ',$a) . ")";
 
Thomas van den Heuvel

Thomas van den Heuvel

21/04/2019 22:45:30
Quote Anchor link
Een id-kolom in combinatie met een LIKE is sowieso een beetje vreemd. Het klinkt alsof je een koppeltabel mist en al deze informatie in die kolom gefrommeld hebt?

Een LIKE zonder wildcards (een underscore (_) voor een enkel karakter, een procentteken (%) voor nul of meerdere karakters) levert je ook niet zoveel op, want dan zouden het exacte matches moeten zijn. Meestal doe je zoiets als ... LIKE '%<frase>%' ... waarbij <frase> het ding is waarmee je vergelijkt.

Maar in dit geval (groepen (categorieën?) waartoe een foto zou moeten behoren) snijdt dat niet zoveel hout.
 
Peter Kroonenburg

Peter Kroonenburg

21/04/2019 23:03:08
Quote Anchor link
id is inderdaad wat verwarrend maar het is geen relatieveld. Kan <frase> wel een variabele zijn? Want %$var1% of '%'.$var1.'%' geeft ook foutmeldingen. Ik maak waarschijnlijk dus ergens een denkfout.
Simpel gedacht wilde ik bereiken als in de databaseveld groep_id een waarde voorkomt die ook in var1 staat dan True anders False.
 
Rob Doemaarwat

Rob Doemaarwat

21/04/2019 23:08:56
Quote Anchor link
Splits $var1 in losse karakters, en doe dan per karakter een LIKE (samenvoegen via OR)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$a = [];
foreach(str_split($var1) as $c) $a[] = "groep_id LIKE '%$c%'";
$query_rs_foto .= "AND (" . implode(' OR ',$a) . ")";
 
Peter Kroonenburg

Peter Kroonenburg

21/04/2019 23:28:48
Quote Anchor link
Perfecte oplossing Rob. Het werkt, bedankt allen voor de support!
 
Thomas van den Heuvel

Thomas van den Heuvel

22/04/2019 14:58:22
Quote Anchor link
Meh.

Simpelweg omdat iets werkt, maakt het nog niet juist.

Een oplossing met LIKE, hoe elegant de bovenstaande ook is, lijkt mij niet de juiste aanpak voor het bovenstaande vraagstuk.

Dit schreeuwt om een fotogroep-koppeltabel.

Wat je nu aan het doen bent is op een ingewikkelde (of "makkelijke", net hoe je het bekijkt he :)) manier coderen tot welke groep(en) een foto behoort, en vervolgens moet je je in allerlei bochten wringen om deze data weer uit de database te peuteren.

Dit soort coderingen zijn wellicht soms geoorloofd, maar niet in dit geval lijkt mij.

Merk ook op dat deze aanpak je query sterk kleurt (om het nog niet eens over de extra complexiteit of efficiëntie te hebben!), deze structuur bepaalt in sterke mate hoe de query er uit ziet. Dit is een signaal dat de databasestructuur niet zodanig is dat het makkelijk is om data weer uit de database te halen. Dit laatste zou altijd een streven moeten zijn: databases zijn bedoeld om data gestructureerd (en niet zozeer gecodeerd :p) op te slaan.

Eerlijk gezegd zou ik die extra mijl nemen en een extra tabelletje aanmaken. Wat je hierboven aan het doen bent is toch een beetje voortborduren op een verkeerde oplossing.

Ook wil je foto's straks anders gaan gebruiken waarbij het belangrijker wordt tot welke groepen deze behoren. Kun je met de huidige aanpak garanderen dat je dan niet hopeloos in de problemen komt?

Met deze oplossing schuif je dus ook potentieel werk voor je uit. Dit is na verloop van tijd mogelijk steeds lastiger aan te passen dus het nemen van deze "shortcut" leek nu wel slim maar die bijt jou later hoogstwaarschijnlijk in je broek.

Ook zou je een beetje vanuit een ander kunnen redeneren (karma?). Als iemand anders deze code van jou onder handen zou moet nemen, of als jij dit soort code van iemand anders op je bord krijgt, wat zou die persoon of jij daar van vinden? De eerste vraag is dan waarschijnlijk ook "waarom heeft deze gozer niet gewoon een koppeltabel gemaakt?".
Gewijzigd op 22/04/2019 15:10:29 door Thomas van den Heuvel
 
Rob Doemaarwat

Rob Doemaarwat

22/04/2019 15:50:47
Quote Anchor link
Andersom, als groep_id altijd maar een enkele letter bevat (een foto dus nooit aan meerdere groepen gekoppeld kan zijn), dan kun je gewoon IN (...) gebruiken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$query_rs_foto .= "AND groep_id in ('" . implode("','",str_split($var1)) . "')";
 
Thomas van den Heuvel

Thomas van den Heuvel

22/04/2019 16:17:33
Quote Anchor link
True, maar dan de naamgeving. Ik zou een letter ook niet typeren als een id. En om terug te komen op efficiency, je wilt ids doorgaans indexeren.
Gewijzigd op 22/04/2019 16:23:15 door Thomas van den Heuvel
 
Rob Doemaarwat

Rob Doemaarwat

22/04/2019 16:48:22
Quote Anchor link
Op zich kan een letter een prima ID zijn, en je kunt ze ook prima indexeren. Ivm afhankelijkheden verderop in de keten heb ik nog wel eens van doen met een base-36 ID (0..9 + A..Z, met voorloopnullen), werkt prima. Daarnaast ken ik ID's die toch niet "zomaar" ontstaan (dus geen artikelnummer ofzo - wat gewoon een volgnummer is dat de klant zelf "aan maakt", maar ID's die vaak een 1:1 relatie met een stukje code hebben - en dus ook eerst in code gedefinieerd moeten worden) gewoon een karakter of een (korte) string toe (echt als primary key). Voordeel is dat je in gekoppelde tabellen dan ook direct die letter of string terug ziet, en je bij het "data graven" (nav een probleem ofzo) niet steeds uit hoeft te vogelen wat ID = 35 ook alweer was (maar dat is dan gewoon "x" = status ID voor categorie "extra" - of zoiets).
 
Thomas van den Heuvel

Thomas van den Heuvel

22/04/2019 17:46:15
Quote Anchor link
Hier heb je het over meerdere ontwerpprincipes waartussen je kunt kiezen of die elkaar kunnen aanvullen. Auto increment id's zouden bij voorkeur alleen "intern" gebruikt moeten worden inderdaad. Er is ook niets mis met tekstuele representaties voor bepaalde toestanden (states). Je zou zelfs kunnen overwegen om hiervoor (naast een equivalent in de database) in PHP constanten te gebruiken. Allemaal prima. Maar groep_id "A" zegt mij niet zoveel. Ook zou ik niet weten hoe je deze opzet makkelijk beheert in een interface. Dan zul je elke keer alles moeten splitsen en samenvoegen...
Gewijzigd op 22/04/2019 21:34:33 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.