s1gh Skrevet 23. september 2008 Del Skrevet 23. september 2008 (endret) Har nå prøvd å lage en søkefunksjon i PHP. Jeg har en database der jeg lagrer alle filmene jeg har, og skulle derfor fått søkefunksjonen til å funke. Den skal, som dere sikkert skjønner, kunne søke i "filmdatabasen" min. Her er php-koden som er brukt: <? mysql_connect("localhost","*****","*********")or die("Klarte ikke å koble til databasen!"); mysql_select_db("library")or die("Klarte ikke velge tabell"); $query = mysql_query("SELECT * FROM movies WHERE movietitle = '$search_query'"); $result = mysql_num_rows($query); if ($result == 0) { echo "Beklager, fant ingen filmer som matchet søket ditt:$search_query"; exit; } else if ($result == 1) { echo "Fant èn match!"; } else { echo "Fant $result treff"; } while ($row = mysql_fetch_array($query)) { $film = $row['movietitle']; echo "Har følgende film: $film"; } ?> Og dette er HTML-fila: <link rel="stylesheet" type="text/css" href="forms.css" /> <link rel="stylesheet" type="text/css" href="links2.css"> <meta http-equiv="refresh" content="300"> <font face="verdana" color="DDDDDD" size="1"> <html> <head> <body> <FORM ACTION="search_data.php" METHOD="POST"> <p><b>Search the database</b>:<br> <br> <input type="text" name="search_query" maxlength="25" size="15"> <class="submit"><input type="submit" value="Submit" /> </form> </html> </head> </body> </font> Hver gang jeg søker, får jeg beskjed om at det ikke var noen treff. - Hva har jeg gjort feil? (Det skal også sies at jeg ikke har kodet dette ut ifra mitt eget hode. Jeg har googlet en del, samt lest masse forskjellig tutorials - bare sånn at det er sagt). EDIT: Tråden kan slettes, da jeg etter litt mer research fikk det til! Hadde selvfølgelig glemt å deklarere et navn for variabelen som blir sendt fra FORM-en! $search_query =$_POST['search_query']; //s1gh Endret 23. september 2008 av Sigh Lenke til kommentar
JohndoeMAKT Skrevet 23. september 2008 Del Skrevet 23. september 2008 Du bør nok også ha: $sql = "SELECT title FROM movies WHERE title LIKE '%{$queryString}%' LIMIT {$offset}, 10;"; Da kan du søke etter "e" og finne både "Aliens" og "Ghostbusters". Du bør/må også alltid rense data fra brukere før det går inn i en databasespørring. Google "sql injection". Lenke til kommentar
Garanti Skrevet 25. september 2008 Del Skrevet 25. september 2008 Forøvrig, merk deg den korrekte rekkefølgen av elementer i et HTML-dokument: <html> <head> <link rel="stylesheet" type="text/css" href="forms.css" /> <link rel="stylesheet" type="text/css" href="links2.css"> <meta http-equiv="refresh" content="300"> </head> <body> <font face="verdana" color="DDDDDD" size="1"> <FORM ACTION="search_data.php" METHOD="POST"> <p><b>Search the database</b>:<br> <br> <input type="text" name="search_query" maxlength="25" size="15"> <class="submit"><input type="submit" value="Submit" /> </form> </font> </body> </html> Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå