Gå til innhold

Live søk med php mot database spørsmål


Anbefalte innlegg

Hei! Jeg har nylig lært meg MySQL og PHP spørringer med database, men er ikke helt stø på php biten enda. Jeg lurer på om hvordan jeg kan konvertere dette skriptet i å hente informasjon fra en database i steden fra en .xml fil:

 

<?php
$xmlDoc=new DOMDocument();
$xmlDoc->load("links.xml");
$x=$xmlDoc->getElementsByTagName('link');
//get the q parameter from URL
$q=$_GET["q"];
//lookup all links from the xml file if length of q>0
if (strlen($q)>0)
{
$hint="";
for($i=0; $i<($x->length); $i++)
 {
 $y=$x->item($i)->getElementsByTagName('title');
 $z=$x->item($i)->getElementsByTagName('url');
 if ($y->item(0)->nodeType==1)
{
//find a link matching the search text
if (stristr($y->item(0)->childNodes->item(0)->nodeValue,$q))
  {
  if ($hint=="")
	{
	$hint="";
	}
  else
	{
	$hint=$hint . "<br />";
	}
  }
}
 }
}
// Set output to "no suggestion" if no hint were found
// or to the correct values
if ($hint=="")
 {
 $response="Ingen forslag";
 }
else
 {
 $response=$hint;
 }
//output the response
echo $response;
?>

 

Dette er en søkefunksjon som jeg fant her: http://www.w3schools..._livesearch.asp

 

Jeg skal ikke bruke den til å søke etter sider eller linker slik som i eksempelet, jeg skal bare søke etter navn i en eller flere databaser som matcher det som blir skrevet i søkefeltet. Det kan være f.eks et navn på et dyr. Du skal kunne velge det dyret, og det er det.

 

I databasen har jeg en lang liste over "dyr", og det er kun disse dyrene som skal kunne velges imellom. Men siden det er så mange vil jeg ikke ha en rullegardin funksjon, og håper denne kan funke. Hvis dere har noe forslag til et lignende system som henter info fra database er jeg åpen for det også.

 

Tusen takk for hjelpen!

Endret av MartyRot
Lenke til kommentar
Videoannonse
Annonse

Når du kommer til punkt 4 over så kan du ta en titt på f.eks. jQuery UI autocomplete.

Du må fortsatt skrive php og mysql biten for å hente ting ut fra databasen og formatere arrayen riktig i forhold til hvordan autocomplete forventer at dataene skal være.

Ett lite eksempel på en søke sql

$navn=filter_input(INPUT_GET,'term',FILTER_SANITIZE_STRING);

$sql='SELECT navn
FROM dyr
WHERE navn LIKE CONCAT(' . $navn . ",'%')
ORDER BY navn";

  • Liker 1
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...