Avatar billede overgreat Forsker
22. juli 2005 - 20:56 Der er 18 kommentarer og
1 løsning

ændringsformular opdaterer ikke ændringer

Hej
Nedenstående ændringsformular vil ikke opdatere felterne der ændres.

Når den indlæsses finder den de rigtige værdier.
Når felterne ændres og der trykkes på afsendelsesknappen, kører den fint igennem og gives mig succes-resultatet, men den har ikke ændret noget?

Er der en der kan hjælpe?

På forhånd mange tak.

------------------------


<link rel="stylesheet" type="text/css" href="style.css"><?

if($up==ja){


include("config.php");

$db = mysql_connect($server, $user, $pass);

mysql_select_db($database, $db);

$foresp = mysql_query("UPDATE `bil_bil` SET `kategori` = '$kategori' WHERE `id` = '$id' ");
$foresp = mysql_query("UPDATE `bil_bil` SET `maerke` = '$maerke' WHERE `id` = '$id' ");
$foresp = mysql_query("UPDATE `bil_bil` SET `model` = '$model' WHERE `id` = '$id' ");
$foresp = mysql_query("UPDATE `bil_bil` SET `variant` = '$variant' WHERE `id` = '$id' ");
$foresp = mysql_query("UPDATE `bil_bil` SET `type` = '$type' WHERE `id` = '$id' ");
$foresp = mysql_query("UPDATE `bil_bil` SET `bstof` = '$bstof' WHERE `id` = '$id' ");
$foresp = mysql_query("UPDATE `bil_bil` SET `farve` = '$farve' WHERE `id` = '$id' ");
$foresp = mysql_query("UPDATE `bil_bil` SET `aar` = '$aar' WHERE `id` = '$id' ");
$foresp = mysql_query("UPDATE `bil_bil` SET `afgift` = '$afgift' WHERE `id` = '$id' ");
$foresp = mysql_query("UPDATE `bil_bil` SET `special` = '$special' WHERE `id` = '$id' ");
$foresp = mysql_query("UPDATE `bil_bil` SET `pris` = '$pris' WHERE `id` = '$id' ");
$foresp = mysql_query("UPDATE `bil_bil` SET `km` = '$km' WHERE `id` = '$id' ");

echo "<center><table cellspacing='0' cellpadding='0' width='600'><tr><td background='knapper/toppen.jpg' width='600' height='90'>&nbsp;</td></tr><tr><td background='knapper/linien.jpg'><center>
<br>
<br><img src='knapper/succesc.jpg'></center><br><br>
<br><br><br><center><a href='retbil.php'><img src='knapper/retur.jpg' border='0'></a>
<br>
<br></center></td></tr><tr><td background='knapper/bunden.jpg' width='600' height='5'></td></tr></table></center>";

?>


<?

}else{

include("config.php");

$db = mysql_connect($server, $user, $pass);

mysql_select_db($database, $db);

?>
<?php

$forespa = mysql_query("SELECT kategori, maerke, model, variant, type, bstof, farve, aar, pris, km, afgift, special FROM bil_bil WHERE id = '$id' ");

while ($dataa = mysql_fetch_row($forespa)){

$vigtig = $dataa['0'];
$vigtiga = $dataa['1'];
$vigtigb = $dataa['2'];
$vigtigc = $dataa['3'];
$vigtigd = $dataa['4'];
$vigtige = $dataa['5'];
$vigtigf = $dataa['6'];
$vigtigg = $dataa['7'];
$vigtigh = $dataa['8'];
$vigtigi = $dataa['9'];
$vigtigj = $dataa['10'];
$vigtigk = $dataa['11'];


?>
<FORM METHOD=POST ACTION='rettelse3.php?up=ja'>

<table cellspacing="3" cellpadding="3" width="90%">

<tr valign="top">
      <td bgcolor="#efefef">
      <h2><b>Kategori:</b>
<br>
<select name="kategori">
<?php

$foresp = mysql_query("SELECT id, kategori FROM bil_kategori WHERE id <> '1' ORDER BY id DESC ");
$valgtId = $vigtig;

while ($data = mysql_fetch_row($foresp)){
if ($data[0] == $valgtId){
  $strSelected = "selected";
}else{
  $strSelected = "";
  }
echo "<option value=$data[0] $strSelected>$data[1]</option>";

}


?>
</select>
     
    </h2></td>
      <td bgcolor="#d2d2d2"><h2><b>Bilmærke:</b>
<br>
<select name="maerke">
<?php

$foresp = mysql_query("SELECT id, maerke FROM bil_maerke WHERE id <> '1' ORDER BY id DESC ");
$valgtId = $vigtiga;

while ($data = mysql_fetch_row($foresp)){
if ($data[0] == $valgtId){
  $strSelected = "selected";
}else{
  $strSelected = "";
  }
echo "<option value=$data[0] $strSelected>$data[1]</option>";

}


?>
</select>
     
    </h2></td>
      <td bgcolor="#efefef"><h2><b>Bilmodel:</b>
<br>
<select name="model">
<?php

$foresp = mysql_query("SELECT id, model FROM bil_model WHERE id <> '1' ORDER BY id DESC ");
$valgtId = $vigtigb;

while ($data = mysql_fetch_row($foresp)){
if ($data[0] == $valgtId){
  $strSelected = "selected";
}else{
  $strSelected = "";
  }
echo "<option value=$data[0] $strSelected>$data[1]</option>";

}


?>
</select>
     
    </h2></td>
      <td bgcolor="#d2d2d2"><h2><b>Variant:</b>
<br>
<select name="variant">
<?php

$foresp = mysql_query("SELECT id, variant FROM bil_variant WHERE id <> '1' ORDER BY id DESC ");
$valgtId = $vigtigc;

while ($data = mysql_fetch_row($foresp)){
if ($data[0] == $valgtId){
  $strSelected = "selected";
}else{
  $strSelected = "";
  }
echo "<option value=$data[0] $strSelected>$data[1]</option>";

}


?>
</select>
     
    </h2></td>
</tr>
<tr valign="top">
      <td bgcolor="#d2d2d2"><h2><b>Type:</b>
<br>
<select name="type">
<?php

$foresp = mysql_query("SELECT id, type FROM bil_type WHERE id <> '1' ORDER BY id DESC ");
$valgtId = $vigtigd;

while ($data = mysql_fetch_row($foresp)){
if ($data[0] == $valgtId){
  $strSelected = "selected";
}else{
  $strSelected = "";
  }
echo "<option value=$data[0] $strSelected>$data[1]</option>";

}


?>
</select>
     
    </h2></td>
      <td bgcolor="#efefef"><h2><b>Brændstof:</b>
<br>
<select name="bstof">
<?php

$foresp = mysql_query("SELECT id, bstof FROM bil_bstof WHERE id <> '1' ORDER BY id DESC ");
$valgtId = $vigtige;

while ($data = mysql_fetch_row($foresp)){
if ($data[0] == $valgtId){
  $strSelected = "selected";
}else{
  $strSelected = "";
  }
echo "<option value=$data[0] $strSelected>$data[1]</option>";

}


?>
</select>
     
    </h2></td>
      <td bgcolor="#d2d2d2"><h2><b>Farve:</b>
<br>
<select name="farve">
<?php

$foresp = mysql_query("SELECT id, farve FROM bil_farve WHERE id <> '1' ORDER BY id DESC ");
$valgtId = $vigtigf;

while ($data = mysql_fetch_row($foresp)){
if ($data[0] == $valgtId){
  $strSelected = "selected";
}else{
  $strSelected = "";
  }
echo "<option value=$data[0] $strSelected>$data[1]</option>";

}


?>
</select>
     
    </h2></td>
      <td bgcolor="#efefef"><h2><b>Årgang:</b>
<br>
<select name="aar">
<?php

$foresp = mysql_query("SELECT id, aar FROM bil_aar WHERE id <> '1' ORDER BY id DESC ");
$valgtId = $vigtigg;

while ($data = mysql_fetch_row($foresp)){
if ($data[0] == $valgtId){
  $strSelected = "selected";
}else{
  $strSelected = "";
  }
echo "<option value=$data[0] $strSelected>$data[1]</option>";

}


?>
</select>
     
    </h2></td>
</tr>
<tr valign="top">
      <td bgcolor="#efefef"><h2><b>Pris:</b>
<br><TEXTAREA NAME="pris" cols="25" rows="1"><? echo $vigtigh; ?></textarea></h2></td>
      <td bgcolor="#d2d2d2"><h2><b>Km:</b>
<br><TEXTAREA NAME="km" cols="25" rows="1"><? echo $vigtigi; ?></textarea></h2><br><br></td>
      <td bgcolor="#efefef"><h2><b>Afgift:</b>
<br>
<select name="afgift">
<?php

$foresp = mysql_query("SELECT id, afgift FROM bil_afgift WHERE id <> '1' ORDER BY id DESC ");
$valgtId = $vigtigj;

while ($data = mysql_fetch_row($foresp)){
if ($data[0] == $valgtId){
  $strSelected = "selected";
}else{
  $strSelected = "";
  }
echo "<option value=$data[0] $strSelected>$data[1]</option>";

}


?>
</select>
     
    </h2></td>
      <td bgcolor="#d2d2d2">&nbsp;</td>
</tr>
<tr valign="top">
<td colspan="1" bgcolor="#d2d2d2">
<h2><b>Specialhensyn:</b>
<br>
<select name="special">
<?php

$foresp = mysql_query("SELECT id, special FROM bil_special WHERE id <> '1' ORDER BY id DESC ");
$valgtId = $vigtigk;
}
while ($data = mysql_fetch_row($foresp)){
if ($data[0] == $valgtId){
  $strSelected = "selected";
}else{
  $strSelected = "";
  }
echo "<option value=$data[0] $strSelected>$data[1]</option>";

}


?>
</select>
     
    </h2></td>
</tr>
</table>

<br>
<INPUT TYPE=submit VALUE=SKRIV>
</FORM><p>
</center>

<?
}
?>
Avatar billede kdjweb Nybegynder
22. juli 2005 - 21:12 #1
noget som vil hjælpe meget med at finde din fejl var at skrive echo mysql_error(); efter din query, så kan du måske selv løse fejlen.
Avatar billede kdjweb Nybegynder
22. juli 2005 - 21:14 #2
^ forresten ville det være smart at lave dine query om til en.. det er jo samme tabel og hvor WHERE er $id...
Avatar billede nielle Nybegynder
22. juli 2005 - 21:17 #3
Skal vi lige starte med at slå fast at din serie af update-sætninger:

