Avatar billede nederbasse Nybegynder
01. oktober 2003 - 12:14 Der er 26 kommentarer og
1 løsning

Indsæt data i Mysql fra form

Halløj
Her er et totalt newbie PHP problem:
Hvordan får jeg data ind i min mysql database med følhende kode:

<?php
$navn = $_REQUEST["navn"];
$adresse = $_REQUEST["adresse"];
$titel = $_REQUEST["titel"];
$email = $_REQUEST["email"];

$connection = mysql_connect("localhost", "mitadm", "mitpass");
mysql_select_db("databasen", $connection);

mysql_query("insert into tbltest (navn, adresse, titel, email)
              values ('$navn', '$adresse', '$titel', '$email' )");
?>


Lars
Avatar billede codebase Praktikant
01. oktober 2003 - 12:16 #1
hvad er prtoblemet ?
Avatar billede martinbk Nybegynder
01. oktober 2003 - 12:37 #2
<form method="post">
<input type="text" name="navn">
<input type="text" name="adresse">
<input type="text" name="titel">
<input type="text" name="email">
<input type="submit" name="submit" value="submit">
</form


<?php
if ($_POST['submit']) {
$navn = $_POST["navn"];
$adresse = $_POST["adresse"];
$titel = $_POST["titel"];
$email = $_POST["email"];

$connection = mysql_connect("localhost", "mitadm", "mitpass");
mysql_select_db("databasen", $connection);

mysql_query("insert into tbltest (navn, adresse, titel, email)
              values ('$navn', '$adresse', '$titel', '$email' )");
}
?>
Avatar billede martinbk Nybegynder
01. oktober 2003 - 12:39 #3
hvis ikke det var hvad du mente, bliver du nok nød til at specificere dit spørgsmål lidt mere
Avatar billede martinbk Nybegynder
01. oktober 2003 - 12:40 #4
desuden mangler jeg lige en > i min afsluttende HTML </form> istedet for </form
Avatar billede nederbasse Nybegynder
01. oktober 2003 - 13:00 #5
Problmet er at der ikke kommer noget i databasen
Avatar billede martinbk Nybegynder
01. oktober 2003 - 13:09 #6
hmm prøv med mysql_query("INSERT INTO tabel (navn, adresse, titel, email) VALUES (, '$_POST[navn]', '$_POST[adresse]', '$_POST[titel]', '$_POST[email]')") or die(mysql_error());
Avatar billede avminarm Juniormester
01. oktober 2003 - 13:46 #7
Prøv at kigge lidt på www.mbn.dk - der ligger en god guide
Avatar billede nederbasse Nybegynder
01. oktober 2003 - 13:46 #8
Virker stadig ikke, der kommer heller ingen fejl.
jeg har lavet en testtabel og her er koden jeg bruger:

<?php
if ($_POST['submit']) {
$fnavn = $_POST["f_navn"];
$enavn = $_POST["e_navn"];

$connection = mysql_connect("localhost", "mitlogin", "mitpass");
mysql_select_db("mentor", $connection);

mysql_query("INSERT INTO mentortest(fnavn, enavn) VALUES (, '$_POST[f_navn]', '$_POST[e_navn]')") or die(mysql_error());
}
?>

Felterne i formularen hedder enavn og fnavn

Lars
Avatar billede avminarm Juniormester
01. oktober 2003 - 13:55 #9
vis lige et dump af din database struktur
Avatar billede nederbasse Nybegynder
01. oktober 2003 - 14:27 #10
id            fornavn  efternavn 
20030919084803 Lars Nedergaard
20030919084850 Gurli Tullefjæs
20030919084919 Søren Slipstream

Fandt lige en fejl 40, tabelnavnet som er rette uden det hjalp
Avatar billede avminarm Juniormester
01. oktober 2003 - 14:30 #11
du skal benytte dine tabel navne:

mysql_query("INSERT INTO mentortest(fnavn, enavn) VALUES (, '$_POST[f_navn]', '$_POST[e_navn]')") or die(mysql_error());
}

skal være:

mysql_query("INSERT INTO mentortest(fornavn, efternavn) VALUES ('$_POST[f_navn]', '$_POST[e_navn]')") or die(mysql_error());
}
Avatar billede nederbasse Nybegynder
02. oktober 2003 - 08:52 #12
Virker stadig ikke
kode:

<?php
if ($_POST['submit']) {
$f_navn = $_POST["fnavn"];
$e_navn = $_POST["enavn"];

$connection = mysql_connect("localhost", "mentoradm", "Rodondindron");
mysql_select_db("mentor", $connection);

mysql_query("INSERT INTO mentortest(fornavn, efternavn) VALUES ('$_POST[f_navn]', '$_POST[e_navn]')") or die(mysql_error());
}
?>

Felterne i formularen hedder fnavn og enavn

Lars
Avatar billede avminarm Juniormester
02. oktober 2003 - 09:12 #13
disse linier er overflødige:

