Gå til innhold

Finner ikke feilen i koden


Anbefalte innlegg

Jeg har et form som sender som POST til filen med denne koden

 

Men Jeg får ikke noe feilmeling og ingenting plir lagret i MySQL

 

Jeg er helt ny når det gjelder php.

 

På forhånd takk..

<?php
 
       require($_SERVER["DOCUMENT_ROOT"]."/musikk_ny/files/config/db_conn.php");
       $db = mysql_connect($db_host, $db_user, $db_pass) or die ("Kunne ikke koble til MySQL");
       mysql_select_db($db_name, $db) or die ("Kunne ikke koble til selve databasen");


        
        //cd
        $CDID="NULL";
        $CDTittel=$_POST["cdtittel"];
        $CDType=$_POST["cdtype"];
        $Artist=$_POST["artist"];
        $UtgivelsesAar=$_POST["utgivelseaar"];
        $Plateselskap=$_POST["plateselskap"];
        $Dato = date('d/m/Y');
        $Kl = date('H:i');

        //cdinfo
        //$CDID="NULL";
        $CoverBilde=$_POST["bilde"];
        $CDRank=$_POST["R2"];
        $CDMerknad=$_POST["cdmerknad"];

        //artistinfo
        $ArtistInfo_id="NULL";
        //$artist=$_POST["artist"];
        $ArtistBilde=$_POST["artistbilde"];
        $Nasjonalitet=$_POST["nasjonalitet"];
        $Land=$_POST["land"];
        $By=$_POST["by"];
        $ArtistMerknad=$_POST["artistmerknad"];

        //sanger
        //$CDID="NULL";
        $SangNr=$_POST["sangnr"];
        $SangNavn=$_POST["sangnavn"];
        $SangRank=$_POST["tid"];
        $SangType=$_POST["R3"];
        $SangLengde=$_POST["R1"];
        $SangText=$_POST["sangtekst"];
        $FilNavn=$_POST["mp3"];


$SQL_1= "INSERT INTO cd ( CDID, CDTittel, CDType, Aritst, UtgivelseAar,  Plateselskap, Dato, cd.Kl,) VAUES ('$CDID','$CDTittel','$CDType','$Artist','$UtgivelsesAar','$Plateselskap','$Dato','$Kl',)";
mysql_query($SQL_1, $db);

$SQL_2= "INSERT INTO cdinfo ( CDID, CoverBilde,  CDRank, CDMerknad,) VAUES ('$CDID','$CoverBilde','$CDRank','$CDMerknad',)";
mysql_query($SQL_2, $db);

$SQL_3= "INSERT INTO sanger ( CDID, SangNr, SangNavn, SangRank, SangType, SangLengde, SangTekst,FilNavn) VAUES ('$CDID','$SangNr','$SangNavn','$SangRank','$SangType','$SangLengde','$SangText','$FilNavn')";
mysql_query($SQL_3, $db);

$SQL_4= "INSERT INTO artistinfo ( ArtistInfo_id, Artist, ArtistBilde, Nasjonalitet, Land, By, ArtistMerknad) VAUES ('$ArtistInfo_id','$Artist','$ArtistBilde','$Nasjonalitet','$Land','$By','$ArtistMerknad',)";
mysql_query($SQL_4, $db);
echo '<center><b><h1>Har nå registrert   '.$CDTittel.'  og   '.$Artist.'</h1></b></center>';
?>

Endret av Tullen007
Lenke til kommentar
Videoannonse
Annonse

prøv å plassere koden innei en kodebox før du viser den her..

 

En feil melding hadde vært fint.

 

Du er minst 2 feil som jeg ser, når du setter inni databasen har du et "," for mye på slutten av 2 av INSERT linjene..

 

EDIT også skrives det VALUES ikke VAUES

Endret av trondes
Lenke til kommentar
prøv å plassere koden innei en kodebox før du viser den her..

 

En feil melding hadde vært fint.

 

Du er minst 2 feil som jeg ser, når du setter inni databasen har du et "," for mye på slutten av 2 av INSERT linjene..

 

EDIT også skrives det VALUES ikke VAUES

5826030[/snapback]

 

 

 

Jeg har rettet opp i Skrive feilen og alle "," i tillegg har jeg lagt inn

$var_1 = mysql_query (sql_1,db);

mysql_query($var_1);

 

Jeg får ikke ut noen feilmeldinger og det bli ikke registrert i MySQL.

 

Hva gjør jeg feil?

 

Eller er det en annen måte å legge informasjonen inn i MySQL som er lettere enn det jeg har gjort ?

Lenke til kommentar
prøv å plassere koden innei en kodebox før du viser den her..

 

