Avatar billede RJFreelance Praktikant
30. august 2003 - 14:44 Der er 17 kommentarer og
1 løsning

Søgemaskine hjælp, flere strenge at søge på.

Jeg har et site hvor man skal kunne søge på forskellige tabeller i dben..

Hvordan gør jeg så man kan markere de ting man vil søge under ??
Avatar billede and_moe Nybegynder
30. august 2003 - 14:49 #1
Avatar billede and_moe Nybegynder
30. august 2003 - 14:49 #2
svar
Avatar billede RJFreelance Praktikant
30. august 2003 - 15:24 #3
Forstår det ikke helt..
Det det skal bruges til er at den skal kiggeunder brugernavnene man har skrevet i tekstfeltet.

Og så skal den se om man har valgt hvilken landsdel man er fra og hvor gammel man er og om man er single eller har kæreste på..
Avatar billede RJFreelance Praktikant
30. august 2003 - 15:31 #4
<form method="POST" action="sogning.php">

  <p>Username: <input type="text" name="user" size="20">
  <br>
  Køn: <select size="1" name="sex" id="form">
  <option selected value="NULL">Vælg</option>
    <option value="mand">Mand</option>
    <option value="kvinde">Kvinde</option>
  </select>
  <br>
  Søger: <select size="1" name="seeks" id="select">
    <option selected value="NULL">Vælg</option>
    <option value="Ven/Veninde">Ven/Veninde</option>
    <option value="Kæreste">Kæreste</option>
    <option value="Chatven">Chatven/veninde</option>
    <option value="Brevven">Brevven</option>
    <option value="Penneven">Penneven</option>
  </select>
<br>
  Landsdel: <select size="1" name="region" id="select">
    <option selected value="NULL">Vælg</option>
    <option value="Storkøbenhavn">Storkøbenhavn</option>
    <option value="Sjælland">Sjælland</option>
    <option value="Fyn">Fyn</option>
    <option value="Langeland/øerne  ">Langeland/øerne</option>
    <option value="Jylland">Jylland</option>
    <option value="Odense">Odense</option>
    <option value="Århus">Århus</option>
  </select>
  <br>
  Alder: <select size="1" name="alder">
    <option selected value="NULL">Vælg</option>
    <option value="15">15 - 20</option>
    <option value="20">20 - 30</option>
    <option value="30 ">30 - 40</option>
    <option value="40 ">40 - 50</option>
    <option value="50 ">50&nbsp; +</option>
  </select>
  <br>
  </p>
  <p><input type="submit" value="Send" name="B1"><input type="reset" value="Nulstil" name="B2"></p>
</form>


Det er htmlen, gider du lave søgningen ??
Ved godt det er en del kode.
Avatar billede RJFreelance Praktikant
30. august 2003 - 15:32 #5
Sådan er den helt præcis :

<form method="POST" action="sogning.php">

  <p>Username: <input type="text" name="user" size="20" id="form">
  <br>
  Køn: <select size="1" name="sex" id="form">
  <option selected value="NULL">Vælg</option>
    <option value="mand">Mand</option>
    <option value="kvinde">Kvinde</option>
  </select>
  <br>
  Søger: <select size="1" name="seeks" id="form">
    <option selected value="NULL">Vælg</option>
    <option value="Ven/Veninde">Ven/Veninde</option>
    <option value="Kæreste">Kæreste</option>
    <option value="Chatven">Chatven/veninde</option>
    <option value="Brevven">Brevven</option>
    <option value="Penneven">Penneven</option>
  </select>
<br>
  Landsdel: <select size="1" name="region" id="form">
    <option selected value="NULL">Vælg</option>
    <option value="Storkøbenhavn">Storkøbenhavn</option>
    <option value="Sjælland">Sjælland</option>
    <option value="Fyn">Fyn</option>
    <option value="Langeland/øerne  ">Langeland/øerne</option>
    <option value="Jylland">Jylland</option>
    <option value="Odense">Odense</option>
    <option value="Århus">Århus</option>
  </select>
  <br>
  Alder: <select size="1" id="form">
    <option selected value="NULL">Vælg</option>
    <option value="15">15 - 20</option>
    <option value="20">20 - 30</option>
    <option value="30 ">30 - 40</option>
    <option value="40 ">40 - 50</option>
    <option value="50 ">50&nbsp; +</option>
  </select>
  <br>
  </p>
  <p><input type="submit" value="Søg!" name="B1"></p>
