Avatar billede tlunde Nybegynder
17. oktober 2005 - 09:40 Der er 15 kommentarer og
1 løsning

Hjælp til at lave en søgefunktion?

Hejsa,
Jeg sidder som projektleder på en stor landsdækkende portal, som skal lanceres 1. januar, men jeg mangler meget en god søgemaskine, der skal kunne søge på noget forskelligt...

Er der nogen der har tid til at hjælpe mig? Jeg er meget interesseret i selv at lære det, så det ik bare skal være et færdigt script der leveres.

Håber meget på noget hjælp...
Avatar billede Slettet bruger
17. oktober 2005 - 09:44 #1
Du har jo haft oprettet en del om dette emne - så du må jo spørge ind til hvad du vil ha'.

Der er utroligt mange der har ligget et ordentligt svar. Jeg har også selv forsøgt at hjælpe her; http://www.eksperten.dk/spm/653490

Det er jo det grundlæggende, og det man skal kunne for at bygge videre på en sådan søgefunktion.

Nævn hvad du præcis mangler, for de nævnte svar virker alle.
Avatar billede tlunde Nybegynder
17. oktober 2005 - 09:57 #2
Jeg har pt. denne søgeform, som bare søger på et indtastet ord:
http://www.selvhjaelp.dk/soeg/hurtig_soeg.php

Den virker fint nok, men denne form skulle jeg gerne have kombineret med en dropdown, hvor der er nogle hovedkategorier i. Dvs. at hovedkategorien skal vælges, og hvis man indtaster en fritekst, skal det så være indenfor denne hovedkategori, og hvis man ikke vælger noget i hovedkategori, skal friteksten bare søge i hele databasen, altså på alle hovedkategorier? Er det nogenlunde klart?

Derudover skulle jeg gerne bagefter, når dette virker, havde den yderligere udbygget, sådan at man også skal kunne søge på postnr, som man også vælger fra en dropdown, men jeg ville gerne have, at jeg først får det med fritekst og dropdown med hovedkategorierne til at virke...
Avatar billede tlunde Nybegynder
17. oktober 2005 - 09:59 #3
På forsiden, har jeg også lavet formen for hovedkategorierne i en dropdown, og det virker også godt nok med at den finder den hovedkategori man vælger, men jeg kan ik lige gennemskue hvordan jeg får den kombineret??
Avatar billede big_ossi Nybegynder
17. oktober 2005 - 10:38 #4
Hvordan der din kode ud ?
Avatar billede tlunde Nybegynder
17. oktober 2005 - 10:48 #5
Hele min kode ser pt. sådan ud:

<?
include ("config.php");
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<table width="90%" border="0" cellpadding="0" cellspacing="0" align="center">
  <tr>
    <td>
   
    <form action="search.php" method="get">
      <div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">S&oslash;gning:</font><br />
              <select name="dropdown">
                <option value=''></option>";
                <option value='Sorg'>Sorg</option>";
                <option value='Familieproblemer'>Familieproblemer</option>";
                <option value='Sygdom'>Sygdom</option>";
                <option value='Misbrugsproblemer'>Misbrugsproblemer</option>";
                <option value='Psykiske lidelser'>Psykiske lidelser</option>";
                <option value='P&aring;r&oslash;rende til syge'>P&aring;r&oslash;rende til syge</option>";
                <option value='F&oslash;dsel og b&oslash;rn'>F&oslash;dsel og b&oslash;rn</option>";
                <option value='Ensomhed'>Ensomhed</option>";
                <option value='Arbejdsproblemer'>Arbejdsproblemer</option>";
                <option value='Andet'>Andet</option>";
              </select>
        <font face="Verdana, Arial, Helvetica, sans-serif" size="1">
          <input type="submit" name="soeg" value="S&oslash;g" />
        </font></div>
      <font face="Verdana, Arial, Helvetica, sans-serif" size="1">
        <?
if ($dropdown) {

db_con();

$dato = time();

$sql = mysql_query("select * from annoncer WHERE aktiv='ja' AND dato_slut > '$dato' AND hovedkategori like '%$dropdown%'");
$number = mysql_num_rows($sql);
print  "Din s&oslash;gning p&aring;: <b>$dropdown</b> gav $number resultat(er)";

while ($row = mysql_fetch_array($sql)) {
print "<li><a href=http://www.selvhjaelp.dk/for_organisationer/annoncer/annoncer_vis.php?id=$row[id]>$row[overskrift]</a></li>";
}
} elseif ($soeg) {
print "Du skal v&aelig;lge noget i begge dropdowns!";
} else {
}
?>
        </font><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font>
    </form></td>
  </tr>
