ximenao Posted April 2, 2010 Share Posted April 2, 2010 Hello, I am making an online exam with textboxes. If the user enters an answer with the correct keyword or keywords, then he will be told "You are correct!" and of course "You are wrong" if the opposite is true... To do this I am using a fulltext search with a mysql database table with three fields (q1, q2, q3) with the text format and one id field as the primary key as tinyint set to auto increment. I used the following code: ALTER TABLE formone_ex1_secthreesr ADD FULLTEXT(q1,q2,q3,q4,q5); to create a fulltext index. I use phpmy admin which tells me that a fulltext index exists. It was recommended to me to use the following code: $query="SELECT MATCH (q1) AGAINST ('$uno' IN BOOLEAN MODE) as ans1, MATCH (q2) AGAINST ('$dos' IN BOOLEAN MODE) as ans2, MATCH (q3) AGAINST ('$tres' IN BOOLEAN MODE) as ans3 FROM formone_ex1_secthreesr"; $data=mysql_query($query) or die(mysql_error()); mysql_close(); if($data["ans1"]!='0') { echo "<p><font color=\"#7E4B01\" size=\"+1\"><b> $uno</b></font> is correct!</p>"; } else { echo "<p>Sorry,<font color=\"#FF0000\" size=\"+1\"><b> $uno</b></font> is wrong! The correct answer is <font color=\"#7E4B01\" size=\"+1\">\"<b>Yo me llamo John Smith</b>.\"</font></p>"; } if($data["ans2"]!='0') { echo "<p><font color=\"#7E4B01\" size=\"+1\"><b> $dos</b></font> is correct!</p>"; } else { echo "<p>Sorry,<font color=\"#FF0000\" size=\"+1\"><b> $dos</b></font> is wrong! The correct answer is <font color=\"#7E4B01\" size=\"+1\">\"<b>¿Qué hora es?</b>\"</font></p>"; } if($data["ans3"]!='0') { echo "<p><font color=\"#7E4B01\" size=\"+1\"><b> $tres</b></font> is correct!</p>"; } else { echo "<p>Sorry,<font color=\"#FF0000\" size=\"+1\"><b> $tres</b></font> is wrong! The correct answer is <font color=\"#7E4B01\" size=\"+1\">\"<b>¿Qué fecha es?</b>\"</font></p>"; } However, even if I enter an incorrect keyword, not contained within the database, it is returned as correct. Interestingly I tried removing "IN BOOLEAN MODE" and I get a error saying "Can't find FULLTEXT index matching the column list query:" Can anyone help me fix this please? Link to comment https://forums.phpfreaks.com/topic/197373-using-boolean-fulltext-searching-with-multiple-keywords/ Share on other sites More sharing options...
ximenao Posted April 2, 2010 Author Share Posted April 2, 2010 As an additional note, let me add that the MySQL version is 5.0 Link to comment https://forums.phpfreaks.com/topic/197373-using-boolean-fulltext-searching-with-multiple-keywords/#findComment-1035977 Share on other sites More sharing options...
fenway Posted April 4, 2010 Share Posted April 4, 2010 Show the CREATE TABLE output. Link to comment https://forums.phpfreaks.com/topic/197373-using-boolean-fulltext-searching-with-multiple-keywords/#findComment-1036775 Share on other sites More sharing options...
ximenao Posted April 4, 2010 Author Share Posted April 4, 2010 Thanks for responding Fenway. Below is the MySQL code for the table CREATE TABLE formone_ex1_secthreesr ( `id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , `q1` TEXT( 75 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `q2` TEXT( 75 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `q3` TEXT( 75 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `q4` TEXT( 75 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `q5` TEXT( 75 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ) And here is the code I used to modify each field to a fulltext index: ALTER TABLE formone_ex1_secthreesr ADD FULLTEXT(q1) Before I used this code ALTER TABLE formone_ex1_secthreesr ADD FULLTEXT q1 ( `q1` , `q2` , `q3` , `q4` , `q5` ) But that didn't work either. Link to comment https://forums.phpfreaks.com/topic/197373-using-boolean-fulltext-searching-with-multiple-keywords/#findComment-1036803 Share on other sites More sharing options...
fenway Posted April 6, 2010 Share Posted April 6, 2010 Well, since you're named the index the same, you need to drop the other one first -- or give it a different name. Link to comment https://forums.phpfreaks.com/topic/197373-using-boolean-fulltext-searching-with-multiple-keywords/#findComment-1038040 Share on other sites More sharing options...
ximenao Posted April 7, 2010 Author Share Posted April 7, 2010 Once again thanks for responding fenway... Yeh I dropped the initial index, the one with the multiple fields. Right now every field is indexed individually and it still doesn't work... Time is running out, I'm thinking of approaching it from a completely different angle but how I don't know as yet. Link to comment https://forums.phpfreaks.com/topic/197373-using-boolean-fulltext-searching-with-multiple-keywords/#findComment-1038554 Share on other sites More sharing options...
fenway Posted April 9, 2010 Share Posted April 9, 2010 MySQL won't combine individual column indexes for FULLTEXT -- use the combined one. Link to comment https://forums.phpfreaks.com/topic/197373-using-boolean-fulltext-searching-with-multiple-keywords/#findComment-1039590 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.