[PHP|MySQL] zoeken in tabel-rijen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • sjroorda
  • Registratie: December 2001
  • Nu online
Ik ben bezig met een zoekfunctie voor een website van een muziekvereniging, waarbij ik de mogelijkheid wil bieden (onder andere) in de componisten- en compositiedatabase te zoeken. Bijvoorbeeld de componisten-database bestaat uit velden als voornaam, achternaam, geboorteplaats en tekst.

Ik wil nu dat een entry teruggegeven wordt als de zoekterm in een van de velden voorkomt. Dat kan natuurlijk met

code:
1
2
3
4
5
SELECT * FROM componisten WHERE
     achternaam LIKE '%zoektermen[]%' OR
     voornaam LIKE '%zoektermen[]%' OR
     tekst LIKE '%zoektermen[]%' OR
     ...


maar dit is niet echt handig en/of efficient. Is er in MySQL een mogelijkheid om ites te zeggen als

code:
1
2
SELECT * FROM componisten WHERE
     any_table_field LIKE '%zoektermen[]%'?


Ben al een beetje aan het rondneuzen geweest in de MySQL-handleiding, en er staan veel leuke dingen in, maar dit net niet (denk ik...). Wie kan me helpen?

[ Voor 0% gewijzigd door sjroorda op 13-11-2002 09:52 . Reden: lay-out ]


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 12:54

Bosmonster

*zucht*

Zou je dat willen dan?

Dat als iemand een jaartal of leeftijd invuld dat ie de velden terugkrijgt waarin de ID van de rows gematched zijn? :P

Het lijkt er nu op dat je je druk maakt om de lengte van je QUERY.. snap niet helemaal waarom?

Acties:
  • 0 Henk 'm!

  • sjroorda
  • Registratie: December 2001
  • Nu online
Niet alleen de lengte van de query, maar ook om de omslachtigheid ervan: dit mag ik straks voor nog een aantal tabellen gaan doen. Als ik ooit besluit een naam van een veld te wijzigen (ok, dat zal ik nooit doen, maar toch...) of een veld toe te voegen, dan loopt mijn zoekfunctie uit de pas.

Je hebt gelijk als je zegt dat ik niet alle velden moet gebruiken, alleen een paar speciefieke. Maar ik weet nog niet wat mijn voorkeur heeft, daarom eerst even polsen wat er mogelijk is met queries.

Het is trouwens ook niet zo dat het een zeer goede en goed beveiligde zoekfunctie moet zijn: mocht er eens een foute link worden teruggegeven door een lullige zoekopdracht, dan moet dat maar :)

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 12:54

Bosmonster

*zucht*

Je kan natuurlijk altijd de meta-data uitlezen van je tabel en aan de hand daarvan een query samenstellen.. dan kun je ook een aantal voorgedefineerde namen uitsluiten natuurlijk (zoals ID ofzo).

Acties:
  • 0 Henk 'm!

  • sjroorda
  • Registratie: December 2001
  • Nu online
Bosmonster schreef op 13 november 2002 @ 10:21:
Je kan natuurlijk altijd de meta-data uitlezen van je tabel en aan de hand daarvan een query samenstellen.. dan kun je ook een aantal voorgedefineerde namen uitsluiten natuurlijk (zoals ID ofzo).
:?

kan je enige uitleg geven, of is dit een UTFS'je? (ook mogelijk, maar zo is het wel zo makkelijk :P)

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 12:54

Bosmonster

*zucht*

meta-data is de data over de data, oftewel dingen als kolomnamen.

Kweet niet welke taal je gebruikt, maar PHP heeft daar een aantal functies voor..

http://www.php.net/manual/en/function.mysql-list-fields.php

Spit anders iets als phpMyAdmin source eens door... ;)

Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Of kijk even naar een FULLTEXT search. meer info. Ik denk dat je daar absoluut wat aan moet hebben.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1