En feil melding hadde vært fint.

 

Du er minst 2 feil som jeg ser, når du setter inni databasen har du et "," for mye på slutten av 2 av INSERT linjene..

 

EDIT også skrives det VALUES ikke VAUES

5826030[/snapback]

 

 

 

Jeg har rettet opp i Skrive feilen og alle "," i tillegg har jeg lagt inn

$var_1 = mysql_query (sql_1,db);

mysql_query($var_1);

 

Jeg får ikke ut noen feilmeldinger og det bli ikke registrert i MySQL.

 

Hva gjør jeg feil?

 

Eller er det en annen måte å legge informasjonen inn i MySQL som er lettere enn det jeg har gjort ?

5826831[/snapback]

 

hvorfor legger du inn NULL som id på ting_og_tang?

Hvis du har en id som er int unsigned og auto_increment kan du bare bruke '' eller ingenting for å sette den inn. (det førstnevnte bruker jeg med hell, det sistnevnte har jeg sett blitt gjort, men aldri fått til selv). Hvis id er primary key tror jeg neppe at nullverdi blir godtatt her. Og dessuten NULL er ingen streng

Lenke til kommentar
hvorfor legger du inn NULL som id på ting_og_tang?

Hvis du har en id som er int unsigned og auto_increment kan du bare bruke '' eller ingenting for å sette den inn. (det førstnevnte bruker jeg med hell, det sistnevnte har jeg sett blitt gjort, men aldri fått til selv). Hvis id er primary key tror jeg neppe at nullverdi blir godtatt her. Og dessuten NULL er ingen streng

5826880[/snapback]

 

 

og bare en ting til. Hvis du reformulerer spørringen din litt.. til :

$SQL_1= "INSERT INTO cd ( CDID, CDTittel, CDType, Aritst, UtgivelseAar, Plateselskap, Dato, cd.Kl,) VALUES ('','$CDTittel','$CDType','$Artist','$UtgivelsesAar','$Plateselskap','$Dato','$Kl',)";
if(!mysql_query($SQL_1, $db)) 
die ("Her gikk noe alvorlig galt i spørringen" . mysql_error());

Lenke til kommentar
$var_1 = mysql_query (sql_1,db);

mysql_query($var_1);

5826831[/snapback]

 

 

hmm.. kanskje vi kan få se koden igjen, tror det kanskje ble litt missforståelse her en plass.

 

( en annen ting; når du skriver meldingen din har noen noen knapper over en av dem står det "CODE" på trykk på den, skriv inn / past koden din og trykk på den knappen igjen. :) )

Lenke til kommentar

Takk for hjelpen, nå virket nesten alt

Jeg får noen feil meldinger som jeg ikke vet hva betyr.

 

$SQL_4 = "INSERT INTO artistinfo (Artist, ArtistBilde, Nasjonalitet, Land, By, ArtistMerknad) VALUES ('$Artist','$ArtistBilde','$Nasjonalitet','$Land','$By','$ArtistMerknad')";

 

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'By, ArtistMerknad) VALUES ('Tullen og co 123','','Norsk','Norge','Trondheim','')' at line 1

 

 

og

 

$SQL_3 = "INSERT INTO sanger (SangNr, SangNavn, SangRank, SangType, SangLengde, SangTekst,FilNavn) VALUES ('$SangNr','$SangNavn','$SangRank','$SangType','$SangLengde','$SangText','$FilNavn')";

 

Out of range value adjusted for column 'SangNr' at row 1

 

Jeg bruker phpmyadmin.

 

Jeg er helt nye med php og database og lurer på om den 2 feilmeldiingen har noe med null og not null. Kanskje noen kan forklare meg hva det vil si å velge null og not null?

Lenke til kommentar
$SQL_4 = "INSERT INTO artistinfo (Artist, ArtistBilde, Nasjonalitet, Land, By, ArtistMerknad) VALUES ('$Artist','$ArtistBilde','$Nasjonalitet','$Land','$By','$ArtistMerknad')";

 

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'By, ArtistMerknad) VALUES ('Tullen og co 123','','Norsk','Norge','Trondheim','')' at line 1

 

Når du, som her, skal sette inn en tom verdi for ArtistBilde og ArtistMerknad kan du skrive NULL, altså

 

insert into artistinfo values('Tullen og Co 123', null, 'Norsk', 'Norge', 'Trondhjem', null);

 

Null er litt udefinert i de fleste språk, i sql betyr null verdi finnes ikke eller verdi er ikke satt - og NULL er ikke det samme som '' (tom streng)

 

 

