Query probleem met mysql en php

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tom Swinkels

Tom Swinkels

24/05/2011 00:19:06
Quote Anchor link
Dag beste PHPers,

Ik ben op het moment bezig met een ruilwaarde systeem voor de wel bekende community "habbohotel". De bedoeling is dat mijn script ook ruilwaardes gaat op halen van andere fansites (Ruilwaarde.nl, Habbopagina.nl), deze waardes worden opgeslagen in mijn database table "ruilwaarde_value" dit werkt allemaal prima.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
--
-- Tabel structuur voor tabel `ruilwaarde_value`
--

CREATE TABLE `ruilwaarde_value` (
  `value_id` int(11) NOT NULL auto_increment,
  `furni_id` int(11) NOT NULL default '0',
  `furni_name` varchar(255) NOT NULL,
  `value_hc` varchar(11) NOT NULL,
  `value_credit` varchar(11) NOT NULL,
  `value_position` enum('1','2','3') NOT NULL default '2' COMMENT '1=Up, 2=Equal, 3=Down',
  `value_site` enum('1','hp','rw') NOT NULL,
  PRIMARY KEY  (`value_id`),
  FULLTEXT KEY `furni_name` (`furni_name`)
) ENGINE=MyISAM AUTO_INCREMENT=4087 DEFAULT CHARSET=utf8 AUTO_INCREMENT=4087 ;


De meubels worden aan de hand van de opgegeven category geladen uit de database table "ruilwaarde_furni". Vervolgens word er gekeken of de "furni_name" uit de table "ruilwaarde_furni" overeen komt met een "furni_name" uit de table "ruilwaarde_value", dit gebeurt nu dus nog met de mysql function LIKE %meubelname%.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
--
-- Tabel structuur voor tabel `ruilwaarde_furni`
--

CREATE TABLE `ruilwaarde_furni` (
  `furni_id` int(11) NOT NULL auto_increment,
  `category_id` int(11) NOT NULL,
  `furni_name` varchar(255) NOT NULL,
  `furni_img` varchar(255) NOT NULL,
  `furni_state` enum('1','2') NOT NULL default '2' COMMENT '1=Off, 2=On',
  PRIMARY KEY  (`furni_id`)
) ENGINE=MyISAM AUTO_INCREMENT=1345 DEFAULT CHARSET=utf8 AUTO_INCREMENT=1345 ;


Het probleem is nu alleen dat ruilwaarde.nl en habbopagina.nl niet allemaal de zelfde meubel namen hebben. Bijvoorbeeld "hc bank" en "hc-bank" wanneer ik nu dus met LIKE %hcbank% zal op vragen zal ik niet het resultaat "hc-bank" krijgen.

Dit probleem heb ik al proberen op te lossen op de volgende manier:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
"SELECT `furni_name`,`value_position`,`value_hc`,`value_credit` FROM `ruilwaarde_value` WHERE `value_site` = 'rw' AND `furni_id` = '" . $meubelAssoc['furni_id'] . "' OR MATCH (furni_name) AGAINST ('+" . str_replace(" ", " +", $meubelAssoc['furni_name']) . "' IN BOOLEAN MODE)";


Alleen krijg je dus ook dingen die niet kloppen bijvoorbeeld "blaue zeeduif" ook "witte zeeduif" als resultaat te zien.

Iemand enig ideé over hoe ik dit wel kan oplossen?
Gewijzigd op 24/05/2011 00:21:56 door Tom Swinkels
 
Er zijn nog geen reacties op dit bericht.



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.