iets als array in de db moet op gefilterd worden
in een database heb ik een kolom gemaamd types, hierin staan types van automerken. Hieruit wil ik op een bepald type kunnen filteren.
ik heb op 1 regel bijvoorbeeld de volgende types staan
C15, C15, C35
en op een andere regel
C1, C2, C3
nu wil ik filteren op C15 doormiddelen van "type LIKE '%$type%'"
nu gaat dat met C15 goed en wordt alleen de bovenste regel opgehaald
gebruik ik nu C1 wordt het een ander verhalen want dan worden beide regels opgehaald.
Nu kan ik het oplossen door alles uit de db te trekken te exploden op ", " en dan kijk op het in_array is. 1 probleem: mijn webserver vind dit geen leuk tefereel.
dus is er niet een manier voor om dat al te doen voordat het uit de db getrokken wordt?
Alvast bedankt voor de hulp.
Groetjes,
Michel
Ook achter de laatste een komma zetten dan kan je op LIKE '%C1,% filteren.
bedankt voor het denkwerk (Y)
dat wordt alleen wel 200 regels doorlopen.
Groetjes,
Michel
Bedoel je in de database? Even een simpele update query maken en klaar.
ik was inderdaad al iets aan het schrijven, had toen ik het bericht type er even geen erg in dat ook daarvoor PHP weer perfect te gebruiken is.
Even tussendoor: je datamodel is verkeerd. Je hebt een aantal types in 1 record, gescheiden door een komma.
hoe bedoel je dat?
tabel 'types'
id
type
tabel 'merken'
id
merk
tabel 'merken_types'
type_id
merk_id
het enigste probleem is is dat het er niet sneller op wordt :(
Als je kijkt naar mijn vorige voorbeeld dan zou je type C15 met een query als deze zo op kunnen halen:
SELECT m.merk, t.type
FROM merken AS m, types AS t, merken_types AS mt
WHERE t.type = 'C15'
AND t.id = mt.type_id
AND m.id = mt.merk_id