02. februar 2008 - 11:45Der er
17 kommentarer og 1 løsning
Søgefunktion
Hey eksperter
Jeg vil gerne have en søgefunktion på min side, jeg køre php med en MySQL database (klientversion: 5.0.22)
Det som der skal gennemsøges er tabelen nedenfor, hvor den så ikke skal fange det der står i id, img, hoejde og bredde.
ved ikke hvordan resultatet skal komme ud, men jeg forestiller mig noget lignende sådan her:
en titel en horisontal linie ( hr ) og en tekst
prikken over i'et ville så være hvis det ord man have søgt efter ville blive markeret i den tekst der kommer ud.
hvad skal der til og hvordan gør man ?
CREATE TABLE `allround` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , `type` VARCHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , `headline` VARCHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , `navn` VARCHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , `adresse` VARCHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , `postnr` TEXT( 4 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , `town` VARCHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , `mail` VARCHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , `website` VARCHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , `telefon` VARCHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , `text` TEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , `img` VARCHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , `bredde` VARCHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , `hoejde` VARCHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL ) ENGINE = innodb;
// henter søgestrengen med _POST $string = $_POST['string'];
// connect til databasen. husk at rette userid, pwd osv...! mysql_connect("localhost", "admin", "1admin") or die(mysql_error()); mysql_select_db("test") or die(mysql_error());
// sql-query
$sql = "SELECT * FROM allround WHERE type LIKE '%".mysql_escape_string($string)."%' OR headline LIKE '%".mysql_escape_string($string)."%' OR navn LIKE '%".mysql_escape_string($string)."%' OR adresse LIKE '%".mysql_escape_string($string)."%' OR postnr LIKE '%".mysql_escape_string($string)."%' OR town LIKE '%".mysql_escape_string($string)."%' OR mail LIKE '%".mysql_escape_string($string)."%' OR website LIKE '%".mysql_escape_string($string)."%' OR telefone LIKE '%".mysql_escape_string($string)."%' OR text LIKE '%".mysql_escape_string($string)."%'";
$result = mysql_query($sql) or die(mysql_error());
har fundet ud af det med markeringen fylder en hel linie, gav den bare en span i stedet.
men har ik fundet ud at det andet endnu,
også ville jeg os gerne have lavet så outputtet kunne tage den overskrift og det billede med som tilhører teksten. har prøvet med det her, men det virker ik helt efter hensigten:
har fundet ud af hvorfor den ik altid finder ordet, det fordi den gør forskel på store og små bogstaver, kan man gøre så den ik gør det ?
og så når den finder et ord, udskriver den alle posterne der har den type, f.eks. i referencer, der udskriver den begge referencer,. kan man ik gøre så den kun udskriver den hvor søgeordet er funder..
de er nemlig langt ind som to forskellige i databasen
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.