Avatar billede rtfm Nybegynder
04. januar 2003 - 14:14 Der er 5 kommentarer og
1 løsning

Søgning i MySQL: Arranger efter flest resultater

Jeg har lavet en søgemaskinen, som søger i en masse forskellige MySQL-tabeller ved hjælp af seperate queries, men nu kunne jeg jo godt tænke mig at arrangere efter flest resultater. Hvordan gør man det?

Og når man søger på store søgemaskiner, behøver det ikke lige være den præcis samme sætning som den indtastede, men bare søgeordene forekommer (i en tilfældig rækkefølge) så giver det resultat. Hvordan gøres dette?


Læs også http://www.eksperten.dk/spm/300547, ang. søgemaskinen.
Avatar billede tipsen Nybegynder
04. januar 2003 - 14:25 #1
Det kommer meget an på hvordan dit output fra søgningen ser ud...
Avatar billede rtfm Nybegynder
04. januar 2003 - 14:26 #2
Hvordan ville du anbefale mig at gøre det?
Avatar billede rtfm Nybegynder
04. januar 2003 - 14:36 #3
Lige nu er det lavet på følgende måde:

-----------------------------------------------------------------------------
if ($action == "search") {
    if ($keyword && $omraade) {
        echo "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" class=\"main_content\" width=\"70%\" align=\"center\">\n
        <tr>\n
        <td>\n
        <ol>\n";
        if ($omraade == "scripts") {
            $php_q = mysql_query("select id, script_navn, beskrivelse, kategori from scripts_php where script_navn like '%$keyword%' or beskrivelse like '%$keyword%' or kategori like '%$keyword%' or bruger like '%$keyword%' or demo_url like '%$keyword%'") or die(mysql_error());
            $num_php_results = mysql_num_rows($php_q) or die(mysql_error());
            while(list($id, $script_navn, $beskrivelse, $kategori) = mysql_fetch_row($php_q)) {
                show_script_results($id,$script_navn,$kategori,$beskrivelse,"php");
            }
        } elseif ($omraade == "software") {
            $software_q = mysql_query("select id, fil_navn, fil_stoerrelse, kategori, beskrivelse, udvikler from rolator_programmer where fil_navn like '%$keyword%' or kategori like '%$keyword%' or beskrivelse like '%$keyword%' or udvikler like '%$keyword%' or bruger like '%$keyword%'") or die(mysql_error());
            $num_software_results = mysql_num_rows($software_q) or die(mysql_error());
            while(list($id, $fil_navn, $fil_stoerrelse, $kategori, $beskrivelse, $udvikler) = mysql_fetch_row($software_q)) {
                show_software_results($id, $fil_navn, $fil_stoerrelse, $kategori, $beskrivelse, $udvikler);
            }
        }
        echo "</ol>\n
        </td>\n
        </tr>\n
        </table>\n";
    } else {
        echo "<div align=\"center\">Du skal indtaste et søgeord og vælge et søgeområde!</div>";
    }
} else {
    echo "<div align=\"center\">Indtast dit søgeord, vælg det område du vil søge i og tryk søg.</div>";
}
-----------------------------------------------------------------------------

Har kortet den lidt ned. I den originale version er der lidt flere områder ($omraade) at søge indenfor.

Hvordan arrangerer jeg disse? Hvad skal laves om?
Avatar billede rtfm Nybegynder
06. januar 2003 - 00:08 #4
Lukker spørgsmålet. Folk er for sløve :)
Avatar billede tipsen Nybegynder
06. januar 2003 - 03:47 #5
Det er faktisk en svær opgave!

Men du kan læse:

http://www.devshed.com/Server_Side/PHP/Search_Engine/print_html

Der er eksempel på, hvordan du kan løse det - men du må selv passe det til så det kan bruges med dit script!
Avatar billede rtfm Nybegynder
06. januar 2003 - 11:35 #6
OK, du har nok ret. Takker for linket.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester