Hoi,

Ik heb een sql query:

<?php
$s_sql = "SELECT *, MATCH(`titel`) AGAINST ('>".$s."') AS `relevantie` FROM nieuws WHERE MATCH (titel,korttekst,tekst) AGAINST ('".$s."' IN BOOLEAN MODE) ORDER BY relevantie DESC";
?>

Maar ik heb een nieuws site waar ik dit op wil gebruiken, en als je nu gaat zoeken dan is de kans groot dat een oud artikel nog bovenaan komt, dus ik wil dat een nieuwer artikel belangrijker is dan een oude.

Hoe kan ik daar voor zorgen??

Groeten,
Arian
je moet de ORDER BY dan op datum doen denk ik..?
Maaruh... als hij bijvoorbeeld 10 resultaten heeft, en # 10 is de nieuwste maar ook de minst relevante, komt die toch bovenaan... terwijl een ouder item misschien relevanter is?? En dus bovenaan moet komen te staan...

De datum moet dus mee tellen in de relevantie...
Dus als een item nieuwer is moet de relevantie omhoog...
Niemand een idee, of is dit niet echt mogelijk?
Hallo, om even op een oud topic terug te komen. Ik lees in de 1e post, een query met MATCH en AGAINST. Ik heb zelf een zoekunctie met de query SELECT * FROM foto WHERE naam LIKE '%$_GET[trefwoord]%' OR reg LIKE '%$_GET[trefwoord]%' or enzovoorts
Maar hiermee kan ik maar op 1 trefwoord zoeken in de MySQL tabel, zou het beter gaan als ik MATCH en AGAINST gebruik, en hoe gaat dat eruit zien?
Je kunt met LIKE ook op meer zoekwoorden zoeken:

SELECT veldnaam
FROM tabelnaam
WHERE veld1 LIKE '%zoekwoord%'
OR veld2 LIKE '%zoekwoord%'

Als je toch met MATCH AGAINST wilt gaan werken, moet je eens gaan kijken in de MySQL handleiding bij de FULLTEXT afdeling
@reinder
waarom gebruik je voor het veld datum varchar? Daar hebben ze speciaal DATE of DATETIME voor gemaakt.
Maar het blijft wel belangrijk genoeg om te vermelden... En je kan best een sterretje gebruiken maar het verstandiger/sneller om alleen de velden op te vragen die je nodig hebt.
Als je goed leest, zie je dat ik me afvraag hoe ik met meerdere zoekwoorden kan zoeken. Want nu werkt de functie alleen als je 1 trefwoord invult, bij 2 zegt die niks gevonden, maar amsterdam en schiphol zijn allebei in het zelfde veld in de tabel te vinden. Kijk maar eens goed naar mn script nu bij de query:

<?PHP
$select = "SELECT * FROM foto WHERE naam LIKE '%$_GET[trefwoord]%' OR foto LIKE '%$_GET[trefwoord]%' OR reg LIKE '%$_GET[trefwoord]%' OR datum LIKE '%$_GET[trefwoord]%' OR toestel LIKE '%$_GET[trefwoord]%' OR plaats LIKE '%$_GET[trefwoord]%' OR maat LIKE '%$_GET[trefwoord]%' ORDER BY datum DESC";
?>

Mijn vraag is: Hoe pas ik dit aan zodat hij ook bij meerdere trefwoorden een resultaat krijg?
Dan krijg ik de reactie:

<?PHP
SELECT veldnaam
FROM tabelnaam
WHERE veld1 LIKE '%zoekwoord%'
OR veld2 LIKE '%zoekwoord%'
?>

Maar wat is daar nou anders aan dan mijne?

Reageren