Tullen007 Skrevet 28. mars 2006 Skrevet 28. mars 2006 (endret) 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 28. mars 2006 av Tullen007
Axentrix Skrevet 28. mars 2006 Skrevet 28. mars 2006 (endret) Hva er feilmeldingen? edit: Prøv å legge in "$var =" forran alle mysql_query, slik: $var = mysql_query(".,...."); if(!$var) { mysql_error(); } Endret 28. mars 2006 av Axentrix
trondes Skrevet 28. mars 2006 Skrevet 28. mars 2006 (endret) 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 28. mars 2006 av trondes
Tullen007 Skrevet 28. mars 2006 Forfatter Skrevet 28. mars 2006 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 ?
CruellaDeVille Skrevet 28. mars 2006 Skrevet 28. mars 2006 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
CruellaDeVille Skrevet 28. mars 2006 Skrevet 28. mars 2006 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());
trondes Skrevet 28. mars 2006 Skrevet 28. mars 2006 $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. )
Tullen007 Skrevet 28. mars 2006 Forfatter Skrevet 28. mars 2006 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?
CruellaDeVille Skrevet 28. mars 2006 Skrevet 28. mars 2006 $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.
Tullen007 Skrevet 28. mars 2006 Forfatter Skrevet 28. mars 2006 $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"}
CruellaDeVille Skrevet 28. mars 2006 Skrevet 28. mars 2006 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)
Tullen007 Skrevet 28. mars 2006 Forfatter Skrevet 28. mars 2006 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()?
CruellaDeVille Skrevet 28. mars 2006 Skrevet 28. mars 2006 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.
Tullen007 Skrevet 28. mars 2006 Forfatter Skrevet 28. mars 2006 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.
trondes Skrevet 28. mars 2006 Skrevet 28. mars 2006 (endret) 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 28. mars 2006 av trondes
CruellaDeVille Skrevet 28. mars 2006 Skrevet 28. mars 2006 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.
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å