</form>
Avatar billede RJFreelance Praktikant
30. august 2003 - 16:25 #6
Jeg kan godt smide flere points på hvis det er ??
Avatar billede and_moe Nybegynder
30. august 2003 - 17:44 #7
Ja tak ;-)... kan jeg få en struktur over databasen den skal søge i? Så har jeg måske tid.
Avatar billede RJFreelance Praktikant
30. august 2003 - 18:57 #8
altså de felter den skal søge i hedder det samme som navnet på formularfelterne:

sex
seeks
username

alderen er lidt speciel men det laver jeg selv, da det er sådan at det sår som dag-måned-år og så regner den alderen ud.

region

Kan du ikke lave det og så retter jeg felterne til selv. ?

Jeg håber det er nok points nu ;)
Avatar billede RJFreelance Praktikant
30. august 2003 - 18:58 #9
Tabellen hedder ld_users
Avatar billede RJFreelance Praktikant
31. august 2003 - 11:55 #10
Vil du ???
Så ville jeg blive meget glad ; )
Avatar billede and_moe Nybegynder
31. august 2003 - 17:50 #11
Jamen det vil jeg da ;-)

Her er koden. Jeg har ikke kunnet teste om jeg har lavet nogen fejl, da jeg ikke selv har tabellen, men hvis der går noget galt, så skriv og vi finder ud af det.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <title>Søgning</title>
</head>

<body>
<form method="POST" action="<?php echo $PHP_SElF; ?>">

  <p>Username: <input type="text" name="user" size="20">
  <br>
  Køn: <select size="1" name="sex" id="form">
  <option selected value="NULL">Vælg</option>
    <option value="mand">Mand</option>
    <option value="kvinde">Kvinde</option>
  </select>
  <br>
  Søger: <select size="1" name="seeks" id="select">
    <option selected value="NULL">Vælg</option>
    <option value="Ven/Veninde">Ven/Veninde</option>
    <option value="Kæreste">Kæreste</option>
    <option value="Chatven">Chatven/veninde</option>
    <option value="Brevven">Brevven</option>
    <option value="Penneven">Penneven</option>
  </select>
<br>
  Landsdel: <select size="1" name="region" id="select">
    <option selected value="NULL">Vælg</option>
    <option value="Storkøbenhavn">Storkøbenhavn</option>
    <option value="Sjælland">Sjælland</option>
    <option value="Fyn">Fyn</option>
    <option value="Langeland/øerne  ">Langeland/øerne</option>
    <option value="Jylland">Jylland</option>
    <option value="Odense">Odense</option>
    <option value="Århus">Århus</option>
  </select>
  <br>
  Alder: <select size="1" name="alder">
    <option selected value="NULL">Vælg</option>
    <option value="15">15 - 20</option>
    <option value="20">20 - 30</option>
    <option value="30 ">30 - 40</option>
    <option value="40 ">40 - 50</option>
    <option value="50 ">50&nbsp; +</option>
  </select>
  <br>
  </p>
  <p>
  <input type="hidden" name="submit" value="yes">
  <input type="submit" value="Send" name="B1"><input type="reset" value="Nulstil" name="B2"></p>
</form>
<?PHP
// Vi tjekker om formen er submitted.
if(isset($submit)) {

    // Vi tjekker om bruger nu også har foretaget et valg i en eller flere af felterne.
    if(isset($_POST['user']) OR $_POST['sex'] != 'NULL' OR $_POST['seeks'] != 'NULL' OR $_POST['alder'] != 'NULL') {

        // Vi connecter.
        mysql_connect("localhost","root","");
        mysql_select_db("YOURDB");
       
        // Vi starter forsigtigt på at formulere søgestrengen.
        $search_for = "SELECT * FROM ld_users WHERE ";
       
        // Vi tjekker hvilke felter der er foretaget valg i og ignorerer resten.
        if(isset($_POST['user'])) {
            $search_for = $search_for."user LIKE '%".$_POST['user']."%' AND ";
        }
        if($_POST['sex'] != "NULL") {
            $search_for = $search_for."sex LIKE '%".$_POST['sex']."%' AND ";
        }
        if($_POST['seeks'] != "NULL") {
            $search_for = $search_for."seeks LIKE '%".$_POST['seeks']."%' AND ";
        }
        if($_POST['alder'] != "NULL") {
            // Udfyld selv.
        }

        // Vi hugger det sidste AND væk.
        $search_for = substr($search_for, 0, strrchr($search_for, "A"));
       
        // Vi færdiggør vores søgestring med en order by, så resultaterne bliver udskrevet i alfabetisk rækkefølge efter navnet.
        $search_for = $search_for."ORDER BY user";
       
        // Endelig sender vi søgningen afsted.
        $result = mysql_query($search_for);
       
        // Så viser vi resultatet. Som det er nu vises kun brugernavne på dem der findes. Du må selv sætte links ind, eller hvad der nu skal ske.
        echo "<table>\n";
        while($row = mysql_fetch_array($result)) {
        echo "<tr><td>".$row['user']."</td></tr>\n";
        }
        echo "</table>\n";
}

    // Hvis brugeren har submitted formen uden at vælge nogen søgekriterier, kommer der en fejlmeddelse.
    } else {
        echo "Du skal definere en søgning!";
    }
}
?>

</body>
</html>
Avatar billede RJFreelance Praktikant
31. august 2003 - 21:31 #12
slap af : )
Tester det om lidt : )
Du får lige points
Avatar billede RJFreelance Praktikant
31. august 2003 - 21:41 #13
Det virker ikke..
Har rettet det til men den kommer med denne fejl:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in --- on line 101
Avatar billede RJFreelance Praktikant
31. august 2003 - 21:44 #14
og du har glemt at lave til den der hedder region..
Men her er tabellen:
CREATE TABLE ld_users (
  id int(11) NOT NULL auto_increment,
  username varchar(50) NOT NULL default '',
  password varchar(50) NOT NULL default '',
  realname mediumtext NOT NULL,
  age int(3) NOT NULL default '0',
  email varchar(50) NOT NULL default '',
  sex varchar(6) NOT NULL default '',
  seek varchar(20) NOT NULL default '',
  region varchar(20) NOT NULL default '',
  height int(3) default NULL,
  weight int(3) default NULL,
  haircolor varchar(30) default NULL,
  eyecolor varchar(30) default NULL,
  areacode int(4) NOT NULL default '0',
  birthday varchar(30) NOT NULL default '',
  starsign varchar(50) default NULL,
  smooking varchar(50) default NULL,
  job varchar(50) default NULL,
  education varchar(50) default NULL,
  info longtext NOT NULL,
  status varchar(20) NOT NULL default '',
  userstatus int(2) NOT NULL default '0',
  oprettet varchar(30) NOT NULL default '',
  picture varchar(80) NOT NULL default '0',
  profilehits int(10) default NULL,
  PRIMARY KEY  (id),
  UNIQUE KEY id (id)
) TYPE=MyISAM;

og koden som jeg har rettet den til:
<?
session_start();
include("inc/mysql.php");
include("inc/tjek_login.php"); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <title>Søgning</title>
    <STYLE type=text/css>
#form{
    background:#F2F2F2;
    border:1px dotted;
    font-size: 12px;
    font-family: verdana;
    color: #CC0000;
}
</STYLE>
</head>

<body bgcolor="#F2F2F2">
<form method="POST" action="<?php echo $PHP_SElF; ?>">

  <p>Username: <input type="text" name="user" size="20">
  <br>
  Køn: <select size="1" name="sex" id="form">
  <option selected value="NULL">Vælg</option>
    <option value="mand">Mand</option>
    <option value="kvinde">Kvinde</option>
  </select>
  <br>
  Søger: <select size="1" name="seeks" id="select">
    <option selected value="NULL">Vælg</option>
    <option value="Ven/Veninde">Ven/Veninde</option>
    <option value="Kæreste">Kæreste</option>
    <option value="Chatven">Chatven/veninde</option>
    <option value="Brevven">Brevven</option>
    <option value="Penneven">Penneven</option>
  </select>
<br>
  Landsdel: <select size="1" name="region" id="select">
    <option selected value="NULL">Vælg</option>
    <option value="Storkøbenhavn">Storkøbenhavn</option>
    <option value="Sjælland">Sjælland</option>
    <option value="Fyn">Fyn</option>
    <option value="Langeland/øerne  ">Langeland/øerne</option>
    <option value="Jylland">Jylland</option>
    <option value="Odense">Odense</option>
    <option value="Århus">Århus</option>
  </select>
  <br>
  Alder: <select size="1" name="alder">
    <option selected value="NULL">Vælg</option>
    <option value="15">15 - 20</option>
    <option value="20">20 - 30</option>
    <option value="30 ">30 - 40</option>
    <option value="40 ">40 - 50</option>
    <option value="50 ">50&nbsp; +</option>
  </select>
  <br>
  </p>
  <p>
  <input type="hidden" name="submit" value="yes">
  <input type="submit" value="Send" name="B1"><input type="reset" value="Nulstil" name="B2"></p>
</form>
<?PHP
// Vi tjekker om formen er submitted.
if(isset($submit)) {

    // Vi tjekker om bruger nu også har foretaget et valg i en eller flere af felterne.
    if(isset($_POST['user']) OR $_POST['sex'] != 'NULL' OR $_POST['seeks'] != 'NULL' OR $_POST['alder'] != 'NULL') {

       
        // Vi starter forsigtigt på at formulere søgestrengen.
        $search_for = "SELECT * FROM ld_users WHERE ";
       
        // Vi tjekker hvilke felter der er foretaget valg i og ignorerer resten.
        if(isset($_POST['user'])) {
            $search_for = $search_for."username LIKE '%".$_POST['user']."%' AND ";
        }
        if($_POST['sex'] != "NULL") {
            $search_for = $search_for."sex LIKE '%".$_POST['sex']."%' AND ";
        }
        if($_POST['seeks'] != "NULL") {
            $search_for = $search_for."seek LIKE '%".$_POST['seeks']."%' AND ";
        }
        if($_POST['alder'] != "NULL") {
            // Udfyld selv.
        }

        // Vi hugger det sidste AND væk.
        $search_for = substr($search_for, 0, strrchr($search_for, "A"));
       
        // Vi færdiggør vores søgestring med en order by, så resultaterne bliver udskrevet i alfabetisk rækkefølge efter navnet.
        $search_for = $search_for."ORDER BY username";
       
        // Endelig sender vi søgningen afsted.
        $result = mysql_query($search_for);
       
        // Så viser vi resultatet. Som det er nu vises kun brugernavne på dem der findes. Du må selv sætte links ind, eller hvad der nu skal ske.
        echo "<table>\n";
        while($row = mysql_fetch_array($result)) {
        echo "<tr><td>".$row['username']."</td></tr>\n";
        }
        echo "</table>\n";
}

    // Hvis brugeren har submitted formen uden at vælge nogen søgekriterier, kommer der en fejlmeddelse.
    } else {
        echo "Du skal definere en søgning!";
    }

?>

</body>
</html>

Håber du lige vil rette til og lave den der hedder region :)
Avatar billede and_moe Nybegynder
01. september 2003 - 17:10 #15
kigger på det...
Avatar billede and_moe Nybegynder
01. september 2003 - 17:53 #16
Her er koden der virker. Det viste sig at du havde givet mig de forkerte navne på databasefelterne. Desuden har jeg tilføjet region samt en funktion der fortæller brugeren hvis søgningen ikke fandt noget. Forresten... når den side det skal på engang bliver til noget, så smid lige et link til andreasm snabela softhome punktum net. Så jeg kan se "værket" i funktion ;-)


<?
session_start();
include("inc/mysql.php");
include("inc/tjek_login.php"); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <title>Søgning</title>
    <STYLE type=text/css>
#form{
    background:#F2F2F2;
    border:1px dotted;
    font-size: 12px;
    font-family: verdana;
    color: #CC0000;
}
</STYLE>
</head>

<body bgcolor="#F2F2F2">
<form method="POST" action="<?php echo $PHP_SElF; ?>">

  <p>Username: <input type="text" name="username" size="20">
  <br>
  Køn: <select size="1" name="sex" id="form">
  <option selected value="NULL">Vælg</option>
    <option value="mand">Mand</option>
    <option value="kvinde">Kvinde</option>
  </select>
  <br>
  Søger: <select size="1" name="seek" id="select">
    <option selected value="NULL">Vælg</option>
    <option value="Ven/Veninde">Ven/Veninde</option>
    <option value="Kæreste">Kæreste</option>
    <option value="Chatven">Chatven/veninde</option>
    <option value="Brevven">Brevven</option>
    <option value="Penneven">Penneven</option>
  </select>
<br>
  Landsdel: <select size="1" name="region" id="select">
    <option selected value="NULL">Vælg</option>
    <option value="Storkøbenhavn">Storkøbenhavn</option>
    <option value="Sjælland">Sjælland</option>
    <option value="Fyn">Fyn</option>
    <option value="Langeland/øerne  ">Langeland/øerne</option>
    <option value="Jylland">Jylland</option>
    <option value="Odense">Odense</option>
    <option value="Århus">Århus</option>
  </select>
  <br>
  Alder: <select size="1" name="age">
    <option selected value="NULL">Vælg</option>
    <option value="15">15 - 20</option>
    <option value="20">20 - 30</option>
    <option value="30 ">30 - 40</option>
    <option value="40 ">40 - 50</option>
    <option value="50 ">50&nbsp; +</option>
  </select>
  <br>
  </p>
  <p>
  <input type="hidden" name="submit" value="yes">
  <input type="submit" value="Send" name="B1"><input type="reset" value="Nulstil" name="B2"></p>
</form>
<?PHP
// Vi tjekker om formen er submitted.
if(isset($submit)) {

    // Vi tjekker om bruger nu også har foretaget et valg i en eller flere af felterne.
    if($_POST['username'] != '' OR $_POST['sex'] != 'NULL' OR $_POST['seek'] != 'NULL' OR $_POST['region'] != 'NULL' OR $_POST['age'] != 'NULL') {
       
        // Vi starter forsigtigt på at formulere søgestrengen.
        $search_for = "SELECT * FROM ld_users WHERE ";

        // Vi tjekker hvilke felter der er foretaget valg i og ignorerer resten.
        if($_POST['username'] != '') {
            $search_for = $search_for."username LIKE '%".$_POST['username']."%' AND ";
        }

        if($_POST['sex'] != "NULL") {
            $search_for = $search_for."sex LIKE '%".$_POST['sex']."%' AND ";
        }

        if($_POST['seek'] != "NULL") {
            $search_for = $search_for."seek LIKE '%".$_POST['seek']."%' AND ";
        }
       
        if($_POST['region'] != "NULL") {
            $search_for = $search_for."region LIKE '%".$_POST['region']."%' AND ";
        }

        if($_POST['age'] != "NULL") {
            // Udfyld selv.
        }

        // Vi hugger det sidste AND væk.
        $search_for = substr($search_for, 0, -4);

        // Vi færdiggør vores søgestring med en order by, så resultaterne bliver udskrevet i alfabetisk rækkefølge efter navnet.
        $search_for = $search_for."ORDER BY username";

        // Endelig sender vi søgningen afsted.
        $result = mysql_query($search_for);
       
        // Vi tjekker om søgningen overhovedet fandt nogen brugere der passer på søgningen.
        if(mysql_num_rows($result) > 0) {
            // Så viser vi resultatet. Som det er nu vises kun brugernavne på dem der findes. Du må selv sætte links ind, eller hvad der nu skal ske.
            echo "<table>\n";
            while($row = mysql_fetch_array($result)) {
                echo "<tr><td>".$row['username']."</td></tr>\n";
            }
            echo "</table>\n";
        } else {
            // Hvis søgningen ikke fandt nogen.
            echo "Søgningen fandt ikke nogen brugere der passer på kriterierne.";
        }


    // Hvis brugeren har submitted formen uden at vælge nogen søgekriterier, kommer der en fejlmeddelse.
    } else {
        echo "Du skal definere en søgning!";
    }

}
?>

</body>
</html>
Avatar billede RJFreelance Praktikant
01. september 2003 - 20:33 #17
Det virker :D

Ja men når jeg er færdig med hele sitet vil jeg sælge det, da jeg ikek tror jeg vil kunne holde det kørende med reklame osv.
Avatar billede and_moe Nybegynder
02. september 2003 - 16:41 #18
ok
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

IT-JOB

Capgemini Danmark A/S

Client Partner

Det Nationale Forskningscenter for Arbejdsmiljø

IT-sikkerhedsspecialist med fokus på AI inden for forskning

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Applikationsarkitekt til stor applikationstransformation i Forsvaret

Capgemini Danmark A/S

Microsoft AI Solution Architect