Rainbow Skrevet 26. april 2003 Del Skrevet 26. april 2003 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
smetho Skrevet 26. april 2003 Del Skrevet 26. april 2003 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
Rainbow Skrevet 26. april 2003 Forfatter Del Skrevet 26. april 2003 Helt på jordet er du nok ikke, men slik det er til meg må jeg ha det slik det er skrivet nå. Lenke til kommentar
Rainbow Skrevet 26. april 2003 Forfatter Del Skrevet 26. april 2003 Fikk det til nå etter å ha sittet å prøvd diverse fremgangs måter. Lenke til kommentar
Rainbow Skrevet 27. april 2003 Forfatter Del Skrevet 27. april 2003 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
Tosh Skrevet 27. april 2003 Del Skrevet 27. april 2003 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
Rainbow Skrevet 27. april 2003 Forfatter Del Skrevet 27. april 2003 Kan du utdype det der litt mer. Kanskje komme med et eksempel? Lenke til kommentar
Tosh Skrevet 30. april 2003 Del Skrevet 30. april 2003 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
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å