</table>
<br />
<table width="90%" border="0" cellpadding="0" cellspacing="0" align="center">
  <tr>
    <td><form action="search.php" method="get">
      <div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">S&oslash;gning:<br />
              <input name="seek" type="text" size="40" />
              <input type="submit" name="sog" value="S&oslash;g" />
      </font> </div>
    </form>
        <p align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">
          <?
if ($seek) {

db_con();

$dato_nu = time();

$sql = mysql_query("select * from annoncer WHERE aktiv='ja' AND dato_slut > '$dato_nu' AND (overskrift like '%$seek%' OR beskrivelse like '%$seek%' OR hovedkategori like '%$seek%' OR underkategori like '%$seek%')");
$number = mysql_num_rows($sql);
print  "Din s&oslash;gning p&aring;: <b>$seek</b> gav $number resultat(er)";

while ($row = mysql_fetch_array($sql)) {
print "<li><a href=http://www.selvhjaelp.dk/for_organisationer/annoncer/annoncer_vis.php?id=$row[id]>$row[overskrift]</a></li>";
}
} elseif ($sog) {
print "Du skrev ikke noget s&oslash;geord!!";
} else {
}
?>
      </font><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></p></td>
  </tr>
</table>
</body>
</html>
Avatar billede tlunde Nybegynder
17. oktober 2005 - 10:49 #6
Dropdown boxen og fritekst fungere fint nok hver for sig, men jeg vil gerne finde ud af hvordan jeg kombinere dem i samme søgning, det er det der er min helt store problem??

Det er slet ikke sikkert at det er svært at lave, men jeg mangler bare et eller andet for at komme igang med det...
Avatar billede tlunde Nybegynder
17. oktober 2005 - 10:50 #7
har lagt de 2 søgemuligheder i en fil for sig selv, som jeg arbejder udfra:
http://www.selvhjaelp.dk/search.php
Avatar billede big_ossi Nybegynder
17. oktober 2005 - 11:14 #8
Jeg vil mene at hvis du samler det i en form og så retter sådan den søger i hovedkategori like %$dropdown%

prøv denne kode:

<?
include ("config.php");
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<br />
<table width="90%" border="0" cellpadding="0" cellspacing="0" align="center">
  <tr>
    <td><form action="search.php" method="get">
      <div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">S&oslash;gning:<br />
                <select name="dropdown">
                <option value=''></option>";
                <option value='Sorg'>Sorg</option>";
                <option value='Familieproblemer'>Familieproblemer</option>";
                <option value='Sygdom'>Sygdom</option>";
                <option value='Misbrugsproblemer'>Misbrugsproblemer</option>";
                <option value='Psykiske lidelser'>Psykiske lidelser</option>";
                <option value='P&aring;r&oslash;rende til syge'>P&aring;r&oslash;rende til syge</option>";
                <option value='F&oslash;dsel og b&oslash;rn'>F&oslash;dsel og b&oslash;rn</option>";
                <option value='Ensomhed'>Ensomhed</option>";
                <option value='Arbejdsproblemer'>Arbejdsproblemer</option>";
                <option value='Andet'>Andet</option>";
              </select>
              <input name="seek" type="text" size="40" />
              <input type="submit" name="sog" value="S&oslash;g" />
      </font> </div>
    </form>
        <p align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">
          <?
if ($seek) {

db_con();

$dato_nu = time();

$sql = mysql_query("select * from annoncer WHERE aktiv='ja' AND dato_slut > '$dato_nu' AND (overskrift like '%$seek%' OR beskrivelse like '%$seek%' OR hovedkategori like '%$dropdown%' OR underkategori like '%$seek%')");
$number = mysql_num_rows($sql);
print  "Din s&oslash;gning p&aring;: <b>$seek</b> gav $number resultat(er)";

while ($row = mysql_fetch_array($sql)) {
print "<li><a href=http://www.selvhjaelp.dk/for_organisationer/annoncer/annoncer_vis.php?id=$row[id]>$row[overskrift]</a></li>";
}
} elseif ($sog) {
print "Du skrev ikke noget s&oslash;geord!!";
} else {
}
?>
      </font><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></p></td>
  </tr>
