Avatar billede wheatus Nybegynder
22. juni 2002 - 19:57 Der er 23 kommentarer og
1 løsning

php/mysql: forms -> DB

Har lige lukket et lignende spørgsmål - prøver nu at reformulere et såre simpelt problem.
Kører med mysql, apache og php.

Jeg vil gerne ligge data i en database - det er nemt nok, men jeg vil gerne kunne ligge brugerindtastede data ind i DB'en.
Jeg har fundet en god artikel der beskriver det ret simpelt, men jeg får det bare ikke til at virke.

Der bliver slet ikke tilføjet en post i DB'en.
Hvis jeg udkommenterer if($submit), så tilføjes der en blank post. HJÆÆÆÆÆÆÆLP...
Det er vel noget med at der ikke bliver tilskrevet nogen værdi til variablerne ($first osv...).

Artiklen er på dette link:
http://hotwired.lycos.com/webmonkey/99/21/index3a_page4.html?tw=programming

Koden fra artiklen er også listet her:

<html>
<body>

<?php

if ($submit) {

  // process form

  $db = mysql_connect("localhost", "root");
  mysql_select_db("mydb",$db);
  $sql = "INSERT INTO employees (first,last,address,position) VALUES ('$first','$last','$address','$position')";
  $result = mysql_query($sql);
  echo "Thank you! Information entered.\n";

} else{

  // display form

?>

  <form method="post" action="<?php echo $PHP_SELF?>">

  First name:    <input type="Text" name="first"><br>
  Last name:    <input type="Text" name="last"><br>
  Address:    <input type="Text" name="address"><br>
  Position:    <input type="Text" name="position"><br>
  <input type="Submit" name="submit" value="Enter information">

  </form>

<?php

} // end if

?>

</body>
</html>
Avatar billede aslan Nybegynder
22. juni 2002 - 20:10 #1
Selvom du ikke sat en kode til din db skal du stadig gøre plads for det når du opretter din forbindelse til den....
Avatar billede wheatus Nybegynder
22. juni 2002 - 20:11 #2
jeg tror ikke jeg ved hvad du mener - prøv at omformuler...
Avatar billede aslan Nybegynder
22. juni 2002 - 20:11 #3
$db = mysql_connect("localhost", "root","");
Avatar billede aslan Nybegynder
22. juni 2002 - 20:13 #4
prøv også sådan hvis det ikke virker:

$connection = mysql_connect("localhost",
                            "root",
                            "");
mysql_select_db("$db", $connection) or die (mysql_error());
Avatar billede wheatus Nybegynder
22. juni 2002 - 20:14 #5
2 sekunder - prøver lige...
Avatar billede wheatus Nybegynder
22. juni 2002 - 20:15 #6
hjælper ikke...ingen forskel
Avatar billede wheatus Nybegynder
22. juni 2002 - 20:17 #7
jeg kan godt få kontakt til db'en, hvis jeg fx sætter værdierne direkte ind i
insert into- sætningen, så bliver værdierne kastet ind i DB'en, så probl. må være at der ikke bliver lagt nogen værdier ind i variablerne...
Avatar billede aslan Nybegynder
22. juni 2002 - 20:19 #8
$connection = mysql_connect("localhost",
                            "root",
                            "");
mysql_select_db("$db", $connection) or die (mysql_error());
$insertSQL = "insert into employees(first,last,address,position)
              values ('$first','$last','$address','$position')";