Jeg er helt nye med php og database og lurer på om den 2 feilmeldiingen har noe med null og not null. Kanskje noen kan forklare meg hva det vil si å velge null og not null?

når en skriver i en ddl at en verdi kan være NULL betyr det at en ikke trenger å oppgi verdi for feltet. NOT NULL er det samme som obligatorisk, null er det motsatte.

Lenke til kommentar
$SQL_4 = "INSERT INTO artistinfo (Artist, ArtistBilde, Nasjonalitet, Land, By, ArtistMerknad) VALUES ('$Artist','$ArtistBilde','$Nasjonalitet','$Land','$By','$ArtistMerknad')";

 

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'By, ArtistMerknad) VALUES ('Tullen og co 123','','Norsk','Norge','Trondheim','')' at line 1

 

Når du, som her, skal sette inn en tom verdi for ArtistBilde og ArtistMerknad kan du skrive NULL, altså

 

insert into artistinfo values('Tullen og Co 123', null, 'Norsk', 'Norge', 'Trondhjem', null);

 

Null er litt udefinert i de fleste språk, i sql betyr null verdi finnes ikke eller verdi er ikke satt - og NULL er ikke det samme som '' (tom streng)

 

 

Jeg er helt nye med php og database og lurer på om den 2 feilmeldiingen har noe med null og not null. Kanskje noen kan forklare meg hva det vil si å velge null og not null?

når en skriver i en ddl at en verdi kan være NULL betyr det at en ikke trenger å oppgi verdi for feltet. NOT NULL er det samme som obligatorisk, null er det motsatte.

5827453[/snapback]

 

 

Vil det si at jeg må lage en kontroll for alle feltene som jeg vil tillate å være tom.

slik?

if (strlen($artistbilde)==0) {$artistbilde="null"}

Lenke til kommentar
Vil det si at jeg må lage en kontroll for alle feltene som jeg vil tillate å være tom.

slik?

if (strlen($artistbilde)==0) {$artistbilde="null"}

5827515[/snapback]

 

du kan feks bruke en trinær operator slik:

 

