Avatar billede schunck Juniormester
22. februar 2011 - 22:56 Der er 4 kommentarer og
1 løsning

gem i database

Hvorfor gemmer den ikke i databasen?

Den henter fint indholdet og skriver det i kasserne, men den gemmer det ikke, når jeg ændrer. Scriptet virker fint i andre filer...

IF ($_SERVER["REQUEST_METHOD"]=="POST" ) {
    mysql_query("UPDATE right SET `firmanavn`='".$_POST["firmanavn"]."', `fornavn`='".$_POST["fornavn"]."', `efternavn`='".$_POST["efternavn"]."', `adresse`='".$_POST["adresse"]."', `postnummer`='".$_POST["postnummer"]."', `by`='".$_POST["by"]."', `telefon`='".$_POST["telefon"]."', `cvr`='".$_POST["cvr"]."'");
header("Location: kontakt.php");
    exit();
}


echo "<td class='left' width='75%' align='left' valign='top'><table cellspacing='0' cellpadding='0' border='0'>\n";
$right = mysql_query("SELECT  `firmavn`,`fornavn`,`efternavn`,`adresse`,`postnummer`,`by`,`telefon`,`cvr` FROM `right` WHERE `rightid`=1")  or die(mysql_error());
while(list($firmanavn,$fornavn,$efternavn,$adresse,$postnummer,$by,$telefon,$cvr) = mysql_fetch_row($right)){

echo "<form name='addform' method='post'>\n";
        echo "<table cellpadding='0' cellspacing='0' class='center'>\n<tr>\n";
        echo "<td class='left'>Firmanavn</td><td width='15px'></td>\n";
        echo "<td class='tbl'><input type='text' name='firmanavn' maxlength='30' class='textbox' value='".$firmanavn."' style='width:200px;' /></td>\n";
        echo "</tr>\n<tr>\n";
      echo "<td class='left'>Fornavn</td><td width='15px'></td>\n";
        echo "<td class='tbl'><input type='text' name='fornavn' maxlength='100' class='textbox' value='".$fornavn."' style='width:200px;' /></td>\n";
        echo "</tr>\n<tr>\n";
        echo "<td class='left'>Efternavn</td><td width='15px'></td>\n";
        echo "<td class='tbl'><input type='text' name='efternavn' maxlength='100' class='textbox' value='".$efternavn."' style='width:200px;' /></td>\n";
        echo "</tr>\n<tr>\n";
        echo "<td class='left'>Adresse</td><td width='15px'></td>\n";
        echo "<td class='tbl'><input type='text' name='`adresse`' maxlength='100' class='textbox' value='".$adresse."' style='width:200px;' /></td>\n";
        echo "</tr>\n<tr>\n";
        echo "<td class='left'>Postnummer</td><td width='15px'></td>\n";
        echo "<td class='tbl'><input type='text' name='postnummer' maxlength='4' class='textbox' value='".$postnummer."' style='width:200px;' /></td>\n";
        echo "</tr>\n<tr>\n";
        echo "<td class='left'>By</td><td width='15px'></td>\n";
        echo "<td class='tbl'><input type='text' name='by' maxlength='100' class='textbox' value='".$by."' style='width:200px;' /></td>\n";
        echo "</tr>\n<tr>\n";
        echo "<td class='left'>Telefonnummer</td><td width='15px'></td>\n";
        echo "<td class='tbl'><input type='text' name='telefon' maxlength='100' class='textbox' value='".$telefon."' style='width:200px;' /></td>\n";
        echo "</tr>\n<tr>\n";
        echo "<td class='left'>CVR-nummer</td><td width='15px'></td>\n";
        echo "<td class='tbl'><input type='text' name='cvr' maxlength='100' class='textbox' value='".$cvr."' style='width:200px;' /></td>\n";
        echo "</tr>\n<tr>\n";
        echo "<td align='center' colspan='3'><br />\n";
        echo "<input type='submit' name='add' value='opdater' class='button' /></td>\n";
        echo "</tr>\n</table>\n</form>\n";
}
23. februar 2011 - 05:31 #1
Om det har noget at goere med problemet ved jeg ikke, men jeg ville i formularen indsaette "action=''" og ikke laegge an paa at serveren selv skal finde ud af det, og saa ville jeg sige
"IF($_POST['add'])"
i stedet for
"IF ($_SERVER["REQUEST_METHOD"]=="POST" )"
og yderligere ville jeg have forventet at du siger hvilken raekke af tabellen der skal updates, altsaa
"....UPDATE right SET ...... WHERE `rightid` = 1"

Du har vel checket at koden rent faktisk naar til loekken ved at indsaette
IF ($_SERVER["REQUEST_METHOD"]=="POST" ) {
echo "JEG ER I LOEKKEN";

Og saa kunne du jo tilfoere "or die(mysql_error())" til din update query som du goer i din select query for at se om du faar en error message.
Avatar billede schunck Juniormester
23. februar 2011 - 13:48 #2
Jeg er ikke helt sikker på hvad du mener med "action=", hvor skulle jeg sætte det ind?

Jeg tilføjede "or die" og fik følgende fejlkode:

Unknown column 'firmanavn' in 'field list'

Den kommer uanset om jeg bruger
"IF ($_SERVER["REQUEST_METHOD"]=="POST" )" el.
"IF($_POST['add'])"

Og ja, jeg er i løkken
23. februar 2011 - 17:04 #3
Hvis du er i loekken saa goer action ingen forskel.  (Det er kode-linien echo "<form name='addform' method='post'>\n"; hvor jeg ville have sagt echo "<form action='' name='addform' method='post'>\n";)

Men fejlmeldingen fortaeller helt klart hvorfor der ikke bliver gemt i databasen.  Der er ikke nogen kolonne i tabellen der hedder firmanavn!

Jeg kikkede saa igen paa din SELECT query som du siger fint henter data ud af tabellen.  Der kalder du kolonnen firmavn.  Det havde jeg ikke spottet i foerste omgang.
Avatar billede schunck Juniormester
23. februar 2011 - 17:24 #4
Jeg fandt fejlen... Jeg havde lavet en slåfejl i min database :s - Vil du have pointene? Det var trods alt din "or die" der fik mig på sporet...
Avatar billede schunck Juniormester
23. februar 2011 - 17:27 #5
og havde så ikke spottet dit indlæg med svar ;D

tak for hjælpen
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