Tullen007 Skrevet 27. april 2006 Skrevet 27. april 2006 (endret) Jeg skulle laget en kontroll på om det som legges inn i databasen er registrert tidligere. Jeg prøvde dette. <?php require("../config/db.php"); $tittel = $_POST["tittel"]; $rank = $_POST["rank"]; $merk = $_POST["merk"]; $artist = $_POST["artist"]; $sjanger = $_POST["sjanger"]; $plate = $_POST["plate"]; // Gjør at det ikke blir registrert hvis det er tomme felt if(empty($tittel)||empty($rank)||empty($artist)||empty($sjanger)||empty($plate)||strlen($merk)>=255) { if (empty($tittel)) Print "Du har ikke fylt inn CD-tittel.<br>"; if (empty($rank)) Print "Du har ikke fylt inn ranken på cd'en.<br>"; if (empty($artist)) Print "Du har ikke fylt inn artistnavn.<br>"; if (empty($sjanger)) Print "Du har ikke fylt inn sjangernavn.<br>"; if (empty($plate)) Print "Du har ikke fylt inn plateselskap.<br>"; if (strlen($merk)>=255) Print "Beskrivelsen kan ikke være mer en 255 tegn.<br>"; die ("Gå tilbake å rett opp feilene"); } // sql setning for å hente tittel i tabellen hvor tittel i tabell er lik tittel som ble skrevet inn $sql = "SELECT cd_tittel FROM tbl_cd WHERE cd_tittel='$tittel'"; // lagrer resultatet i var, hvis ingen resultat blir var tom / null $cd=odbc_exec($db,$sql); // hvis tittel eksisterer i tabellen og lik det som ble skrevet inn, utfør if if ($cd == $tittel) { // skriver ut melding PRINT "Denne cd tittelen er allerede registrert, gå tilbake."; } else { $sql = "INSERT INTO tbl_cd (cd_tittel, cd_rank, cd_merk, artist_id, sjanger_id, plate_id) VALUES ('$tittel', '$rank', '$merk', '$artist', '$sjanger', '$plate')"; odbc_exec($db,$sql); odbc_close($db); header("Location: ../index.php"); } ?> og fikk denne feilen. Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1., SQL state 07001 in SQLExecDirect in K:\webroot\musikk\php\reg_cd.php on line 25 Warning: Cannot modify header information - headers already sent by (output started at K:\webroot\musikk\php\reg_cd.php:25) in K:\webroot\musikk\php\reg_cd.php on line 38 Jeg vet det går an å bruke noe for å telle resultatet. men vet ikke hvordan jeg skal gjøre noen av delene, Håper noen kan hjelpe meg. Takker for hjelpen på forhånd. NB: Jeg har rettet litt på koden og lagt oppdatert koden ut, feilen hva at jeg spurte fra feil tabell. Nå får jeg legge inn, men jeg får legge inn samme artisten flere ganger. Noe jeg ikke ønsker. Får ingen feil melding heller. Jeg er ny med PHP. Endret 27. april 2006 av Tullen007
Sindre Skrevet 27. april 2006 Skrevet 27. april 2006 (endret) Siste feilmeldingen får du siden du får den første feilmeldingen. Første feilmeldingen får du fra odbc_exec(), feilmeldingen sier at du har for få parametere eks: odbc_exec(parameter1, parameter2, parameter3) vet ikke hvor mange parametere du skal ha der jeg! google it! EDIT: $db <-- ser ikke at du har satt denne noe sted i koden? er det feilen? Her er uansette et eksempel på hvordan du bruker den: $server = 'myservername'; $database = 'mydatabasename'; $username = 'myusername'; $password = 'mypassword'; $connection_string = 'DRIVER={SQL SERVER};SERVER=' . $server . ';DATABASE=' . $database; $connection = odbc_connect($connection_string, $username, $password); $connection er her det samme som din $db men må tilpasses i forhold til hvilken type database du har da! Endret 27. april 2006 av Sindre
Tullen007 Skrevet 27. april 2006 Forfatter Skrevet 27. april 2006 (endret) Jeg har rettet litt på koden og lagt oppdatert koden på siden, feilen hva at jeg spurte fra feil tabell. Nå får jeg legge inn, men jeg får legge inn samme artisten flere ganger. Noe jeg ikke ønsker. Får ingen feil melding nå Men hva mener du med parametere, Jeg er ny med PHP. Endret 27. april 2006 av Tullen007
Sindre Skrevet 27. april 2006 Skrevet 27. april 2006 Hvis du ikke ønsker at flere artister skal gå ann og legge til, er det enkleste og lage den raden UNIK i databasen du lager, så om det går an og velge unik på artist_id i databasen din!
Tullen007 Skrevet 27. april 2006 Forfatter Skrevet 27. april 2006 Hvis du ikke ønsker at flere artister skal gå ann og legge til, er det enkleste og lage den raden UNIK i databasen du lager, så om det går an og velge unik på artist_id i databasen din! 5997469[/snapback] Jeg rettet koden, så nå er ikke artist nevnt annet at cd tittelen har en artist / band, rank, sjanger osv. Jeg har laget en tabell som heter tbl_cd og der har jeg cd_id som primær nøkkel. i tillegg til alle de andre feltene som du ser i sql setningen med INSERT. Hvis tittelen finnes i tabellen blir jo den lagret i variabelen $cd. Som blir sammenlingnet i if setningen. og vis $cd er lik $tittel blir jo if setningen utført. Men i mitt tilfelle blir ikke if setningen utført
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å