$artist = empty($_POST['artist'] ? null : strip_tags($_POST['artist']);

 

osv etc mm

 

Da trenger du ikke utføre noen ytterligere sjekk.. MEN - stort men. Antar at det er noen felt du vil ha obligatorisk. De må føre til en feilmelding, gjerne i javascript, men også i php-koden (dobbeltsjekk og tilfelle bruker har deaktivert javascript)

Lenke til kommentar
Vil det si at jeg må lage en kontroll for alle feltene som jeg vil tillate å være tom.

slik?

if (strlen($artistbilde)==0) {$artistbilde="null"}

5827515[/snapback]

 

du kan feks bruke en trinær operator slik:

 

$artist = empty($_POST['artist'] ? null : strip_tags($_POST['artist']);

 

osv etc mm

 

Da trenger du ikke utføre noen ytterligere sjekk.. MEN - stort men. Antar at det er noen felt du vil ha obligatorisk. De må føre til en feilmelding, gjerne i javascript, men også i php-koden (dobbeltsjekk og tilfelle bruker har deaktivert javascript)

5827783[/snapback]

 

Siden jeg er nye med dette, hva er det som hender i koden her?

Vil det si at variabelen $artist får verdien $artist="null"; når tekst boksen er tom ellers gitt verdi i tekst boksen?

 

hva gjør "?" og ":" og strip_tags()?

Lenke til kommentar
Vil det si at jeg må lage en kontroll for alle feltene som jeg vil tillate å være tom.

slik?

if (strlen($artistbilde)==0) {$artistbilde="null"}

5827515[/snapback]

 

du kan feks bruke en trinær operator slik:

 

$artist = empty($_POST['artist'] ? null : strip_tags($_POST['artist']);

 

osv etc mm

 

Da trenger du ikke utføre noen ytterligere sjekk.. MEN - stort men. Antar at det er noen felt du vil ha obligatorisk. De må føre til en feilmelding, gjerne i javascript, men også i php-koden (dobbeltsjekk og tilfelle bruker har deaktivert javascript)

5827783[/snapback]

 

Siden jeg er nye med dette, hva er det som hender i koden her?

Vil det si at variabelen $artist får verdien $artist="null"; når tekst boksen er tom ellers gitt verdi i tekst boksen?

 

hva gjør "?" og ":" og strip_tags()?

5828029[/snapback]

 

Du får inn eksempelvis en artist fra et inputfelt med navn artist med metode post.

Denne henter du ut med $_POST['artist'].

empty() er en funksjon i php, som sjekker om en variabel har verdi og ikke er lik en tom streng (type "").

En trinær operator sier at variabelen er lik første uttrykk (etter ?) hvis dette er sant (true), hvis ikke blir det uttrykket etter : (kolon)..

så $artist = empty($_POST['artist']) ? null : strip_tags($_POST['artist']); sier at hvis artist ikke har noe verdi settes artist til null, hvis ikke beholdes verdien som er sendt fra skjema.

 

Strip_tags() er også en php-funksjon, og den tar vekk alle ting som minner om htmlkode. I tillegg skulle en kanskje hatt med add_slashes() som legger til backslash foran ' og " - for å unngå sql-injection.

Lenke til kommentar
Vil det si at jeg må lage en kontroll for alle feltene som jeg vil tillate å være tom.

slik?

if (strlen($artistbilde)==0) {$artistbilde="null"}

5827515[/snapback]

 

du kan feks bruke en trinær operator slik:

 

$artist = empty($_POST['artist'] ? null : strip_tags($_POST['artist']);

 

osv etc mm

 

Da trenger du ikke utføre noen ytterligere sjekk.. MEN - stort men. Antar at det er noen felt du vil ha obligatorisk. De må føre til en feilmelding, gjerne i javascript, men også i php-koden (dobbeltsjekk og tilfelle bruker har deaktivert javascript)

5827783[/snapback]

 

Siden jeg er nye med dette, hva er det som hender i koden her?

Vil det si at variabelen $artist får verdien $artist="null"; når tekst boksen er tom ellers gitt verdi i tekst boksen?

 

hva gjør "?" og ":" og strip_tags()?

5828029[/snapback]

 

Du får inn eksempelvis en artist fra et inputfelt med navn artist med metode post.

Denne henter du ut med $_POST['artist'].

empty() er en funksjon i php, som sjekker om en variabel har verdi og ikke er lik en tom streng (type "").

En trinær operator sier at variabelen er lik første uttrykk (etter ?) hvis dette er sant (true), hvis ikke blir det uttrykket etter : (kolon)..

så $artist = empty($_POST['artist']) ? null : strip_tags($_POST['artist']); sier at hvis artist ikke har noe verdi settes artist til null, hvis ikke beholdes verdien som er sendt fra skjema.

 

Strip_tags() er også en php-funksjon, og den tar vekk alle ting som minner om htmlkode. I tillegg skulle en kanskje hatt med add_slashes() som legger til backslash foran ' og " - for å unngå sql-injection.

5828117[/snapback]

 

 

Slik jeg har forstått det så kan jeg skrive koden slik:

$Artist=$_POST["artist"];
empty($Artist) ? null :;

 

Eller er det feil?

 

Fordi jeg skal gjøre noen flere kontroller. Slik som om

navn = bokstaver

nummer = tall

og at nummer ikker overskriver en gitt grense.

Lenke til kommentar

Før de kommer en moderator her. kan dere slutte å quote så mye ? :)

 

Ikke helt rett..

 

$var = er dette sant ? "ja" : "nei"

 

hvis det du sjekker er sant blir $var = ja, hvis ikke nei

 

Med if() skriver du det slik

 

if( er dette sant? )

$var = "ja";

else

$var = "nei";

 

EDIT: noen skrivefeiler

Endret av trondes
Lenke til kommentar

Slik jeg har forstått det så kan jeg skrive koden slik:

$Artist=$_POST["artist"];
empty($Artist) ? null :;

 

Eller er det feil?

 

Fordi jeg skal gjøre noen flere kontroller. Slik som om

navn = bokstaver

nummer = tall

og at nummer ikker overskriver en gitt grense.

5828313[/snapback]

 

Nei, riktig syntaks på trinær slik du har den er:

$artist = isset($_POST['artist'])? $_POST['artist'] : null;

Problemet med denne er at "" (tom streng) blir godkjent.

 

Jeg ville heller hatt den omvendt

 
$artist = empty($_POST['artist']) ? null : $_POST['artist'];

 

og så kan du sjekke for nullverdier, hvis slike ikke er tillatt:

if($artist == null) // skriv ut en passende feilmelding

 

Du kan sjekke for nummeriske verdier, eksempelvis med ereg slik:

 

 if(!preg_match("^[[:digit:]]$", $postnr)
// skriv ut passende feilmelding

 

eller vi kan gjøre flere ting på en gang

$postnr = preg_match("^[[:digit:]]{4}$, $_POST['postnummer']) ? $_POST['postnummer'] : null;

 

[[:digit:]] er det samme som [0-9]

 

På samme måte kan du sjekke for bokstaver eller mønster.

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å
×
×
  • Opprett ny...