mysql_query($insertSQL);
Avatar billede aslan Nybegynder
22. juni 2002 - 20:19 #9
prøv denne så..
Avatar billede aslan Nybegynder
22. juni 2002 - 20:20 #10
root er user ikke?
Avatar billede wheatus Nybegynder
22. juni 2002 - 20:24 #11
virker heller ikke - root er user...hvad tror du det kan være?
Avatar billede aslan Nybegynder
22. juni 2002 - 20:25 #12
hvordan ser din db række ud i mysql kan du ikke lige smide den op?
Avatar billede wheatus Nybegynder
22. juni 2002 - 20:29 #13
Feltnavn  Datatype Attributter Nulværdi Standardværdi Ekstra Handling
first  varchar(12)  Nej      Ændre  Slet  Primær  Indeks  Unik Fuldtekst 
last  varchar(12)    Nej      Ændre  Slet  Primær  Indeks  Unik Fuldtekst  address  varchar(12) Nej      Ændre  Slet  Primær  Indeks  Unik Fuldtekst 
position  varchar(12)Nej      Ændre  Slet  Primær  Indeks  Unik Fuldtekst

det er tabellens egenskaber - jeg har ikke smidt noget data i den endnu - men dette er hvad der kommer frem når jeg klikker på egenskaber for tabellen i phpmyadmin
Avatar billede aslan Nybegynder
22. juni 2002 - 20:32 #14
prøv at skrive echo"$first";  et eller andet sted i din fil og índtast noget i din form og submit...
Avatar billede wheatus Nybegynder
22. juni 2002 - 20:36 #15
den clearer bare felterne - den skriver ikke værdien af $first på skærmen...
Avatar billede aslan Nybegynder
22. juni 2002 - 20:40 #16
aha.. din fejl ligger i formen...

prøv:

  <form method="post" action="">

  First name:    <input type="text" name="first"><br>
  Last name:    <input type="text" name="last"><br>
  Address:    <input type="text" name="address"><br>
  Position:    <input type="text" name="position"><br>
  <input type="submit" name="submit" value="Enter information">

  </form>
Avatar billede wheatus Nybegynder
22. juni 2002 - 20:44 #17
nej, ingen forskel...
Avatar billede Slettet bruger
22. juni 2002 - 20:48 #18
$connection = mysql_connect("localhost", "root","");
mysql_select_db("$db", $connection) or die (mysql_error());
$insertSQL = "insert into employees(first,last,address,position) values ('$first','$last','$address','$position') OR DIE mysql_error()";
echo $insertSQL;
result = mysql_query($insertSQL);

Se om din query udskriver det du tror....
Avatar billede wheatus Nybegynder
22. juni 2002 - 20:55 #19
den kommer med følgende efter el bartos råd:
Parse error: parse error, unexpected '=' in c:\apache\htdocs\registrer.php on line 15

line 15 er linien med:
result = mysql...
Avatar billede wheatus Nybegynder
22. juni 2002 - 21:05 #20
kedeligt - rendte ind i dette problem allerede inden jeg kom i gang med at kode php, men nu se det ud til at jeg aldrig kommer videre
Avatar billede aslan Nybegynder
22. juni 2002 - 21:39 #21
Det kan være at du har sat din apachi forkert op....

Hvis du har lyst kan du prøve at slette det hele og lade andre gøre arbejdet for dig hent filen fra :

www.nusphere.com

Den sætter din apachi og mysql automatisk op for dig...
Avatar billede fri-hash Nybegynder
22. juni 2002 - 21:39 #22
grunden til at du far den fejl i elbarto's eksempel er at der mangler $ foran variabelnavnet

derudover ved jeg ikke om funktionen die() virker uden parameter-parantes, på samme måde som
echo "hash";
er det samme som
echo("hash");

ellers hedder det
...or die(mysql_error());
(garanteret tastefejl fra bartos side)

derudover burde
<form method="post" action="<?php echo $PHP_SELF?>">
se sådan ud istedet:
<form method="post" action="<?php echo $PHP_SELF; ?>">

altså med semikolon efter en statement og et mellemrum inden endphp-tagget ?>
Avatar billede wheatus Nybegynder
23. juni 2002 - 11:05 #23
lukker
Avatar billede fri-hash Nybegynder
24. juni 2002 - 16:58 #24
jamen så selv tak for hjælpen på egne og andres vegne
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
Kurser inden for grundlæggende programmering

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