[MYSQL] dynamisch filter in LIKE query

Pagina: 1
Acties:
  • 44 views sinds 30-01-2008

  • GewoonNico
  • Registratie: April 2003
  • Laatst online: 12:04
Ik ben momenteel bezig met een projectje waar ik een aantal websites indexeer. hier zitten ook 18+ domeinnamen bij en deze wil ik eruit filteren wanneer de gebruiker hievoor heeft gekozen.

Het moet een vergelijkbare query worden als dit:
PHP:
1
2
3
4
5
6
$links = mysql_query("SELECT l.url 
        FROM links AS l, list_adult AS a
        WHERE l.active='Y' 
        AND l.url LIKE'%".$search."%' 
        AND u.name NOT LIKE %l.url%
        ORDER BY l.url");

Maar helaas werkt dit niet.

Heeft iemand een idee van hoe het wel moet?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Definiëer "werkt niet". Wat doet het wel? Krijg je een error? Krijg je verkeerde resultaten? Mijn glazen bol is bij de stomerij, ik kan het dus niet zien.

Post ook even je datamodel.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • GewoonNico
  • Registratie: April 2003
  • Laatst online: 12:04
MySQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
CREATE TABLE `links` (
  `id` int(11) NOT NULL auto_increment,
  `url` varchar(250) NOT NULL default '',
  `date_added` decimal(10,0) NOT NULL default '0',
  `date_lastcheck` decimal(10,0) NOT NULL default '0',
  `clicks_in` decimal(5,0) NOT NULL default '0',
  `clicks_out` decimal(5,0) NOT NULL default '0',
  `active` enum('Y','N') NOT NULL default 'N',
  `sponsored` enum('Y','N') NOT NULL default 'N',
  `adult` enum('Y','N') NOT NULL default 'N',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `url` (`url`),
  FULLTEXT KEY `url_2` (`url`)
) TYPE=MyISAM AUTO_INCREMENT=64982 ;

CREATE TABLE `list_adult` (
  `name` varchar(10) NOT NULL default '',
  PRIMARY KEY  (`name`)
) TYPE=MyISAM;



De foutmelding is als volgt:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '%l.url% ORDER BY l.url LIMIT 0, 75' at line 5

Inhoud van list_adult is momenteel
dick
geil
sex
teens
xxx

in links.url staan domeinnamen zonder (tweakers.net,google.nl,google.com etc)

[ Voor 18% gewijzigd door GewoonNico op 04-06-2005 12:11 ]


  • glashio
  • Registratie: Oktober 2001
  • Laatst online: 06-05 20:30

glashio

C64 > AMIGA > PC

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT
  l.url  
FROM
  links AS l,
  list_adult AS a
WHERE
  l.active='Y'  
AND 
  l.url LIKE '%".$search."%'
AND
  u.name NOT LIKE CONCAT('%', l.url, '%') 
ORDER BY
  l.url

> Google Certified Searcher
> Make users so committed to Google that it would be painful to leave
> C64 Gospel
> [SjoQ] = SjoQing


  • GewoonNico
  • Registratie: April 2003
  • Laatst online: 12:04
Hallo Glashio, bedankt voor je reactie maar helaas wordt er nog niks gefilterd. ik krijg geen foutmeldingen of iets dergelijks.

SELECT DISTINCT l.url
FROM links AS l, list_adult AS a
WHERE l.active = 'Y'
AND l.url LIKE '%".$search."%'
AND a.name NOT LIKE CONCAT( '%', l.url, '%' )
ORDER BY l.url
LIMIT 0 , 100

<spam> is de website bytheway

[ Voor 26% gewijzigd door NMe op 04-06-2005 12:31 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 06-05 18:51

Creepy

Tactical Espionage Splatterer

En bekijk met de foutmelding nu je eigen query eens. Je mist namelijk quotes na je laatste like.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.