login  Naam:   Wachtwoord: 
Registreer je!
 Nota's op tutorial:

Tutorials > MySQL > Fulltext Search
Pagina:

Reacties op de tutorial Fulltext Search


Offline  vinTage
Gepost op: 03 januari 2006 - 22:07
Nieuw lid

Kan je een voorbeeldje geven hoe je die match() en against() in een query zet?
Ik ben al een uur of 2 aan het klooten met de quotes, maar ik krijg het niet voor elkaar.

Offline  Tuinstoel
Gepost op: 03 januari 2006 - 22:31
PHP expert

Eh vrij eenvoudig?
  1. <?php
  2. $sTabel = 'jetabelnaam'; // ff veranderen?!
  3. $sZoek = 'Je zoekterm'; // je zoekterm :O
  4. $sFields = '`quote`'; // de velden war je fulltext op hebt gezet.
  5. $sQuery = "SELECT *, MATCH(".$sFields.") AGAINST('".$sZoek."') AS `score` FROM `".$sTabel."` WHERE MATCH(`".$sFields."`) AGAINST('".$sZoek."')";
  6.  
  7. if(!$rRes = @mysql_query($sQuery))
  8. { echo 'Het opvragen van de gegevens is mislukt!'; }
  9. elseif(mysql_num_rows($rRes) == 0)
  10. { echo 'Geen resultaten of meer dan 50% van de gegevens kwam overeen.'; }
  11. else
  12. {
  13. ?>
  14. <table>
  15. <?php
  16. while($aRow = @mysql_query($rRes))
  17. {
  18. ?>
  19. <tr>
  20. <?php
  21. foreach($aRow as $sField => $sValue)
  22. { echo '<td><i>'.$sField.'</i>: '.$sValue.'</td>'; }
  23. ?>
  24. </tr>
  25. <?php
  26. }
  27. ?>
  28. </table>
  29. <?php
  30. }
  31. ?>

Offline  vinTage
Gepost op: 04 januari 2006 - 16:39
Nieuw lid

AGAINST('blaat', IN BOOLEAN MODE);

Er mag geen comma staan voor "IN BOOLEAN MODE"
Dat heb je bij al je voorbeeldjes wel gedaan.

thx to JeXuS for telling me 

Offline  leendert
Gepost op: 04 januari 2006 - 16:50
HTML beginner

En Tuinstoel,

Gebruik die rare backquotes niet.

Offline  Tuinstoel
Gepost op: 04 januari 2006 - 17:56
PHP expert

Citaat:
[I][B]leendert[/B] schreef op 04 Januari 2006 - 16:50[/I]

En Tuinstoel,

Gebruik die rare backquotes niet.
Backticks heten die, sorry is een verslaving . Gebruik ze express altijd om voor mijzelf duidelijk te maken wat een kolom is, en zo hoef ik ook geen rekening te houden met reserved words.

Offline  Ibrahim
Gepost op: 09 januari 2006 - 11:28
PHP expert

kun je score/relevantie,
wat heb je eraan?

uitleggen en ook de IN_BOOLEAN_MODE

want je legt het niet zo precies uit

edit:

score/relevantie ben ik door na te denken erachter gekomen 
nu die IN_BOOLEAN_MODE (zoek ik wel op mysql )

Offline  MrLee
Gepost op: 10 januari 2007 - 20:41
Nieuw lid

Hallo Allemaal,

ik ben nog relatief nieuw met mysql en php, maar ik heb de volgende vraag.

Ik krijg deze melding:
Can't find FULLTEXT index matching the column list

bij de volgende query:

"SELECT *, MATCH(`inhoud`) AGAINST('$zoekterm') AS `relevantie` FROM `paginas` WHERE MATCH(`inhoud`) AGAINST('$zoekterm') ORDER BY relevantie DESC"

Ik heb een avond geprobeerd om dit op te lossen, maar het is mij tot nog toe niet gelukt. Kan iemand van jullie mij hiermee helpen? Als ik meer info moet verstrekken doe ik dat graag.

Table:
CREATE TABLE `paginas` (
`id` smallint(5) NOT NULL auto_increment,
`titel` varchar(100) default '',
`inhoud` text,
PRIMARY KEY (`id`),
FULLTEXT KEY `titel` (`titel`,`inhoud`)
) ENGINE=MyISAM;



Met vriendelijke groet,
Leroy

Offline  MrLee
Gepost op: 10 januari 2007 - 22:11
Nieuw lid

Laat maar, het is al gelukt. Wist niet dat er minimaal in drie velden gezocht moest worden. Heb dat ergens terug gevonden in sitemasters. Toch top script / tutorial!

Pagina:

Enkel aanvullende informatie is welkom. Geen prijzende of afkeurende reacties.
 
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.029s