Zoeken
finduilas - 17/02/2008 15:50 (laatste wijziging 17/02/2008 15:50)
PHP gevorderde
Hallo,
Ik krijg volgende errors:
Citaat:
Nieuwsberichten/weetjes
1191: Can't find FULLTEXT index matching the column list
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/provenz/domains/finduilascreations.be/public_html/test3/zoeken.php on line 13
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /home/provenz/domains/finduilascreations.be/public_html/test3/zoeken.php on line 14
Artikels
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/provenz/domains/finduilascreations.be/public_html/test3/zoeken.php on line 25
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /home/provenz/domains/finduilascreations.be/public_html/test3/zoeken.php on line 26
Code:
http://pastebin.be/9149
Nochtans heb ik fullindex:
(artikels)
CREATE TABLE `artikels` (
`art_id` int(11) NOT NULL auto_increment,
`cat_id` int(11) NOT NULL default '0',
`titel` varchar(250) NOT NULL default '',
`auteur` varchar(250) NOT NULL default '',
`bron` varchar(250) NOT NULL default '',
`tekst` text NOT NULL,
PRIMARY KEY (`art_id`),
FULLTEXT KEY `tekst` (`tekst`),
FULLTEXT KEY `titel` (`titel`),
FULLTEXT KEY `auteur` (`auteur`),
FULLTEXT KEY `bron` (`bron`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
CREATE TABLE `artikels` (
`art_id` int( 11 ) NOT NULL auto_increment,
`cat_id` int( 11 ) NOT NULL default '0' ,
`titel` varchar( 250 ) NOT NULL default '' ,
`auteur` varchar( 250 ) NOT NULL default '' ,
`bron` varchar( 250 ) NOT NULL default '' ,
`tekst` text NOT NULL ,
FULLTEXT
KEY `tekst`
( `tekst`
) , FULLTEXT
KEY `titel`
( `titel`
) , FULLTEXT
KEY `auteur`
( `auteur`
) , FULLTEXT
KEY `bron`
( `bron`
) ) ENGINE= MyISAM DEFAULT CHARSET= latin1 AUTO_INCREMENT= 8 ;
(nieuws)
CREATE TABLE `topics` (
`top_id` int(10) NOT NULL auto_increment,
`top_start` int(10) NOT NULL default '0',
`datum` int(11) NOT NULL default '0',
`top_naam` varchar(250) NOT NULL default '',
`top_bericht` text NOT NULL,
`cat_id` int(10) NOT NULL default '0',
`weetje` int(1) NOT NULL default '0',
PRIMARY KEY (`top_id`),
FULLTEXT KEY `top_bericht` (`top_bericht`),
FULLTEXT KEY `top_naam` (`top_naam`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=30 ;
CREATE TABLE `topics` (
`top_id` int( 10 ) NOT NULL auto_increment,
`top_start` int( 10 ) NOT NULL default '0' ,
`datum` int( 11 ) NOT NULL default '0' ,
`top_naam` varchar( 250 ) NOT NULL default '' ,
`top_bericht` text NOT NULL ,
`cat_id` int( 10 ) NOT NULL default '0' ,
`weetje` int( 1 ) NOT NULL default '0' ,
FULLTEXT
KEY `top_bericht`
( `top_bericht`
) , FULLTEXT
KEY `top_naam`
( `top_naam`
) ) ENGINE= MyISAM DEFAULT CHARSET= latin1 AUTO_INCREMENT= 30 ;
Kan iemand me hiermee helpen?
4 antwoorden
Gesponsorde links
Simon - 17/02/2008 16:13 (laatste wijziging 17/02/2008 16:14)
PHP expert
Sorry, had over de 2e regel uit je foutmelding gelezen, even verder zoeken
Cosca - 17/02/2008 17:15
HTML beginner
als je match tegen meerdere velden, moet je al die velden in 1 index zetten
CREATE TABLE `artikels` (
`art_id` int(11) NOT NULL auto_increment,
`cat_id` int(11) NOT NULL default '0',
`titel` varchar(250) NOT NULL default '',
`auteur` varchar(250) NOT NULL default '',
`bron` varchar(250) NOT NULL default '',
`tekst` text NOT NULL,
PRIMARY KEY (`art_id`),
FULLTEXT KEY `tekst` (`tekst`,`titel`,`auteur`,`bron`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
CREATE TABLE `artikels` (
`art_id` int( 11 ) NOT NULL auto_increment,
`cat_id` int( 11 ) NOT NULL default '0' ,
`titel` varchar( 250 ) NOT NULL default '' ,
`auteur` varchar( 250 ) NOT NULL default '' ,
`bron` varchar( 250 ) NOT NULL default '' ,
`tekst` text NOT NULL ,
FULLTEXT
KEY `tekst`
( `tekst`
, `titel`
, `auteur`
, `bron`
) ) ENGINE= MyISAM DEFAULT CHARSET= latin1 AUTO_INCREMENT= 8 ;
CREATE TABLE `topics` (
`top_id` int(10) NOT NULL auto_increment,
`top_start` int(10) NOT NULL default '0',
`datum` int(11) NOT NULL default '0',
`top_naam` varchar(250) NOT NULL default '',
`top_bericht` text NOT NULL,
`cat_id` int(10) NOT NULL default '0',
`weetje` int(1) NOT NULL default '0',
PRIMARY KEY (`top_id`),
FULLTEXT KEY `top_bericht` (`top_bericht`,`top_naam`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=30 ;
CREATE TABLE `topics` (
`top_id` int( 10 ) NOT NULL auto_increment,
`top_start` int( 10 ) NOT NULL default '0' ,
`datum` int( 11 ) NOT NULL default '0' ,
`top_naam` varchar( 250 ) NOT NULL default '' ,
`top_bericht` text NOT NULL ,
`cat_id` int( 10 ) NOT NULL default '0' ,
`weetje` int( 1 ) NOT NULL default '0' ,
FULLTEXT
KEY `top_bericht`
( `top_bericht`
, `top_naam`
) ) ENGINE= MyISAM DEFAULT CHARSET= latin1 AUTO_INCREMENT= 30 ;
finduilas - 17/02/2008 20:13
PHP gevorderde
Nu nog een oplossing vinden dat ik op woorden kan zoeken die 3 letters zijn.
marten - 17/02/2008 20:32
Beheerder
Dat kan niet omdat Fulltext dat niet ondersteund. Wat je kan doen is een strlen uitvoeren. Als de zoekopdracht groter dan 3 a 4 (of groter) tekens is dan een fulltext uitvoeren en anders een normale zoekopdracht met LIKE. Door je database goed op te bouwen en de juiste indexes aan te maken dan is de snelheid geen enkel probleem.
Gesponsorde links
Dit onderwerp is gesloten .