Avatar billede xeno-morph Nybegynder
08. maj 2001 - 14:10 Der er 9 kommentarer og
1 løsning

Søgemaskine

Jeg har en side, hvor jeg gerne vil kunne lave en søgemaskine, den skal kunne søge på flere forskellige ting på samme tid, som hvis man fx. skriver : postnr, tlf, og vejnavn, så skal den kunne sammenligne de tre og finde det der passer, men hvis man kun søger på fx postnr, så får man alt hvad der er under det nummer, jeg har det hele fra en mysql, jeg kan godt finde ud af at få resultater, hvis man kun bruger det ene søgefelt, men jeg skal kunne bruge 6, og kunne kombinere dem... jeg giver gerne flere point...
Avatar billede snebold Nybegynder
08. maj 2001 - 14:18 #1
Avatar billede webmasterdk Praktikant
08. maj 2001 - 14:30 #2
Avatar billede pluth Nybegynder
08. maj 2001 - 18:15 #3
Kan du bruge dette???

<?
mysql_connect($mysql_server_navn,$mysql_server_bruger,$mysql_server_kode);
mysql_select_db($mysql_database_navn);


if(!$branche and !$firmanavn and !$kontaktperson  and !$adresse and !$postnummer and !$bynavn and !$telefon1 and !$telefon2 and !$homepage)echo exit;

if (!$fra) {
  $fra = 0;
}