$f_navn = $_POST["fnavn"];
$e_navn = $_POST["enavn"];

Ret

mysql_query("INSERT INTO mentortest(fornavn, efternavn) VALUES ('$_POST[f_navn]', '$_POST[e_navn]')") or die(mysql_error());

til

mysql_query("INSERT INTO mentortest(fornavn, efternavn) VALUES ('$_POST[fnavn]', '$_POST[enavn]')") or die(mysql_error());

Her har du nemlige variablerne direkte fra din form via $_POST



ellers lad mig se din form - eller endnu bedre hele dit script

btw: det er ikke så smart at vise dit brugernavn + pass her på exp - skriv til admin.
Avatar billede nederbasse Nybegynder
02. oktober 2003 - 10:23 #14
Ups brugernsvn !!
Det var i mprges inden kaffen
Avatar billede nederbasse Nybegynder
02. oktober 2003 - 10:26 #15
Skal man ikke definere variabler inden man bruger dem i PHP ?
Avatar billede nederbasse Nybegynder
02. oktober 2003 - 10:36 #16
Nix dutter ikke
PHP koden:
<?php
if ($_POST['submit']) {

$connection = mysql_connect("localhost", "admin", "er skiftet");
mysql_select_db("mentor", $connection);

mysql_query("INSERT INTO mentortest(fornavn, efternavn) VALUES ('$_POST[fnavn]', '$_POST[enavn]')") or die(mysql_error());
}
?>

HTML form:
<form method="POST" action="inserttest.php">
    Fornavn  <input type="text" name="fnavn" size="31">
      Efternavn <input type="text" name="enavn" size="60">
  <p><input type="submit" value="Send" name="B1"><input type="reset" value="Nulstil" name="B2"></p>
</form>

Lars
Avatar billede avminarm Juniormester
02. oktober 2003 - 11:42 #17
Har du denne kode i samme fil? - så skal filen hedde "inserttest.php", men prøv at gemme nedenstående i én fil - kald den: test.php (eller hvad som helst bare den ender på .php)

<?php echo $_SERVER['PHP_SELF']; ?> = udskriver filens eget navn under action


<?php
// denne her vil kun virke hvis du har et felt med navnet "submit"
// derfor har jeg rettet din submitknap
if ($_POST['submit']) {

$connection = mysql_connect("localhost", "admin", "er skiftet");
mysql_select_db("mentor", $connection);

mysql_query("INSERT INTO mentortest (fornavn, efternavn) VALUES ('$_POST[fnavn]', '$_POST[enavn]')") or die(mysql_error());
}
?>

HTML form:
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    Fornavn  <input type="text" name="fnavn" size="31">
      Efternavn <input type="text" name="enavn" size="60">
  <p><input type="submit" value="Send" name="submit"><input type="reset" value="Nulstil" name="B2"></p>
</form>
Avatar billede nederbasse Nybegynder
02. oktober 2003 - 12:39 #18
Det er 2 forskellige filer, en form som sender til insert siden
Avatar billede avminarm Juniormester
02. oktober 2003 - 13:08 #19
prøv det i en fil - nøjagtig som vist ovenfor - har du været inde på mbn.dk?
Avatar billede nederbasse Nybegynder
02. oktober 2003 - 15:42 #20
DET VIRKER ja jeg har checket mbn.dk og jeg kunne sagtens sætte data i db'en når jeg skrev værdien i Values, det er når der er variabler der er problemer
Avatar billede roo104 Nybegynder
02. oktober 2003 - 15:46 #21
$_POST['submit'] afleverer den ikk en value og ikke en boolean ?
Avatar billede avminarm Juniormester
03. oktober 2003 - 09:29 #22
roo104 - jo hvorfor?
Avatar billede avminarm Juniormester
03. oktober 2003 - 09:31 #23
nederbasse>> tak for points - et lille tip dine values bør holds for sig dvs:

VALUES ('$_POST[fnavn]', '$_POST[enavn]')

burde være

VALUES ('".$_POST['fnavn']."', '".$_POST['enavn']."')

Det andet virker også, men nu er der ingen tvivl om hvordan hvad skal fortolkes af PHP
Avatar billede roo104 Nybegynder
03. oktober 2003 - 16:24 #24
for at den skal gå ind i if særningen skal den være sand. Så skal du vel sætte det du henter lig et eller andet, for at den bliver sand.
if ($_POST['submit'] == "Send") {
Avatar billede avminarm Juniormester
04. oktober 2003 - 23:27 #25
nej ikke nødvendigvid, men det er da klart at foretrække, samt at bruge isset()
Avatar billede danielic Nybegynder
12. december 2005 - 19:35 #26
Ja jeg ville også benytte isset() :P
Avatar billede avminarm Juniormester
12. december 2005 - 20:00 #27
det ville jeg også ;o) - der er nok en der kigger på gamle spørgsmål :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester