Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  3 969
Som tittel sier prøver jeg å putte info fra en form inn i en mysql database. Har ikke mye erfaring med php/html, men har ved hjelp av guider klart å lage noe som jeg tror skal funke. Problemet er at det ikke funker, men jeg får heller ingen feilmelding. Noen som ser feilen og/eller kan hjelpe meg?

(til admin: bedre nå?)

<html>
<Head>
<body>

<form action="insert.php" method="post">

Fullt navn: <br />
<input type="text" name="Navn" width="200"/> <br />
E-post:<br />
<input type="text" name="Epost" /> <br />
Butiknavn: <br />
<input type="text" name="Butiknavn" /> <br />
Beskrivelse: <br />
<textarea rows="8" cols="75" name="Beskrivelse" > </textarea><br />
Positivt: <br />
<textarea rows="4" cols="50" name="Pros" > </textarea> <br />
Negativt: <br />
<textarea rows="4" cols="50" name="Cons" > </textarea> <br />
Terningkast (1-6) <br />
<input textbox maxlength="1" name="Kast" /> <br />

<input type="submit" value="Send inn" name"submit" />
</form>


<?php

if (isset($_POST['submit'])) {

$conn = mysql_connect("localhost","root", "")
or die("Kunne ikke koble til" . mysql_error());

mysql_select_db("test2",$conn);

$sql = "INSERT INTO admin (Navn,Epost,Butikknavn,Beskrivelse,Positivt,Negativt,Terning kast) VALUES ('$_POST[Navn]','$_POST[Epost]','$_POST[Butiknavn]','$_POST[Beskrivelse]','$_POST[Pros]','$_POST[Cons]','$_POST[Kast]')";


mysql_query($sql, $conn);

mysql_close($conn);
}
?>

</body>
</Head>
</html>
Vis hele sitatet...
Sikkerhetsklarert
Du bruker mysql_query() feil.

Den skal innholde selve queryen, ikke connectionen.

Jeg pleier å gjøre det slik:

Kode

$link = mysql_connect ($mysql_host, $mysql_user, $mysql_pass) or die("Feil med connection");
			if ( $link ) {
			mysql_select_db($mysql_db) or die(mysql_error());
mysql_query( "INSERT INTO admin (Navn,Epost,Butikknavn,Beskrivelse,Positivt,Negativt,Terning kast) VALUES ('$_POST[Navn]','$_POST[Epost]','$_POST[Butiknavn]','$_POST[Beskrivelse]','$_POST[Pros]','$_POST[Cons]','$_POST[Kast]')" ) or die(mysql_error());
Dessuten har du et felt som heter "terning kast" dette må du nok enkapsulere med anførselstegn. Uansett ville jeg renamet det til tergningkast, da du har en orddelingsfeil der

Og til slutt, du har satt form action til insert.php.
Det er da der du vil ha phpkoden din, hvis du ønsker å kjøre php`n i samme fil må form action være blank eller "". Nå vil formen sende data i POST til insert.php når man submitter. Dvs phpkoden din vil aldri kjøres.
Sist endret av Pjukern; 15. september 2013 kl. 22:26.
Overskuddsmateriell
mysql_query er også en dum måte å kjøre querys på hvis du ser fremover i tid, selve kommandoen vil forsvinne fra PHP.
Du bør begynne med mysqli eller PDO_MYSQL. Det er like greit å begynne med det i stedet for å lære seg en måte å kjøre query's på som vil utgå om kort tid.
Sitat av Pjukern Vis innlegg
Du bruker mysql_query() feil.

Den skal innholde selve queryen, ikke connectionen.

Jeg pleier å gjøre det slik:

Kode

$link = mysql_connect ($mysql_host, $mysql_user, $mysql_pass) or die("Feil med connection");
			if ( $link ) {
			mysql_select_db($mysql_db) or die(mysql_error());
mysql_query( "INSERT INTO admin (Navn,Epost,Butikknavn,Beskrivelse,Positivt,Negativt,Terning kast) VALUES ('$_POST[Navn]','$_POST[Epost]','$_POST[Butiknavn]','$_POST[Beskrivelse]','$_POST[Pros]','$_POST[Cons]','$_POST[Kast]')" ) or die(mysql_error());
...
Vis hele sitatet...
mysql_query sitt andre parameter er valgfritt og sier hvilken mysql-tilkobling queryen skal bruke. Les her. Det som også står der er at mysql_* er fy-fy og man skal heller bruke PDO klassene.