$foresp = mysql_query("UPDATE `bil_bil` SET `kategori` = '$kategori' WHERE `id` = '$id' ");
$foresp = mysql_query("UPDATE `bil_bil` SET `maerke` = '$maerke' WHERE `id` = '$id' ");
$foresp = mysql_query("UPDATE `bil_bil` SET `model` = '$model' WHERE `id` = '$id' ");
$foresp = mysql_query("UPDATE `bil_bil` SET `variant` = '$variant' WHERE `id` = '$id' ");
$foresp = mysql_query("UPDATE `bil_bil` SET `type` = '$type' WHERE `id` = '$id' ");
$foresp = mysql_query("UPDATE `bil_bil` SET `bstof` = '$bstof' WHERE `id` = '$id' ");
$foresp = mysql_query("UPDATE `bil_bil` SET `farve` = '$farve' WHERE `id` = '$id' ");
$foresp = mysql_query("UPDATE `bil_bil` SET `aar` = '$aar' WHERE `id` = '$id' ");
$foresp = mysql_query("UPDATE `bil_bil` SET `afgift` = '$afgift' WHERE `id` = '$id' ");
$foresp = mysql_query("UPDATE `bil_bil` SET `special` = '$special' WHERE `id` = '$id' ");
$foresp = mysql_query("UPDATE `bil_bil` SET `pris` = '$pris' WHERE `id` = '$id' ");
$foresp = mysql_query("UPDATE `bil_bil` SET `km` = '$km' WHERE `id` = '$id' ");

