Gå til innhold

DVD database


Anbefalte innlegg

Jeg holder på å lage en database for dvdfilmene mine nå, men jeg har et lite problem. Selve scriptet skal ha tre hoved funksjoner: Legge til ny film, Endre info om eksisterende film og slette film fra databasen. Nå holder jeg på med delen som skal legge til en ny film, men jeg får det ikke helt til å fungere. Her er koden:

leggtil.php

<form action="nyfilm.php" method="get"><br />

<table>

<input type=hidden name="id" value="id">

<tr><td>Film:</td><td><input type="text" name="film"></td></tr>

<tr><td>Sjanger:</td><td><input type="text" name="sjanger"></td></tr>

<tr><td>Utgivelsesår:</td><td><input type="text" name="utgivelsesår"></td></tr>

<tr><td>Aldersgrende:</td><td><input type="text" name="aldersgrense"></td></tr>

<tr><td>Karakter:</td><td><input type="text" name="karakter"></td></tr>

<tr><td>Lengde:</td><td><input type="text" name="lengde"></td></tr>

</table>

<input type="Submit">

</form>

 

nyfilm.php

<?

class db

{

//variabler

var $hostname = "localhost";

var $username = "root";

var $password = "";

var $userstable = "dvd";

var $dbName = "database";

function koble_til()

{

//Kobler til databasen

mysql_connect($this->hostname,$this->username,$this->password);

    || die(mysql_error());

@mysql_select_db($this->dbName);

    || die("Unable to select database");

}

function ny_post(&$film)

{

$query = "INSERT INTO dvd(film,sjanger,utgivelsesår,aldersgrense,karakter,lengde)

VALUES('$film','$sjanger','$utgivelsesår','$aldersgrense','$karakter','$lengde')";

$result = mysql_query($query);

print "La til filmen $film";

}

function steng_db()

{

//koble fra database

mysql_close();

}

} 

//nytt objekt

$obj =& new db;

//kaller opp funksjonene

$obj->koble_til();

$obj->ny_post($_GET['film']);

$obj->steng_db();

?>

Resultatet av dette blir at jeg får opp navnet på filmen i tabellen, men ikke noe annet. Problemet til dette ligger i linjen: "function ny_post(&$film)" har jeg funnet ut. Får å få inn alt i databasen må jeg få inn variablene $sjanger, $utgivelsesår, $aldersgrense, $karakter, $lengde der. Noen som vet en løsning?

Lenke til kommentar
Videoannonse
Annonse

Nå er jeg ikke dreven på PHP så heng meg om jeg tar feil, men SQLen burde vel være det samme. Skal ikke INSERT-koden være

$query = "INSERT INTO dvd VALUES('$film','$sjanger','$utgivelsesår','$aldersgrense','$karakter','$lengde')";

eller er jeg helt på jordet her?

Lenke til kommentar

Har fått til de tre hovedfunksjonene nå, men jeg fant ut at det kunne være litt kjekt å få filmene sortert i rekkefølge. Dette fant jeg ut at ikke var så vanskelig, men jeg vil ha det litt videre. Jeg vil ha det slik at jeg kan trykke på det som står øverst i hver kolonne slik at det da sorterer det etter den kolonnen.

 

Koden:

<html>

<head>

<title>

DVD Database

</title>

<link rel="stylesheet" href="./style.css" type="text/css">

</head>

<body>

<h1>DVD Database</h1>

<table width="75%" border="0">

<tr>

<td>

<table width="100%" border="0">

<tr>

<td width="25%">

<a href="./nyfilm.php"><h2>Legg til ny film</h2></a>

</td>

<td width="25%" align="center">

<a href="./oppdater.php"><h2>Endre info</h2></a>

</td>

<td width="25%" align="center">

<a href=""><h2>Slett film</h2></a>

</td>

<td width="25%" align="right">

<a href=""><h2>Søk etter film</h2></a>

</td>

</tr>

</table>

<?php

$db = mysql_connect("localhost", "root");

mysql_select_db("database",$db);

$result = mysql_query("SELECT * FROM dvd ORDER BY film",$db);

echo "<table width="100%" border=1>n";

