Avatar billede JJ77 Juniormester
13. februar 2006 - 20:42 Der er 12 kommentarer og
1 løsning

Opdaterer ved at slette værdierne i annoncen

Jeg har nedenstående hvor man skal kunne rette i en annonce. Mit problem er at den i stedet for at huske rettelserne bare sletter alt.. nogen som kan hjælpe?



<?php
require_once("../members/common.php");

$Id = $_GET[id];

$hent = mysql_query("SELECT * FROM salgAfProdukt left join postnr on salgAfProdukt.postNr = postnr.postnr WHERE id = '$Id'") or die(mysql_error());
$raekke = mysql_fetch_assoc($hent);

echo "<div align=\"center\"><table width=\"auto\" border=\"0\" cellspacing=\"\" cellpadding=\"0\" bgcolor=\"#FFFFFF\"><tr><td width=\"75\" valign=\"top\"><span class=\"mellem\"> ";
echo "<a href=\"java script:history.go(-1)\"><div align=\"center\"><font color=\"#0000cd\">< Tilbage</font></div></a><br>";
echo "</span></td></tr></table></div>";

echo "
  <table width=\"560\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\" bgcolor=\"#FFFFFF\">
  <tr>
  <td width=\"490\" valign=\"top\"><span class=\"mellem\"><input type='text' name='produkt' value='$raekke[produkt]'></span> <br><span class=\"lille\"><textarea name='supplerendeTekst' rows='6' cols='50'>".$raekke['supplerendeTekst']." </textarea></span></td>
  </tr></table>

<table width=\"490\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\"bgcolor=\"#FFFFFF\">
            <tr>
            <td width=\"55\" valign=\"top\"><span class=\"mellem\">Pris:</span></td>
            <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='pris' value='$raekke[pris]'> Kr.<br><br></span></td>
            </tr>
            <tr>
            <td width=\"55\" valign=\"top\"><span class=\"mellem\">Tlf 1:</span></td>
            <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='tlf1' value='$raekke[tlf1]'></span></td>
            </tr>
            <tr>
            <td width=\"55\" valign=\"top\"><span class=\"mellem\">Tlf 2:</span></td>
            <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='tlf2' value='$raekke[tlf2]'></span></td>
            </tr>
            <tr>
            <td width=\"55\" valign=\"top\"><span class=\"mellem\">E-mail:</span></td>
            <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='email' value='$raekke[email]'></span></td>
            </tr>
            <tr>
            <td width=\"55\" valign=\"top\"><span class=\"mellem\">By:</span></td>
            <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='bynavn' value='$raekke[bynavn]' readonly></span></td>
            </tr>
</table>   

<tr>
            <td colspan=\"2\">";
           
  require_once("../members/common.php");
  $imgID = mysql_real_escape_string($_GET['id']);
  $imgquery = mysql_query("SELECT * FROM billeder_salgAfProdukt WHERE artikelid = '".$imgID."' LIMIT 5") or die(mysql_error());
  while($imgrow = mysql_fetch_assoc($imgquery))
  {
    echo "<div align=\"center\"><img src=\"imageSalgsannoncer.php?id=".$imgrow[id]."\"></div><br><br>";
  }
echo "        </td>
            </tr>
        ";

?>
<body>
    <form action="redigerDineSalgsannoncer.php" method="post" name="FormName">

<?php
require_once("../members/common.php");

$Id = $_GET[id];

$produkt==$produkt;
$supplerendeTekst==$supplerendeTekst;
$pris==$pris;
$tlf1==$tlf1;
$tlf2==$tlf2;
$email==$email;

mysql_query("update salgAfProdukt set produkt = '$produkt', supplerendeTekst = '$supplerendeTekst', pris = '$pris', tlf1 = '$tlf1', tlf2 = '$tlf2', email = '$email' WHERE Id = '$Id'");
       
echo 'Annoncen er opdateret!';

?>
            <input type="submit" name="submitButtonName" border="0">
        </form>
        <p></p>
    </body>
Avatar billede tjens Nybegynder
13. februar 2006 - 21:18 #1
Jeg kan ikke lige se i dit script, hvordan du adskiller afsendelse af form-felter til browser, og modtagelse af data fra form-felter. Det kan eventuelt lægges i 2 forskellige PHP filer.

Husk på, at et PHP script sender en side med indtastningsfelter til browseren, og derefter afslutter scriptet.
Når der trykkes submit i browseren kaldes PHP-scriptet (forfra hvis der kun er en fil) og man skal starte med at undersøge om alle felterne var udfyldt og valide.

Det er der eksempler på her
http://www.eksperten.dk/spm/405133
og her
http://www.eksperten.dk/spm/406079

Prøv at studere disse løsninger.
Avatar billede JJ77 Juniormester
13. februar 2006 - 21:37 #2
Nu har jeg prøvet at forbedre koden, men det virker stadig ikke.. kan du se hvad som er galt nu?


<form action="<?=$PHP_SELF;?>" method="POST" name="form">
<?php
require_once("../members/common.php");
$Id = $_GET[id];

// update database if the form has already been filled in:
if(isset($_REQUEST[Id])){
$SQL = "UPDATE salgAfProdukt SET produkt = '$_REQUEST[produkt]' WHERE id = $_REQUEST[Id]";
mysql_query($SQL);
}



$hent = mysql_query("SELECT * FROM salgAfProdukt left join postnr on salgAfProdukt.postNr = postnr.postnr WHERE id = '$Id'") or die(mysql_error());
$raekke = mysql_fetch_assoc($hent);

echo "<div align=\"center\"><table width=\"auto\" border=\"0\" cellspacing=\"\" cellpadding=\"0\" bgcolor=\"#FFFFFF\"><tr><td width=\"75\" valign=\"top\"><span class=\"mellem\"> ";
echo "<a href=\"java script:history.go(-1)\"><div align=\"center\"><font color=\"#0000cd\">< Tilbage</font></div></a><br>";
echo "</span></td></tr></table></div>";

echo "
  <table width=\"560\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\" bgcolor=\"#FFFFFF\">
  <tr>
  <td width=\"490\" valign=\"top\"><span class=\"mellem\"><input type='text' name='produkt' value='$raekke[produkt]'></span> <br><span class=\"lille\"><textarea name='supplerendeTekst' rows='6' cols='50'>".$raekke['supplerendeTekst']." </textarea></span></td>
  </tr></table>

<table width=\"490\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\"bgcolor=\"#FFFFFF\">
            <tr>
            <td width=\"55\" valign=\"top\"><span class=\"mellem\">Pris:</span></td>
            <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='pris' value='$raekke[pris]'> Kr.<br><br></span></td>
            </tr>
            <tr>
            <td width=\"55\" valign=\"top\"><span class=\"mellem\">Tlf 1:</span></td>
            <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='tlf1' value='$raekke[tlf1]'></span></td>
            </tr>
            <tr>
            <td width=\"55\" valign=\"top\"><span class=\"mellem\">Tlf 2:</span></td>
            <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='tlf2' value='$raekke[tlf2]'></span></td>
            </tr>
            <tr>
            <td width=\"55\" valign=\"top\"><span class=\"mellem\">E-mail:</span></td>
            <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='email' value='$raekke[email]'></span></td>
            </tr>
            <tr>
            <td width=\"55\" valign=\"top\"><span class=\"mellem\">By:</span></td>
            <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='bynavn' value='$raekke[bynavn]' readonly></span></td>
            </tr>
</table>   

<tr>
            <td colspan=\"2\">";
           
  require_once("../members/common.php");
  $imgID = mysql_real_escape_string($_GET['id']);
  $imgquery = mysql_query("SELECT * FROM billeder_salgAfProdukt WHERE artikelid = '".$imgID."' LIMIT 5") or die(mysql_error());
  while($imgrow = mysql_fetch_assoc($imgquery))
  {
    echo "<div align=\"center\"><img src=\"imageSalgsannoncer.php?id=".$imgrow[id]."\"></div><br><br>";
  }
echo "        </td>
            </tr>
        ";



?>

<input type="submit" value="opdatér" name="update">
</form>
Avatar billede tjens Nybegynder
13. februar 2006 - 21:49 #3
To ting der lige undrer mig:

- Formen har method=POST men du bruger $_GET et par steder
- Jeg kan ikke få øje på feltet 'id' blandt form-felterne
Avatar billede JJ77 Juniormester
13. februar 2006 - 21:55 #4
nu har jeg ændret post til get.. men forstår ikke hvad du mener med id?
Avatar billede tjens Nybegynder
13. februar 2006 - 22:02 #5
Når du laver $_GET['id'] og $_REQUEST[id] skal feltet id være blandt indtastningsfelterne? eller hvor kommer værdien fra?
Avatar billede tjens Nybegynder
13. februar 2006 - 22:08 #6
Prøv at indsætte nogen debug-linier, hvor du laver echo af variablene undervejs, så du ved hvornår de er udfyldt.