</table>
</body>
</html>
Avatar billede sorenbuss Nybegynder
17. oktober 2005 - 11:21 #9
har du prøvet www.freefind.com ? Den er simpel/gratis og virker fint på mine sider.
Avatar billede tlunde Nybegynder
17. oktober 2005 - 11:34 #10
sorenbuss:
Ikke lige det jeg leder efter, og jeg har jo også en søgefunktion der virker som den skal, skal bare have fundet ud af hvordan jeg sætter dem sammen til en kombineret søgning...
Avatar billede tlunde Nybegynder
17. oktober 2005 - 13:05 #11
big_ossi:
Jeg har lige smidt koden op igen på: selvhjaelp.dk/search.php
Men det er lige som om, at den kun søger på det jeg taster ind i fritekst og ikke tager det med i dropdown...
Avatar billede big_ossi Nybegynder
17. oktober 2005 - 17:02 #12
Når jeg søger på sorg eller familieproblemer så finder den find noget.. også hvis jeg kun laver søgning på fri tekst

så tror det virker
Avatar billede tlunde Nybegynder
17. oktober 2005 - 18:10 #13
Ja, jeg har også ændret hist og pist og lavet lidt om, så nu skulle det virke, mangler bare det sidste felt der skal kobles på, nemlig postnummer, og den driller også lidt, kan ik lige få den til at finde noget, selvom den skulle finde noget...jeg er ik helt sikker på om jeg skriver det helt rigtigt, det ser pt sådan her ud:

<table width="90%" border="0" cellpadding="0" cellspacing="0" align="center">
  <tr>
    <td><form action="search.php" method="get">
      <div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">S&oslash;gning:<br />
                <select name="select">
                <option value=''></option>";
                <option value='Sorg'>Sorg</option>";
                <option value='Familieproblemer'>Familieproblemer</option>";
                <option value='Sygdom'>Sygdom</option>";
                <option value='Misbrugsproblemer'>Misbrugsproblemer</option>";
                <option value='Psykiske lidelser'>Psykiske lidelser</option>";
                <option value='P&aring;r&oslash;rende til syge'>P&aring;r&oslash;rende til syge</option>";
                <option value='F&oslash;dsel og b&oslash;rn'>F&oslash;dsel og b&oslash;rn</option>";
                <option value='Ensomhed'>Ensomhed</option>";
                <option value='Arbejdsproblemer'>Arbejdsproblemer</option>";
                <option value='Andet'>Andet</option>";
              </select>
              <input name="fritekst" type="text" size="40" />
              <input name="postnummer" type="text" size="40" />
              <input type="submit" name="sog" value="S&oslash;g" />
      </font> </div>
    </form>
        <p align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">
          <?

if (!empty($select) && !empty($fritekst) && !empty($postnummer)){

db_con();

$dato_nu = time();

$sql = mysql_query("select * from annoncer WHERE aktiv='ja' AND dato_slut > '$dato_nu' AND hovedkategori like '%$select%' AND (overskrift like '%$fritekst%' OR beskrivelse like '%$fritekst%' OR hovedkategori like '%$fritekst%' OR underkategori like '%$fritekst%') AND postnr like '%postnummer%'");

$number = mysql_num_rows($sql);
print  "Din s&oslash;gning p&aring;: <b>$select</b>, <b>$fritekst</b> og <b>$postnummer</b>    gav $number resultat(er)";

while ($row = mysql_fetch_array($sql)) {
print "<li><a href=http://www.selvhjaelp.dk/for_organisationer/annoncer/annoncer_vis.php?id=$row[id]>$row[overskrift]</a></li>";
}
}
Avatar billede big_ossi Nybegynder
17. oktober 2005 - 18:24 #14
AND postnr like '%postnummer%'"); skulle måske være AND postnr like '%$postnummer%'");
Avatar billede tlunde Nybegynder
21. oktober 2005 - 14:58 #15
Har fået lavet hele søgeformen om, så den virker, så smider du lige et svar big_ossi for din gode hjælp??
Avatar billede tlunde Nybegynder
25. oktober 2005 - 10:40 #16
Lukker selv...har stået længe nu
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