echo "<tr>

<td><a href=""><h2>Film</h2></a></td>

<td><a href=""><h2>Sjanger</h2></a></td>

<td><a href=""><h2>Utgivelsesår</h2></a></td>

<td><a href=""><h2>Aldersgrense</h2></a></td>

<td><a href=""><h2>Karakter</h2></a></td>

<td><a href=""><h2>Lengde</h2></a></td>

</tr>n";

while ($myrow = mysql_fetch_row($result)) {

printf("

<tr>

<td><h3>%s</h3></td>

<td><h3>%s</h3></td>

<td><h3>%s</h3></td>

<td><h3>%s</h3></td>

<td><h3>%s</h3></td>

<td><h3>%s</h3></td>

</tr>n",

$myrow[1], $myrow[2], $myrow[3], $myrow[4], $myrow[5], $myrow[6]);

}

echo "</table>n";

?>

<table width="100%" border="0">

<tr>

<td width="25%">

<a href="./nyfilm.php"><h2>Legg til ny film</h2></a>

</td>

<td width="25%" align="center">

<a href="./oppdater.php"><h2>Endre info</h2></a>

</td>

<td width="25%" align="center">

<a href="./slett3.php"><h2>Slett film</h2></a>

</td>

<td width="25%" align="right">

<a href=""><h2>Søk etter film</h2></a>

</td>

</tr>

</table>

</td></tr></table>







</body>

</html>

Hva må jeg forandre får å få til det, men at den som standard sorterer det etter 'film' kolonnen?

Lenke til kommentar

Hm, vil tro du kan ha at hver av kolonneneoverskriftene liker til den samme sida på type .. filmindex.php?sort=Film , filmindex.php?sort=Sjanger .. osv ..

 

og da i phpgreiene bytter du ut følgende linje:

$result = mysql_query("SELECT * FROM dvd ORDER BY film",$db);

med noe ala ...

$result = mysql_query("SELECT * FROM dvd ORDER BY $sort",$db);

 

Eller tar en liten ifgreie ..

hvis $sort = Film .. bruk den sqlqueryen, else hvis $sort = lengde, bruk den queryen .. else .. bruk den første sqlqueryen.. :)

 

Mulig jeg er på jordet med den $sort-tingen, men husker ikke helt hvordan det var å sende inn variabler i adressegreia.. :)

Lenke til kommentar

Hepp, gått et par dager nå, men så tenkte jeg at jeg skulle se hvordan det gikk med den dvd-databasen din.. så så jeg at du hadde skrevet en liten oppfølger til svaret mitt..

 

Vel.. hvis du refererer til en side med f.eks.. "http:/kake/index.php?sort=navn", vil du kalle index.php-greia.. og sende inn variabelen sort, med verdi navn. F.eks, som jeg har i min index.php:

 

  

if ($page == "friends") {

   include "friends.php";

 } elseif ($page == "links") {

   include "links.php";

 } elseif ($page == "school") {

   include "school.php";

 } elseif ($page == "feedback") {

   include "feedback.php";

 } else {

   include "main.php";

 }

 

Og som du ser linker linkene i menygreia til venstre til f.eks http://www.stud.ntnu.no/~tosh/?page=friends .. og da er det en lett sak å bare ta en sjekk i phpgreia for å se hvilken side jeg skal include..

 

Hvis du gjør noe ala det samme.. at du har at hver av linkene i toppen av tabellen linket til ?sort=navn, ?sort=dato, ?sort=sjanger.. så kan du bare ta en lignende ifsetning i phpgreia di ..


if ( $sort == "navn) {

$result = mysql_query("SELECT * FROM dvd ORDER BY navn",$db); 

}elseif ($sort == "dato") {

$result = mysql_query("SELECT * FROM dvd ORDER BY dato",$db); 

}

..

 

eller bare ta en liten ..


if ($sort != null) {

$result = mysql_query("SELECT * FROM dvd ORDER BY $sort",$db); 

} else { 

$result = mysql_query("SELECT * FROM dvd ORDER BY film",$db); 

}

 

.. med litt flaks vil kanskje det funke.. :)

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...