$q=\"SELECT * FROM oplysning2 WHERE 1=1\"; 
if ($branche)
{$q.=\" AND branche LIKE \'$branche%\'\";}
if ($firmanavn)
{$q.=\" AND firmanavn LIKE \'$firmanavn%\'\";}
if ($kontaktperson)
{$q.=\" AND kontaktperson LIKE \'$kontaktperson%\'\";}
if ($adresse)
{$q.=\" AND adresse LIKE \'$adresse%\'\";}
if ($postnummer)
{$q.=\" AND postnummer LIKE \'$postnummer%\'\";}
if ($bynavn)
{$q.=\" AND bynavn LIKE \'$bynavn%\'\";}
if ($telefon1)
{$q.=\" AND telefon1 LIKE \'$telefon1%\'\";}
if ($telefon2)
{$q.=\" AND telefon2 LIKE \'$telefon2%\'\";}
if ($homepage)
{$q.=\" AND homepage LIKE \'$homepage%\'\";}

$result = mysql_query(\"$q\");
$antal = mysql_num_rows($result);
$q .= \" LIMIT $fra,4\"; 
$result = mysql_query (\"$q\");
$number = mysql_num_rows($result);



if ($number > 0) {
  $til = $fra + 4;
  $fra1 = $fra + 1;
  if ($til > $antal) {
    $til = $antal;
  }
  print \"<p align=center><font face=Tahoma size=1>Fra \".$fra1.\" til \".$til.\" af \".$antal.\" fundne.</font></p>\";

  while ($row = mysql_fetch_array($result)) {
    print (\"<SPAN CLASS = boks>\");
    print (\"<h4>\");
    print $row[\"branche\"];
    print (\"</h4><p> \");
    print (\"<h5><p> \");
    print (\"<img src=\\\"$row[billed]\\\">\");
    print (\"<br><u>\");
    print $row[\"firmanavn\"];
    print (\"</u><br>\"); 
    if ($row[kontaktperson] != \'\')
  { print (\"$row[kontaktperson] <br>\"); }   
    print $row[\"adresse\"];
    print (\"<br> \");
    print $row[\"postnummer\"];
    print (\"  \");
    print $row[\"bynavn\"];
    print (\"<br>\");
    print (\" Telefonnummer: \");
    print $row[\"telefon1\"];
    print (\"<br>\"); 
    if ($row[telefon2] != \'\')
  { print (\"Faxnummer: $row[telefon2] <br>\"); }
    if ($row[homepage] != \'\')
  { print(\"<a href=\\\"$row[homepage]\\\" target=_blank>$row[homepage]</a>\"); } 
    print (\"</SPAN>\");
    print (\"<h5><p> \");
  }
} else {print \"Desværre, Kanalgaden.dk fandt ikke noget til dig\";}

if ($antal > 0) {
  $naeste = $fra + 4;
  $naestetal = $fra + 8;
  if ($naestetal > $antal) {
    $naestetal = $antal - $naeste;
  } else {
    $naestetal = $naestetal - $naeste;
  }
  if ($antal > $naeste) {
    $beskednaeste = \"<font face=Tahoma size=1><a href=searchform.php?branche=\".$branche.\"&firmanavn=\".$firmanavn.\"&kontaktperson=\".$kontaktperson.\"&adresse=\".$adresse.\"&postnummer=\".$postnummer.\"&bynavn=\".$bynavn.\"&telefon1=\".$telefon1.\"&telefon2=\".$telefon2.\"&homepage=\".$homepage.\"&fra=\".$naeste.\">Næste \".$naestetal.\"</a></font>\";
  }
  $forrige = $fra - 4;
  if ($forrige >= 0) {
    $beskedforrige = \"<font face=Tahoma size=1><a href=searchform.php?branche=\".$branche.\"&firmanavn=\".$firmanavn.\"&kontaktperson=\".$kontaktperson.\"&adresse=\".$adresse.\"&postnummer=\".$postnummer.\"&bynavn=\".$bynavn.\"&telefon1=\".$telefon1.\"&telefon2=\".$telefon2.\"&homepage=\".$homepage.\"&fra=\".$forrige.\">Forrige 4</a></font> &nbsp;\";
  }
  $skel = \"\";
  if ($beskedforrige != \"\" && $beskednaeste != \"\") {
    $skel = \"<font face=Tahoma size=1>|</font> &nbsp;\";
  }
  $tal = \"\";
  $x = 1;
  $antal = ceil($antal / 4);
  while ($x <= $antal) {
    $y = ($x * 4) - 4;
    if ($y == $fra) {
      $tal = $tal.$x.\"&nbsp;\";
    } else {
      $tal = $tal.\"<a href=searchform.php?branche=\".$branche.\"&firmanavn=\".$firmanavn.\"&kontaktperson=\".$kontaktperson.\"&adresse=\".$adresse.\"&postnummer=\".$postnummer.\"&bynavn=\".$bynavn.\"&telefon1=\".$telefon1.\"&telefon2=\".$telefon2.\"&homepage=\".$homepage.\"&fra=\".$y.\">\".$x.\"</a>&nbsp;\";
    }
    $x = $x + 1;
  }
  print \"<p align=center><font face=Tahoma size=1>Side: \".$tal.\" &nbsp; &nbsp;</font>\".$beskedforrige.$skel.$beskednaeste.\"</p>\";
}

?>
Avatar billede xeno-morph Nybegynder
09. maj 2001 - 09:07 #4
jeg har et par spørgsmål til din kode :
1 : Hvad er \"oplysning2\" ??? \"$q=\"SELECT * FROM oplysning2 WHERE 1=1\";\" ???
2: if (!$fra) {
  $fra = 0;
}
Hvad skal dette bruges til ?
Avatar billede pluth Nybegynder
09. maj 2001 - 09:25 #5
1) Oplysning er den tabel i MySQl tabellen, som den søger i.

2) Er en del af det, som sørger for, at der kun vises 10 emner pr. side.

Pluth
Avatar billede xeno-morph Nybegynder
09. maj 2001 - 10:01 #6
WHERE 1=1 ?!? hvad betyder det ?!?
Avatar billede xeno-morph Nybegynder
09. maj 2001 - 10:06 #7
$number = mysql_num_rows($result);
$antal = mysql_num_rows($result);
De to giver :
Warning: Supplied argument is not a valid MySQL result resource
Avatar billede xeno-morph Nybegynder
09. maj 2001 - 10:21 #8
du må meget undskylde, men jeg fatter krone af det du har lavet...
Avatar billede xeno-morph Nybegynder
09. maj 2001 - 10:22 #9
har du ikke en ICQ nummer, så kan jeg vise dig precis hvad det er jeg laver, og hvordan jeg har tænkt mig det ?!?
Avatar billede pluth Nybegynder
09. maj 2001 - 10:31 #10
Jeg skriver lige når jeg kommer hjem fra arbejde... Du kan evt. smide en mail til luth@luth.dk

Pluth
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