I starten skal du vel teste om feltet produkt er udfyldt, inden du skriver det til databasen.
Avatar billede JJ77 Juniormester
13. februar 2006 - 22:11 #7
Nu bliver jeg sq forvirret... kan du ikke venligst forklare lidt nærmere:) gerne lidt ilustrativt.

<form action="<?=$PHP_SELF;?>" method="GET" name="form">
<?php
require_once("../members/common.php");
$Id = $_GET[id];

// update database if the form has already been filled in:
if(isset($_REQUEST[Id])){
$SQL = "UPDATE salgAfProdukt SET produkt = '$_REQUEST[produkt]' WHERE id = $_REQUEST[Id]";
mysql_query($SQL);
}

$hent = mysql_query("SELECT * FROM salgAfProdukt left join postnr on salgAfProdukt.postNr = postnr.postnr WHERE id = '$Id'") or die(mysql_error());
$raekke = mysql_fetch_assoc($hent);

echo "<div align=\"center\"><table width=\"auto\" border=\"0\" cellspacing=\"\" cellpadding=\"0\" bgcolor=\"#FFFFFF\"><tr><td width=\"75\" valign=\"top\"><span class=\"mellem\"> ";
echo "<a href=\"java script:history.go(-1)\"><div align=\"center\"><font color=\"#0000cd\">< Tilbage</font></div></a><br>";
echo "</span></td></tr></table></div>";

echo "
  <table width=\"560\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\" bgcolor=\"#FFFFFF\">
  <tr>
  <td width=\"490\" valign=\"top\"><span class=\"mellem\"><input type='text' name='produkt' value='$raekke[produkt]'></span> <br><span class=\"lille\"><textarea name='supplerendeTekst' rows='6' cols='50'>".$raekke['supplerendeTekst']." </textarea></span></td>
  </tr></table>

<table width=\"490\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\"bgcolor=\"#FFFFFF\">
            <tr>
            <td width=\"55\" valign=\"top\"><span class=\"mellem\">Pris:</span></td>
            <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='pris' value='$raekke[pris]'> Kr.<br><br></span></td>
            </tr>
            <tr>
            <td width=\"55\" valign=\"top\"><span class=\"mellem\">Tlf 1:</span></td>
            <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='tlf1' value='$raekke[tlf1]'></span></td>
            </tr>
            <tr>
            <td width=\"55\" valign=\"top\"><span class=\"mellem\">Tlf 2:</span></td>
            <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='tlf2' value='$raekke[tlf2]'></span></td>
            </tr>
            <tr>
            <td width=\"55\" valign=\"top\"><span class=\"mellem\">E-mail:</span></td>
            <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='email' value='$raekke[email]'></span></td>
            </tr>
            <tr>
            <td width=\"55\" valign=\"top\"><span class=\"mellem\">By:</span></td>
            <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='bynavn' value='$raekke[bynavn]' readonly></span></td>
            </tr>
</table>   

<tr>
            <td colspan=\"2\">";
           
  require_once("../members/common.php");
  $imgID = mysql_real_escape_string($_GET['id']);
  $imgquery = mysql_query("SELECT * FROM billeder_salgAfProdukt WHERE artikelid = '".$imgID."' LIMIT 5") or die(mysql_error());
  while($imgrow = mysql_fetch_assoc($imgquery))
  {
    echo "<div align=\"center\"><img src=\"imageSalgsannoncer.php?id=".$imgrow[id]."\"></div><br><br>";
  }
echo "        </td>
            </tr>
        ";

?>

<input type="submit" value="opdatér" name="update">
</form>
Avatar billede JJ77 Juniormester
13. februar 2006 - 22:19 #8
HMMM.. det er sku da mystisk... hvis den kan vise annoncen fint i nogle redigerbare felter (det kan den jo), så burde det sq da også forholdsvis simpelt kunne lade sig gøre at hente de nye værdier ind fra felterne og gemme dem igen.. de felter som er tomme skal jo bare forblive tomme, og de felter som er ændrede skal jo bare indsættes med det ændrede :(
Avatar billede tjens Nybegynder
13. februar 2006 - 22:39 #9
Tilføj en linie mere i din formular:
<input type='text' name='id' value='$raekke[id]'>

Jeg går ud fra at du har et nøglefelt i databasen ved navn id.

Feltet id bruges i starten af dit script, og dermed skal det også komme ind på samme måde som alle andre felter. Det kommer ind ved at være et felt i form'en.

Og så lav lige
if(isset($_REQUEST[Id])){
om til
if(isset($_REQUEST[produkt])){
inden du skriver feltet produkt til databasen. Ellers vil feltet produkt blive blanket i databasen i andre situationer hvor kun id er udfyldt.
Avatar billede JJ77 Juniormester
13. februar 2006 - 22:49 #10
OK.. COOL. Nu ser det ud til at virke. Ser det rigtigt ud? og hvordan får jeg fyldt flere felter på


<form action="<?=$PHP_SELF;?>" method="GET" name="form">
<?php
require_once("../members/common.php");
$Id = $_GET[id];

// update database if the form has already been filled in:
if(isset($_REQUEST[produkt])){
$SQL = "UPDATE salgAfProdukt SET produkt = '$produkt' WHERE id = '$Id'";
mysql_query($SQL);
}

$hent = mysql_query("SELECT * FROM salgAfProdukt left join postnr on salgAfProdukt.postNr = postnr.postnr WHERE id = '$Id'") or die(mysql_error());
$raekke = mysql_fetch_assoc($hent);

echo "<div align=\"center\"><table width=\"auto\" border=\"0\" cellspacing=\"\" cellpadding=\"0\" bgcolor=\"#FFFFFF\"><tr><td width=\"75\" valign=\"top\"><span class=\"mellem\"> ";
echo "<a href=\"java script:history.go(-1)\"><div align=\"center\"><font color=\"#0000cd\">< Tilbage</font></div></a><br>";
echo "</span></td></tr></table></div>";

echo "
  <table width=\"560\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\" bgcolor=\"#FFFFFF\">
  <tr>
  <td width=\"490\" valign=\"top\"><span class=\"mellem\"><input type='text' name='produkt' value='$raekke[produkt]'></span> <br><span class=\"lille\"><textarea name='supplerendeTekst' rows='6' cols='50'>".$raekke['supplerendeTekst']." </textarea></span></td>
  </tr></table>

<table width=\"490\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\"bgcolor=\"#FFFFFF\">
            <tr>
            <td width=\"55\" valign=\"top\"><span class=\"mellem\">Id:</span></td>
            <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='id' value='$raekke[Id]'><br><br></span></td>
            </tr>
            <tr>
            <td width=\"55\" valign=\"top\"><span class=\"mellem\">Pris:</span></td>
            <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='pris' value='$raekke[pris]'> Kr.<br><br></span></td>
            </tr>
            <tr>
            <td width=\"55\" valign=\"top\"><span class=\"mellem\">Tlf 1:</span></td>
            <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='tlf1' value='$raekke[tlf1]'></span></td>
            </tr>
            <tr>
            <td width=\"55\" valign=\"top\"><span class=\"mellem\">Tlf 2:</span></td>
            <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='tlf2' value='$raekke[tlf2]'></span></td>
            </tr>
            <tr>
            <td width=\"55\" valign=\"top\"><span class=\"mellem\">E-mail:</span></td>
            <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='email' value='$raekke[email]'></span></td>
            </tr>
            <tr>
            <td width=\"55\" valign=\"top\"><span class=\"mellem\">By:</span></td>
            <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='bynavn' value='$raekke[bynavn]' readonly></span></td>
            </tr>
</table>   

<tr>
            <td colspan=\"2\">";
           
  require_once("../members/common.php");
  $imgID = mysql_real_escape_string($_GET['id']);
  $imgquery = mysql_query("SELECT * FROM billeder_salgAfProdukt WHERE artikelid = '".$imgID."' LIMIT 5") or die(mysql_error());
  while($imgrow = mysql_fetch_assoc($imgquery))
  {
    echo "<div align=\"center\"><img src=\"imageSalgsannoncer.php?id=".$imgrow[id]."\"></div><br><br>";
  }
echo "        </td>
            </tr>
        ";

?>

<input type="submit" value="opdatér" name="update">
</form>
Avatar billede JJ77 Juniormester
13. februar 2006 - 23:03 #11
Jeg har fundet ud af at sætte flere ind.. men ser koden rigtig ud?
Og smider du ikke lige et svar... TAKKER mange gange :)

<form action="<?=$PHP_SELF;?>" method="GET" name="form">
<?php
require_once("../members/common.php");

$Id = $_GET[id];

// update database if the form has already been filled in:
if(isset($_REQUEST[produkt],$_REQUEST[supplerendeTekst],$_REQUEST[pris],$_REQUEST[tlf1],$_REQUEST[tlf2],$_REQUEST[email])){
$SQL = "UPDATE salgAfProdukt SET produkt = '$produkt', supplerendeTekst = '$supplerendeTekst', pris = '$pris', tlf1 = '$tlf1', tlf2 = '$tlf2', email = '$email' WHERE id = '$Id'";
mysql_query($SQL);
}

$hent = mysql_query("SELECT * FROM salgAfProdukt left join postnr on salgAfProdukt.postNr = postnr.postnr WHERE id = '$Id'") or die(mysql_error());
$raekke = mysql_fetch_assoc($hent);

echo "<div align=\"center\"><table width=\"auto\" border=\"0\" cellspacing=\"\" cellpadding=\"0\" bgcolor=\"#FFFFFF\"><tr><td width=\"75\" valign=\"top\"><span class=\"mellem\"> ";
echo "<a href=\"java script:history.go(-1)\"><div align=\"center\"><font color=\"#0000cd\">< Tilbage</font></div></a><br>";
echo "</span></td></tr></table></div>";

echo "
  <table width=\"560\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\" bgcolor=\"#FFFFFF\">
  <tr>
  <td width=\"490\" valign=\"top\"><span class=\"mellem\"><input type='text' name='produkt' value='$raekke[produkt]'></span> <br><span class=\"lille\"><textarea name='supplerendeTekst' rows='6' cols='50'>".$raekke['supplerendeTekst']." </textarea></span></td>
  </tr></table>

<table width=\"490\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\"bgcolor=\"#FFFFFF\">
            <tr>
            <td width=\"55\" valign=\"top\"><span class=\"mellem\">Id:</span></td>
            <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='id' value='$raekke[Id]'><br><br></span></td>
            </tr>
            <tr>
            <td width=\"55\" valign=\"top\"><span class=\"mellem\">Pris:</span></td>
            <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='pris' value='$raekke[pris]'> Kr.<br><br></span></td>
            </tr>
            <tr>
            <td width=\"55\" valign=\"top\"><span class=\"mellem\">Tlf 1:</span></td>
            <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='tlf1' value='$raekke[tlf1]'></span></td>
            </tr>
            <tr>
            <td width=\"55\" valign=\"top\"><span class=\"mellem\">Tlf 2:</span></td>
            <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='tlf2' value='$raekke[tlf2]'></span></td>
            </tr>
            <tr>
            <td width=\"55\" valign=\"top\"><span class=\"mellem\">E-mail:</span></td>
            <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='email' value='$raekke[email]'></span></td>
            </tr>
            <tr>
            <td width=\"55\" valign=\"top\"><span class=\"mellem\">By:</span></td>
            <td width=\"300\" valign=\"top\"><span class=\"lilleS\"><input type='text' name='bynavn' value='$raekke[bynavn]' readonly></span></td>
            </tr>
</table>   

<tr>
            <td colspan=\"2\">";
           
  require_once("../members/common.php");
  $imgID = mysql_real_escape_string($_GET['id']);
  $imgquery = mysql_query("SELECT * FROM billeder_salgAfProdukt WHERE artikelid = '".$imgID."' LIMIT 5") or die(mysql_error());
  while($imgrow = mysql_fetch_assoc($imgquery))
  {
    echo "<div align=\"center\"><img src=\"imageSalgsannoncer.php?id=".$imgrow[id]."\"></div><br><br>";
  }
echo "        </td>
            </tr>
        ";

?>

<input type="submit" value="opdatér" name="update">
</form>
Avatar billede tjens Nybegynder
13. februar 2006 - 23:26 #12
Hvor kommer feltet id fra? Hvis det ikke skal kunne ændres på denne side, kan du evt. lave det 'hidden' så det ikke ses, men stadig føres frem og tilbage.
Avatar billede JJ77 Juniormester
13. februar 2006 - 23:59 #13
OK.. takker
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