zoekfunctie ....

  • Onderwerp starter Onderwerp starter Kproz
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Kproz

Gebruiker
Lid geworden
11 jul 2007
Berichten
138
ik heb deze code:

PHP:
<?php
    Connect ();
        select_db('test');

            $sql = "SELECT *, MATCH(title,body,keywords) AGAINST ('$_POST[keywords]') AS score FROM articles WHERE MATCH (title,body,keywords) AGAINST ('$_POST[keywords]' IN BOOLEAN MODE) ORDER BY score LIMIT 20";
            $res = mysql_query($sql) or die(mysql_error());
           
            if (mysql_num_rows($res) >= 1 ) {
                while ($data = mysql_fetch_array ($res)) {
                    echo $data['title'].'<br>';
                    echo $data['score'].'<br>';
                }   
            }
           
            mysql_close ();
?>

met deze output:

mama mama (6)
0
mama mama (8)
0

als ik naar mama zoek! maar score blijft steeds 0?
kzie het foutje niet
 
Voer die query eens uit in PHPMyAdmin en kijk dan wat het resultaat daar is.
 
uhm hij staat nog niet online ik test hem locaal... waarom denk je dat als ik de query in phpmyadmin uitvoer er een ander resultaat zou komen?
 
Wellicht geeft PHPMyAdmin een specifiekere fout.

Maar je hebt lokaal toch ook wel PHPMYAdmin?
 
ja maar ik heb geen idee hoe k die moet gebruiken... ik heb WAMP
 
http://localhost/phpmyadmin ?

Waarom gebruik je geen LIKE in je query? Nu weet ik niet exact wat MATCH gaat doen maar ik neem aan dat hij gaat kijken of het zoekwoord voorkomt in het te doorzoeken veld.

Als je een query met LIKE gaat gebruiken wordt er ook op die manier gezocht, je geeft gewoon met 2 extra tekens aan dat er dingen voor en achter kunnen staan.

PHP:
$zoekterm = "blaat";
$searchQuery = "SELECT * FROM tabel WHERE veld LIKE '%". $zoekterm ."%'";
 
Waarom gebruik je geen LIKE in je query? Nu weet ik niet exact wat MATCH gaat doen maar ik neem aan dat hij gaat kijken of het zoekwoord voorkomt in het te doorzoeken veld.

Wat ik uit de query kan opmaken is dat je dus m.b.v. die MATCH meerdere velden kan opnemen en je maar 1x je zoekwoord hoeft op te nemen.
Op jouw manier (en ook de manier die ik altijd doe :p) moet je dus voor elk veld dit "`veld` LIKE '" . $waarde . "'" toevoegen.
 
Wat ik uit de query kan opmaken is dat je dus m.b.v. die MATCH meerdere velden kan opnemen en je maar 1x je zoekwoord hoeft op te nemen.
Op jouw manier (en ook de manier die ik altijd doe :p) moet je dus voor elk veld dit "`veld` LIKE '" . $waarde . "'" toevoegen.

ja... weet jij misschien wat er fout is aan me code?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan