Avatar billede crapmaster Nybegynder
06. januar 2004 - 20:23 Der er 26 kommentarer og
1 løsning

Hvordan laver jeg en select box i denne kode

Hvordan laver jeg en select box, så jeg kan vælge at søge under flere ting adskildt fra andre ting....

<HTML>
<HEAD>
<TITLE></TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
</HEAD>

<BODY BGCOLOR="#444357" TEXT="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
<form action="seek.php" method="get" target="I1"><FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="1">
Søgning efter dvdfilm: <input type="text" name="seek" size="20"> <input type="submit" name="sog" value="Søg"></FONT></form><FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="1" target="I1"><br><br><br>
<?
if ($seek) {
$connection = mysql_connect("localhost", "dvdfilm", "xxxxxx"); //Ændre disse indstillinger omkring din Mysql database
mysql_select_db("dvdfilm", $connection);
$result = mysql_query("select id, titel, titel2, udlaandt from dvdfilm where titel like '%$seek%' or titel2 like '%$seek%' or udlaandt like '%$seek%'");
$number = mysql_num_rows($result);
print  "Din søgning på: <b>$seek</b> gav $number resultater";
while ($row = mysql_fetch_array($result)) {
print "<li><b><a href=\"http://www.dvdfilm.frac.dk/index2.php?film_id=$row[id]\" target=\"I1\">$row[titel]</a></b><br><br></li>";
}
} elseif ($sog) {
print "Du skrev ikke noget søgeord!!";
} else {
}
?> </FONT>
</BODY>
</HTML>
Avatar billede tefcke Nybegynder
06. januar 2004 - 21:29 #1
Det spørgsmål må du nok lige uddybe.
Avatar billede tefcke Nybegynder
06. januar 2004 - 21:39 #2
Din select box skal se nogenlunde sådan her ud:
<select name="mySelect[]" size="4" multiple>
    <option value="1">Valg nr. 1</option>
    <option value="2">Valg nr. 2</option>
    <option value="3">Valg nr. 3</option>
    <option value="4">Valg nr. 4</option>
    <option value="5">Valg nr. 5</option>
    <option value="6">Valg nr. 6</option>
    <option value="7">Valg nr. 7</option>
    <option value="8">Valg nr. 8</option>
    <option value="9">Valg nr. 9</option>
</select>

Når den bliver sendt, vil du have et array som hedder $_POST['mySelect'] (hvis din form bruger post). I det array ligger alle de værdier som var blevet markeret.
Avatar billede crapmaster Nybegynder
06. januar 2004 - 21:48 #3
Det jeg skal bruge er ( Vis jeg har en MySql databse og gerne vil søg i den men i forskellige tabeler, Så skal der være en S box hvor jeg kan vælge det jeg gerne vil søge under....

Håber i forstå mig..... :-)
Avatar billede crapmaster Nybegynder
06. januar 2004 - 21:52 #4
Er vi gådet sukker kolde :-)
Avatar billede tefcke Nybegynder
07. januar 2004 - 02:36 #5
Jeg forstår stadig ikke helt hvad det er du søger.
Prøv at vise os dine database tabeller og skriv hvordan du kunne tænke dig at søge i disse.
Prøv evt. at give et konkret eksempel.
Avatar billede tefcke Nybegynder
07. januar 2004 - 02:38 #6
Et andet sprøgsmål, hvad skal man vælge med denne her select box du snakker om? Er det hvilken tabel man skal søge i? Er det options til søgningen? eller hvad er dens formål?
Avatar billede nak-m Nybegynder
07. januar 2004 - 02:41 #7
Han antyder i hvert fald, at den skal bestemme, hvilken tabel man søger i.
Avatar billede crapmaster Nybegynder
07. januar 2004 - 06:39 #8
Ja det er det som nak-m mener, Vis jeg nu har 5 tabeler, ( nr, titel, titel2, skuespiller_1 ) skal det være sådan at jeg selv kan vælge i en en select box, hvilken en jeg vil søge i.....
Avatar billede sukos Juniormester
07. januar 2004 - 11:49 #9
Du kan prøve at kikke lidt på dette:
http://www.showsource.dk/php/vis_script.php?id=1043167388

Den lister først hvilke tables du har.

Eller lidt kortere,

mysql_list_tables()

http://dk.php.net/manual/en/function.mysql-list-tables.php
Avatar billede crapmaster Nybegynder
07. januar 2004 - 14:40 #10
Det er ikke lige det jeg mener, Det jeg mener er at , Vis man nu kommer ind på min side og skal finde en dvd film, Men kan kun huske at det er en med ( Jet li ) ( skuespiller ) så skal man kunne søge efter skuespiller....Osv

Men skal kunne søge under:

nr
skurespiller
id
gener
titel
søg på alt
udlåndt
udlåndt til

Så vælger du det du skal søge efter, og skriver søge ordet og trykker på (SØG)
Avatar billede tefcke Nybegynder
07. januar 2004 - 15:05 #11
Ahhh ok, så er jeg med!
Det du gør, er at du i din query, joiner de tabeller der skal søges i.
Ex.
Vi har flg. primære tabeller:
film (id, navn)
skuepiller (id, navn)
genre (id, genre)

Vi har ligeledes flg. relations tabeller:
skuepiller_film (id_skuepiller, id_film)
genre_film (id_genre, id_film)

Du laver så en select som sammensætter alle tabellerne til en tabel, og søger i den.
SELECT *
FROM film, skuepiller_film, genre_film
LEFT JOIN skuepiller ON skuepiller_film.id_film = film.id
LEFT JOIN genre ON genre_film.id_film = film.id
WHERE ...

I WHERE sætter du de søge kriterier ind som er blver sendt med i søge formen fra din side.

(Det er lidt svært når vi ikke aner hvordan dine database struktur er ;-)
Avatar billede crapmaster Nybegynder
07. januar 2004 - 15:11 #12
Det var godt du forstod mig.... :-)

<<<<<<<Min MySql ser sådan ud<<<<<<


DROP TABLE IF EXISTS `dvdfilm`;
CREATE TABLE `dvdfilm` (
  `id` int(4) unsigned zerofill NOT NULL auto_increment,
  `nr` varchar(4) NOT NULL default '',
  `titel` varchar(50) NOT NULL default '',
  `titel2` varchar(50) NOT NULL default '',
  `gener` varchar(50) NOT NULL default '',
  `aar` varchar(50) NOT NULL default '',
  `lyd` varchar(50) NOT NULL default '',
  `sprog` varchar(50) NOT NULL default '',
  `undertekster` varchar(50) NOT NULL default '',
  `landkode` varchar(50) NOT NULL default '',
  `udlaandt` varchar(20) NOT NULL default '',
  `udlaandt_til` varchar(30) NOT NULL default '',
  `omtale` text NOT NULL,
  `spilletid` varchar(50) NOT NULL default '',
  `cover` varchar(50) NOT NULL default '',
  `skuespiller_1` varchar(50) NOT NULL default '',
  `skuespiller_2` varchar(50) NOT NULL default '',
  `skuespiller_3` varchar(50) NOT NULL default '',
  `skuespiller_4` varchar(50) NOT NULL default '',
  `skuespiller_5` varchar(50) NOT NULL default '',
  `skuespiller_6` varchar(50) NOT NULL default '',
  `skuespiller_7` varchar(50) NOT NULL default '',
  `skuespiller_8` varchar(50) NOT NULL default '',
  `skuespiller_9` varchar(50) NOT NULL default '',
  `skuespiller_10` varchar(50) NOT NULL default '',
  `skuespiller_11` varchar(50) NOT NULL default '',
  `skuespiller_12` varchar(50) NOT NULL default '',
  `skuespiller_13` varchar(50) NOT NULL default '',
  `skuespiller_14` varchar(50) NOT NULL default '',
  `skuespiller_15` varchar(50) NOT NULL default '',
  `skuespiller_16` varchar(50) NOT NULL default '',
  `skuespiller_17` varchar(50) NOT NULL default '',
  `skuespiller_18` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=191 ;
Avatar billede tefcke Nybegynder
07. januar 2004 - 15:23 #13
Ok, min løsning var nok at skyde lidt (læses meget) over målet hvis din database ser sådan ud ;-)

Jeg kan så ikke se hvad du skal bruge den select box, du snakker om, til!
Hvor kommer den ind i billedet? Hvad er dens formål?

Men hvis din tabel ser sådan ud, så søger du bare efter $seek i alle felter.
SELECT *
FROM dvdfilm
WHERE id LIKE '%$seek%'
  OR nr LIKE '%$seek%'
  OR titel LIKE '%$seek%'
  OR ...
  OR genre LIKE %$seek%'
  OR ...
  OR skuespiller_18 LIKE %$seek%'

Ikke særlig kønt, men nok den eneste måde, på den måde din database er opbygget.
Avatar billede crapmaster Nybegynder
07. januar 2004 - 15:57 #14
Vis jeg nu spør meget pænt, vil du så ikke være sød og sætte det ind i koden for mig,
Avatar billede tefcke Nybegynder
07. januar 2004 - 16:15 #15
$result = mysql_query("
SELECT id, titel, titel2, udlaandt
FROM dvdfilm
WHERE nr LIKE '%$seek%'
  OR skuespiller_1 LIKE %$seek%'
  OR skuespiller_2 LIKE %$seek%'
  OR skuespiller_3 LIKE %$seek%'
  OR skuespiller_4 LIKE %$seek%'
  OR skuespiller_5 LIKE %$seek%'
  OR skuespiller_6 LIKE %$seek%'
  OR skuespiller_7 LIKE %$seek%'
  OR skuespiller_8 LIKE %$seek%'
  OR skuespiller_9 LIKE %$seek%'
  OR skuespiller_10 LIKE %$seek%'
  OR skuespiller_11 LIKE %$seek%'
  OR skuespiller_12 LIKE %$seek%'
  OR skuespiller_13 LIKE %$seek%'
  OR skuespiller_14 LIKE %$seek%'
  OR skuespiller_15 LIKE %$seek%'
  OR skuespiller_16 LIKE %$seek%'
  OR skuespiller_17 LIKE %$seek%'
  OR skuespiller_18 LIKE %$seek%'
  OR id LIKE '%$seek%'
  OR genre LIKE %$seek%'
  OR titel LIKE '%$seek%'
  OR udlaandt LIKE '%$seek%'
  OR udlaandt_til LIKE '%$seek%'");

Men det var jo stort set hvad du havde i forvejen, bare med en del flerer felter at søge i!?

Jeg kan så ikke se hvad du skal bruge den select box, du snakker om, til!
Hvor kommer den ind i billedet? Hvad er dens formål?
Avatar billede crapmaster Nybegynder
07. januar 2004 - 16:19 #16
Den skal bruges til at søge efter mine dvdfilm på en side jeg har lavet.

www.dvdfilm.frac.dk

Der er et søge felt hvor jeg gerne vil ha at man skal kunne søge efter ting i filmen, Vis nu men kun vil finde dvd film med en bedstemt skuespiller i eller vis det kun er triller man vil finde, Forstå du mig :-)
Avatar billede tefcke Nybegynder
07. januar 2004 - 16:22 #17
Så i select boxen skal man vælge i hvilken "kategorier" søgningen skal fortages i?
Avatar billede crapmaster Nybegynder
07. januar 2004 - 16:23 #18
Yes sir
Avatar billede tefcke Nybegynder
07. januar 2004 - 16:25 #19
Ok, brygger lige noget sammen ...
Avatar billede crapmaster Nybegynder
07. januar 2004 - 16:26 #20
Mange tak
Avatar billede tefcke Nybegynder
07. januar 2004 - 16:35 #21
Indsæt denne select box der hvor søgefeltet er:
(Søgningen fortages altid på films titel, samt hvad der er valgt i options)
<select name="searchArray[]" size="7" multiple>
    <option value="nr">nr</option>
    <option value="cast">skuespiller</option>
    <option value="id">id</option>
    <option value="genre">gener</option>
    <option value="out">udlånt</option>
    <option value="out_to">udlånt til</option>
    <option value="all">søg på alt</option>
</select>
-----
I stedet for linjen:
$result = mysql_query("select id, titel, titel2, udlaandt from dvdfilm where titel like '%$seek%' or titel2 like '%$seek%' or udlaandt like '%$seek%'");
Skal der stå flg.:
$searcArray = $_POST['searchArray'];
$sql = "
SELECT id, titel, titel2, udlaandt
FROM dvdfilm
WHERE titel LIKE '%$seek%'
";
foreach ($searcArray as $key => $value) {
    switch ($key) {
        case 'nr':
            $sql .= "
OR nr LIKE '%$seek%'
            ";
            break;
        case 'cast':
            $sql .= "
OR skuespiller_1 LIKE %$seek%'
OR skuespiller_2 LIKE %$seek%'
OR skuespiller_3 LIKE %$seek%'
OR skuespiller_4 LIKE %$seek%'
OR skuespiller_5 LIKE %$seek%'
OR skuespiller_6 LIKE %$seek%'
OR skuespiller_7 LIKE %$seek%'
OR skuespiller_8 LIKE %$seek%'
OR skuespiller_9 LIKE %$seek%'
OR skuespiller_10 LIKE %$seek%'
OR skuespiller_11 LIKE %$seek%'
OR skuespiller_12 LIKE %$seek%'
OR skuespiller_13 LIKE %$seek%'
OR skuespiller_14 LIKE %$seek%'
OR skuespiller_15 LIKE %$seek%'
OR skuespiller_16 LIKE %$seek%'
OR skuespiller_17 LIKE %$seek%'
OR skuespiller_18 LIKE %$seek%'
            ";
            break;
        case 'id':
            $sql .= "
OR id LIKE '%$seek%'
            ";
            break;
        case 'genre':
            $sql .= "
OR genre LIKE %$seek%'
            ";
            break;
        case 'out':
            $sql .= "
OR udlaandt LIKE '%$seek%'
            ";
            break;
        case 'out_to':
            $sql .= "
OR udlaandt_til LIKE '%$seek%'
            ";
            break;
        case 'all':
            $sql = "
SELECT id, titel, titel2, udlaandt
FROM dvdfilm
WHERE nr LIKE '%$seek%'
  OR skuespiller_1 LIKE %$seek%'
  OR skuespiller_2 LIKE %$seek%'
  OR skuespiller_3 LIKE %$seek%'
  OR skuespiller_4 LIKE %$seek%'
  OR skuespiller_5 LIKE %$seek%'
  OR skuespiller_6 LIKE %$seek%'
  OR skuespiller_7 LIKE %$seek%'
  OR skuespiller_8 LIKE %$seek%'
  OR skuespiller_9 LIKE %$seek%'
  OR skuespiller_10 LIKE %$seek%'
  OR skuespiller_11 LIKE %$seek%'
  OR skuespiller_12 LIKE %$seek%'
  OR skuespiller_13 LIKE %$seek%'
  OR skuespiller_14 LIKE %$seek%'
  OR skuespiller_15 LIKE %$seek%'
  OR skuespiller_16 LIKE %$seek%'
  OR skuespiller_17 LIKE %$seek%'
  OR skuespiller_18 LIKE %$seek%'
  OR id LIKE '%$seek%'
  OR genre LIKE %$seek%'
  OR titel LIKE '%$seek%'
  OR udlaandt LIKE '%$seek%'
  OR udlaandt_til LIKE '%$seek%'";
            break´2;
    }
}
$result = mysql_query($sql);

Det skulle vidst være det!
NB: er yderst utestet!
Avatar billede crapmaster Nybegynder
07. januar 2004 - 16:43 #22
Det er da det rene lort, alså fra min side af :-)
Jeg kan ikke finde ud af og sætte det ind, Hjælp mig plz

Søgekoden:


<HTML>
<HEAD>
<TITLE></TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
</HEAD>

<BODY BGCOLOR="#444357" TEXT="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
<form action="seek.php" method="get" target="I1"><FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="1">
Søgning efter dvdfilm: <input type="text" name="seek" size="20"> <input type="submit" name="sog" value="Søg"></FONT></form><FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="1" target="I1"><br><br><br>
<?
if ($seek) {
$connection = mysql_connect("localhost", "dvdfilm", "xxxxxx"); //Ændre disse indstillinger omkring din Mysql database
mysql_select_db("dvdfilm", $connection);
$result = mysql_query("select id, titel, titel2, udlaandt from dvdfilm where titel like '%$seek%' or titel2 like '%$seek%' or udlaandt like '%$seek%'");
$number = mysql_num_rows($result);
print  "Din søgning på: <b>$seek</b> gav $number resultater";
while ($row = mysql_fetch_array($result)) {
print "<li><b><a href=\"http://www.dvdfilm.frac.dk/index2.php?film_id=$row[id]\" target=\"I1\">$row[titel]</a></b><br><br></li>";
}
} elseif ($sog) {
print "Du skrev ikke noget søgeord!!";
} else {
}
?> </FONT>
</BODY>
</HTML>
Avatar billede crapmaster Nybegynder
07. januar 2004 - 17:48 #23
Er du der, eller er du gådet iseng :-)
Avatar billede crapmaster Nybegynder
11. januar 2004 - 14:11 #24
tefcke  læg lige et svar så du kan få lidt points
Avatar billede crapmaster Nybegynder
15. februar 2004 - 00:38 #25
//Lukker
Avatar billede tefcke Nybegynder
15. februar 2004 - 05:21 #26
Hmmm, havde ikke lige set du ville have et svar.
Avatar billede nak-m Nybegynder
15. februar 2004 - 14:38 #27
Så kan Crapmaster vel åbne et nyt spørgsmål og belønne dig der.
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