- kan forkortes til noget meget mere effektivt:

$foresp = mysql_query("UPDATE `bil_bil` SET `kategori` = '$kategori', `maerke` = '$maerke', `variant` = '$variant', `type` = '$type', `bstof` = '$bstof', `farve` = '$farve', `aar` = '$aar', `afgift` = '$afgift', `special` = '$special', `pris` = '$pris', `km` = '$km' WHERE `id` = '$id' ");
Avatar billede nielle Nybegynder
22. juli 2005 - 21:20 #4
... og som kdjweb siger - det kan som regel betale sig at lave en debug udskrift af SQL'en før at man forsøger at udføre den:

$SQL = "UPDATE `bil_bil` SET `kategori` = '$kategori', `maerke` = '$maerke', `variant` = '$variant', `type` = '$type', `bstof` = '$bstof', `farve` = '$farve', `aar` = '$aar', `afgift` = '$afgift', `special` = '$special', `pris` = '$pris', `km` = '$km' WHERE `id` = '$id'";
echo "DEBUG: " . $SQL . "<br>";
$foresp = mysql_query($SQL);
Avatar billede overgreat Forsker
22. juli 2005 - 21:26 #5
Hej

Tak for initiativet. Jeg kan godt se i bakspejlets klare lys mine tekniske mangler
:-)

Når jeg kører med debug giver den følgende.

Kan i give lidt hjælp til denn fejl?

DEBUG: 1
Avatar billede kdjweb Nybegynder
22. juli 2005 - 21:30 #6
forresten, forstår simpelthen ikke hvorfor du sætter $foresp foran din query. :)
Avatar billede kdjweb Nybegynder
22. juli 2005 - 21:36 #7
jeg tar lige nielle's query :)

$SQL = "UPDATE `bil_bil` SET `kategori` = '$kategori', `maerke` = '$maerke', `variant` = '$variant', `type` = '$type', `bstof` = '$bstof', `farve` = '$farve', `aar` = '$aar', `afgift` = '$afgift', `special` = '$special', `pris` = '$pris', `km` = '$km' WHERE `id` = '$id'";
echo "DEBUG: " . $SQL . "<br>";
mysql_query($SQL);
Avatar billede nielle Nybegynder
22. juli 2005 - 22:03 #8
Der er ingen fornuftig grund til at:

$SQL = "UPDATE `bil_bil` SET `kategori` = '$kategori', `maerke` = '$maerke', `variant` = '$variant', `type` = '$type', `bstof` = '$bstof', `farve` = '$farve', `aar` = '$aar', `afgift` = '$afgift', `special` = '$special', `pris` = '$pris', `km` = '$km' WHERE `id` = '$id'";
echo "DEBUG: " . $SQL . "<br>";
mysql_query($SQL);

- skulle resultere i at der bliver udskrevet:

DEBUG: 1

- men prøv eventuelt at rette til:

$SQL = "UPDATE `bil_bil` SET `kategori` = '" . $kategori . "', `maerke` = '" . $maerke . "', `variant` = '" . $variant . "', `type` = '" . $type . "', `bstof` = '" . $bstof . "', `farve` = '" . $farve . "', `aar` = '" . $aar . "', `afgift` = '" . $afgift . "', `special` = '" . $special . "', `pris` = '" . $pris . "', `km` = '" . $km . "' WHERE `id` = '" . $id . "'";
echo "DEBUG: " . $SQL . "<br>";
mysql_query($SQL);
Avatar billede nielle Nybegynder
22. juli 2005 - 22:06 #9
Iøvrigt undre jeg mig over at du har '-tegn rundt om alle dine variable - dette skal der kun være for de felter som er tekst. Hvis du derimod har oprettet database-feltet som et tal, skal der ikke '-tegn for dem.

Dette kunne f.eks. tænkes at være tilfældet for id-feltet, men måske også felter som aar, pris og km.
Avatar billede overgreat Forsker
22. juli 2005 - 22:22 #10
Hej nielle

med følgende:
$SQL = "UPDATE `bil_bil` SET `kategori` = '" . $kategori . "', `maerke` = '" . $maerke . "', `variant` = '" . $variant . "', `type` = '" . $type . "', `bstof` = '" . $bstof . "', `farve` = '" . $farve . "', `aar` = '" . $aar . "', `afgift` = '" . $afgift . "', `special` = '" . $special . "', `pris` = '" . $pris . "', `km` = '" . $km . "' WHERE `id` = '" . $id . "'";
echo "DEBUG: " . $SQL . "<br>";
mysql_query($SQL);

gav den følgende debug:
DEBUG: UPDATE `bil_bil` SET `kategori` = '4', `maerke` = '5', `variant` = '2', `type` = '3', `bstof` = '2', `farve` = '3', `aar` = '20', `afgift` = '3', `special` = '2', `pris` = '123123', `km` = '1234123' WHERE `id` = ''


Jeg er en begynder indenfor php. Leger med det. Prøver at tage ved lære af det der findes rundt omkring på nettet. Så jeg suger alt læring til mig i øjeblikket!
Avatar billede overgreat Forsker
22. juli 2005 - 22:23 #11
ahhh... det må være noget med min id....
Jeg prøver mig lige frem!
Avatar billede overgreat Forsker
22. juli 2005 - 22:29 #12
Nielle

Min id står i linket.... skriver jeg det forkert i $sql?
Avatar billede nielle Nybegynder
22. juli 2005 - 22:50 #13
Hvis dit id står i linket så skal du jo nok have fat i det som:

$id = $_GET["id"];

- eller noget i den stil.
Avatar billede overgreat Forsker
22. juli 2005 - 22:51 #14
Fandt problemet.... tak for tippet med debug... den må jeg vist til at bruge lidt oftere.

Sender i begge et svar...
Avatar billede nielle Nybegynder
22. juli 2005 - 23:34 #15
Svar :^)
Avatar billede kdjweb Nybegynder
23. juli 2005 - 13:29 #16
skal jeg også? :O
Avatar billede nielle Nybegynder
24. juli 2005 - 07:57 #17
kdjweb> "Sender i begge et svar..."

Svaret må været "ja" ;^)
Avatar billede kdjweb Nybegynder
24. juli 2005 - 15:05 #18
hehe nielle, du er så klog 8D

her er det så, men nielle har da fortjænt mest :P
Avatar billede overgreat Forsker
24. juli 2005 - 16:43 #19
Ok så takker jeg i hvert fald 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