Toon posts:

Zoeken op titels in een database

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met het maken van een zoekpagina in ASP waarmee in een database gezocht kan worden op de titel van een boek. Het probleem is dat sommige titels een lidwoord aan het begin hebben. Bijv. Tweaker, De ipv. De Tweaker.

Ik heb al wat gekke dingen geprobeerd, maar het lukt me niet op het resultaat Tweaker, De weer te geven wanneer iemand zoekt op De Tweaker. Heeft iemand ideeën?

  • sjroorda
  • Registratie: December 2001
  • Laatst online: 18:13
Lidwoorden schrappen uit de zoekquery?

Verwijderd

Topicstarter
mmm... dat is een idee. Laat ik dat maar eens gaan proberen. Overige ideeën blijven overigens welkom.

  • Rotjeknor
  • Registratie: April 2001
  • Laatst online: 03-02 15:29
Zoeken met verschillende dingen:
-De of tweaker
-De en tweaker
-"De tweaker"

Ook Knor is aangestoken met het ligfietsvirus!


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 22-06 10:32

_Thanatos_

Ja, en kaal

Lidwoorden niet schrappen, maar achteraan zetten als ze voorraan ingetypt zijn.

日本!🎌


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Kun je niet gewoon een like gebruiken, en dan splitsen op ieder woord?

title like '%de%' or/and title like '%tweaker%'

'tis maar een wild idee....

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Ik zou er wel spaties rond zetten om 'de' en 'tweaker' als apparte woorden te zien, anders krijg je ook 'deur' en 'degens' ed.

  • KompjoeFriek
  • Registratie: Maart 2001
  • Laatst online: 02-01 05:18

KompjoeFriek

Statsidioot

Ik zou er wel spaties rond zetten om 'de' en 'tweaker' als apparte woorden te zien
Nee, ik denk dat het dan fout gaat. voor 'de' staat namelijk geen spatie. Zet je die er wel voor, dan zal hij waarschijnlijk niets vinden...
Zelf gebruik ik altijd een % voor en achter het te vinden woord zoals RobIII al zei.

WhatPulse! - Rosetta@Home - Docking@Home


  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op 24 maart 2003 @ 08:17:
Ik zou er wel spaties rond zetten om 'de' en 'tweaker' als apparte woorden te zien, anders krijg je ook 'deur' en 'degens' ed.
mja en wat als er "de tweaker" wordt ingevoerd en je zoekt met "% de %" dan vind hij nooit wat je zoekt ;) aangezien er geen spatie voor "de" staat :)

Verwijderd

'De %' dan misschien?

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

dan wordt "waarde " bijvoorbeeld ook gevonden, tenzij je ook nog eens op hoofdletters gaat checken natuurlijk, maar dan moet je je er wel zeker van zijn dat die hoofdletter ook in de db staat.

  • Max|Burn
  • Registratie: Augustus 2001
  • Laatst online: 22-08 12:50

Max|Burn

-- .. ... .--- .- .-.-.-

Hierom word er ook doorgaans opgeslagen id vorm van.
Aanslag, de
Kleine blonde dood, de

etc :)

ma ma ma ma ma macron one


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Splitten op whitespace of non-word characters, en vervolgens een REGEXP query samenstellen:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$search_blacklist = array ( 'pr0n', 'de' ); // whatever :)

$search_query = $_POST [ 'my_search_query' ];

$search_words = preg_split ( '/\W*/', $search_query );

$where_clauses = array ();
foreach ( $search_words as $word ) {
   if ( !in_array ( strtolower ( $word ), $search_blacklist ) ) {
      $where_clauses[] = 
         "`field_name` REGEXP '(^|[^a-zA-Z])" 
         . mysql_escape_string ( $word ) 
         . "($|[^a-zA-Z])'";
   }
}

$query = "
   SELECT 
       `sjaak` 
   FROM 
       `piet` 
   WHERE 
       " . implode ( ' AND ', $where_clauses )
;

Iets van dien aard...

Eventueel moet je in de foreach het escape gedeelte nog even aanpassen om te zorgen dat de juiste quotejes en de speciale regexp characters ook ge-escaped worden, maar dat mag je zelf uitvogelen :Y)

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

Pagina: 1