Avatar billede koch Nybegynder
15. februar 2005 - 18:10 Der er 5 kommentarer og
1 løsning

Kan ikke tilføje data til database vha. input form

Jeg er ved at lave en inoutform så jeg kan indtaste data i min database. Problemet er bare, at variablerne som jeg lægger noget i er tomme! Se nedenfor.

html filen hvor inoutformen er i ser således ud:

<html>
<body>
<center>
<form method="post" action="script.php">
<input type="hidden" name="nr" value="null">
<table>
<tr>
<td align="left">M&aelig;rke</td>
<td><input type="text" name="mark"></td>
</tr>
<tr>
<td align="left">&Aring;rgang</td>
<td><input type="text" name="year" size="10"></td>
</tr>
<tr>
<td align="left">Bem&aelig;rk</td>
<td><input type="text" name="notice" size="100"></td>
</tr>
<tr>
<td align="left">Km.</td>
<td><input type="text" name="km" size="40"></td>
</tr>
<tr>
<td align="left">Pris</td>
<td><input type="text" name="price" size="20"></td>
</tr>
<tr>
<td colspan="2">
<p align="center">
<input type="submit" value="Enter record">
</td></tr></table></form></body></html>

php filen som skal tilføje dataene i databasen ser således ud

<?
$DBhost = "localhost";
$DBuser = "root";
$DBpass = "";
$DBName = "cars";
$table = "carlist";
mysql_connect($DBhost,$DBuser,$DBpass) or die("Unable to connect to database");

@mysql_select_db("$DBName") or die("Unable to select database $DBName");

$sqlquery = "insert into $table values('$mark','$year','$notice','$km', '$price','$nr')";

$galleri = mysql_query($sqlquery);

mysql_close();
print "<html><body><center>";
print "<p>You have just entered this record<p>";
print "Mark(M&aelig;rke) : $mark<br>";
print "Year(&Aring;rgang) : $year<br>";
print "Notice(Bem&aelig;rk) :$notice<br>";
print "Km.(Kilometer) :$km<br>";
print "Price(Pris) :$price<br>";
print "</center></body></html>";
?>

Men felterne er tomme når der er submitted! På nær nr da denne har egenskaben auto_increment!

Der er oprettet en række i databasen, men den er tom med udtagelse af nr-felte!

Hvad gør jeg mon galt?
Avatar billede detox Nybegynder
15. februar 2005 - 18:31 #1
Mon ikke det er register globals der driller. Du kan tjekke det ved at indsætte:

extract($_POST); // INDSÆT
$sqlquery = "insert into $table values('$mark','$year','$notice','$km', '$price','$nr')";
Avatar billede detox Nybegynder
15. februar 2005 - 18:35 #2
Hvis det hjælper kan du indsætte:

$mark = $_POST['mark'];
$year = $_POST['year'];
$notice = $_POST['notice'];
$km = $_POST['km'];
$price = $_POST['price'];

istedet for:

extract($_POST); // INDSÆT
Avatar billede koch Nybegynder
15. februar 2005 - 18:41 #3
Ok, det er søreme(for ikke at bande) imponerende, det virker, kanon! Vil det sige at alle værdierne var i post-funktionen, men skulle 'pakkes ud' eller hvordan kan det forklares?
Avatar billede detox Nybegynder
15. februar 2005 - 18:56 #4
Ja, du skal hente dine værdier i $_POST arrayet. Det vil så osse gøre sig gældende for de andre superglobale variabler som fx: $_GET, $_COOKIE, $_SERVER, $_FILES og $_SESSION.
Læs mere her:
http://dk2.php.net/manual/en/language.variables.predefined.php
Avatar billede koch Nybegynder
15. februar 2005 - 19:23 #5
Jeg takker mange gange. Smid et svar.
Avatar billede detox Nybegynder
15. februar 2005 - 20:01 #6
Velbekommen
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
Computerworld tilbyder specialiserede kurser i database-management

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

IT-JOB