Forespørgsel via html side

Her kan du få hjælp og stille spørgsmål til MySQL/MySQLi!
Besvar
JacobMortensen
Begynder
Indlæg: 4
Tilmeldt: 19. jun 2013, 18:22

Forespørgsel via html side

Indlæg af JacobMortensen » 19. jun 2013, 18:31

Hej. Jeg er ved at prøve at lave en database over mine film, og kunne i den forbindelse godt tænke mig at have en side i HTML hvor jeg kan søge i MySQL fra.

Mere præcist er det jeg gerne vil have: Et søgefelt på en HTML side, så jeg kan søge i min filmdatabase.

Jeg har rodet en del med det, men kan ikke rigtigt finde ud af det.

Status lige nu er, at jeg kun kan søge i databasen på følgende måde:

$data = mysql_query("SELECT * FROM film WHERE navn='supersize me' OR genre='komedie'" ) or die(mysql_error());

Men jeg vil gerne have, at det tekst jeg fylder ind i et søgefelt på en HTML side "automatisk" kommer ned og erstatter det som der søges efter i sætningen ovenfor.

Altså at det jeg skriver ind i søgefelterne kommer til at stå der, hvor der nu står: 'supersize me' og 'komedie'.

Den kode jeg selv er kommet frem til indtil videre ser således ud:

Kode: Vælg alt

<?php
$server = "localhost";
$brugernavn = "root";
$kode = "1234";
$db = "cdcol";
mysql_connect($server , $brugernavn , $kode) or die(mysql_error());

echo "Forbundet til mysql server<br/>";

mysql_select_db($db)or die(mysql_error());

echo "Forbundet til databasen<br/><br/>";
?>

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
       
        <title>MySQL - Indsættelse & søgning af data</title>
    </head>
    <body>
        <h1>Indsæt nye data:</h1>
    	    <form action="Nemprogrammering2.php" method="post">
            Navn: <input type="text" name="navn"/><br/>
            Genre: <input type="text" name="genre"/><br/>
            Beskrivelse: <br/> <textarea cols="30" rows="10" name="beskrivelse"></textarea><br/>
            <input type="submit" value="send" name="submit"/>
        </form>
               
        <h1>Søg film:</h1>        
        <form action="Nemprogrammering2.php" method="post">
            Navn: <input type="text" name="navn"/><br/>
            Genre: <input type="text" name="genre"/><br/>
            <input type="submit" value="søg" name="submit"/>
        </form>
        <?php
$server = "localhost";
$brugernavn = "root";
$kode = "1234";
$db = "cdcol";

$data = mysql_query("SELECT * FROM film WHERE navn='supersize me' OR genre='komedie'" ) or die(mysql_error());

while ($info = mysql_fetch_array($data))
   {

echo "navn: " . $info['navn'] . "<br/>";
echo "genre: " . $info['genre']. "<br/>";
echo "id: " . $info['id'] . "<br/><br/>";
   }
   ?>
    </body>
</html>
Jeg håber, at der er en venlig sjæl der kan hjælpe mig et skridt i den rigtige retning :-)

Vh. Jacob

Brugeravatar
Daniel
Admin
Admin
Indlæg: 625
Tilmeldt: 14. jun 2011, 09:27
Geografisk sted: Danmark, Fyn, Nørre Aaby
Kontakt:

Re: Forespørgsel via html side

Indlæg af Daniel » 19. jun 2013, 21:45

Hej Jacob.

Du skal have fanget dine indtastede data op på den side hvor de skal vises.
Det gør du ved at skrive $variabel = $_POST['name'];
Når du så har opfanget dine indtastede data i nogle variabler, så kan du indsætte dem i din MySQL forespørgsel.

Eksempel:

Kode: Vælg alt

$navn = $_POST['navn'];
$genre = $_POST['genre'];

$data = mysql_query("SELECT * FROM `film` WHERE `navn` = '$navn' OR `genre` = '$genre'") or die(mysql_error());
Håber dette kan bruges, ellers må du skrive, så vil jeg prøve at forklare det på en anden måde! :)

Du kan også se NemProgrammerings film om dette emne: Formularer(forms) i PHP del 1, Formularer(forms) i PHP del 2.

JacobMortensen
Begynder
Indlæg: 4
Tilmeldt: 19. jun 2013, 18:22

Re: Forespørgsel via html side

Indlæg af JacobMortensen » 20. jun 2013, 13:17

Tak for hjælpen, Daniel.

Jeg vil lige prøve at rode med det når jeg kommer hjem:-)

Vh. Jacob

JacobMortensen
Begynder
Indlæg: 4
Tilmeldt: 19. jun 2013, 18:22

Re: Forespørgsel via html side

Indlæg af JacobMortensen » 21. jun 2013, 22:48

Hej igen. Det virkede perfekt. Dog har jeg fået det problem at der står:

Notice: Undefined index: navn in C:\xampp\htdocs\PhpProject1\proeve.php on line 6

Notice: Undefined index: genre in C:\xampp\htdocs\PhpProject1\proeve.php on line 7

I toppen af websiden når jeg kører den.

Hvordan får jeg det væk?

koden ser nu således ud:

Kode:
<?php
$server = "localhost";
$brugernavn = "root";
$kode = "1234";
$db = "cdcol";
$navn = $_POST['navn'];
$genre = $_POST['genre'];

mysql_connect($server , $brugernavn , $kode) or die(mysql_error());

echo "Forbundet til mysql server<br/>";

mysql_select_db($db)or die(mysql_error());

echo "Forbundet til databasen<br/><br/>";
?>

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>MySQL - Indsættelse & søgning af data</title>
</head>
<body>
<h1>Indsæt nye data:</h1>
<form action="Reg_af_film.php" method="post">
Navn: <input type="text" name="navn"/><br/>
Genre: <input type="text" name="genre"/><br/>
Beskrivelse: <br/> <textarea cols="30" rows="10" name="beskrivelse"></textarea><br/>
<input type="submit" value="send" name="submit"/>
</form>


<h1>Søg film:</h1>
<form action="proeve.php" method="post">
Navn: <input type="text" name="navn"/><br/>
Genre: <input type="text" name="genre"/><br/>
<input type="submit" value="søg" name="submit"/>
</form>
<?php
$server = "localhost";
$brugernavn = "root";
$kode = "1234";
$db = "cdcol";

$data = mysql_query("SELECT * FROM film WHERE `navn` = '$navn' OR `genre` = '$genre'" ) or die(mysql_error());

while ($info = mysql_fetch_array($data))
{

echo "navn: " . $info['navn'] . "<br/>";
echo "genre: " . $info['genre']. "<br/>";
echo "id: " . $info['id'] . "<br/><br/>";
}
?>
</body>
</html>

Brugeravatar
ThomasI
Grundlægger
Grundlægger
Indlæg: 1528
Tilmeldt: 28. dec 2010, 10:49

Re: Forespørgsel via html side

Indlæg af ThomasI » 22. jun 2013, 20:35

Det er sandsynligvis fordi din $_POST['navn'] og $_POST['genre']; er tomme... altså du kører siden uden at få tilsendt noget fra en formular. Det klager php over, da du ikke sætte en tom variable. Lav et if statement til at tjekke om der er noget i f.eks $_POST['genre']; og hvis det så er det, så smider du den i en variable...

Så skulle php ik klage... ;)

Brug isset funktionen

JacobMortensen
Begynder
Indlæg: 4
Tilmeldt: 19. jun 2013, 18:22

Re: Forespørgsel via html side

Indlæg af JacobMortensen » 24. jun 2013, 16:20

Perfekt! Tak for svaret :-)

Besvar