Avatar billede jarner Nybegynder
11. juli 2008 - 13:27 Der er 14 kommentarer og
2 løsninger

Updater indhold i database

Nogen der kan finde fejlen i nedenstående?
Når jeg klikker submit opdaterer den ikke indholdet, den går bare tilbage til sin grundform

PFT
(og hvorfor er der ikke en funktion så koden bliver liiidt flottere formateret her på eksperten..?)


<?php
include ("dbconn.php");

if(!isset($cmd))
{
  $result = mysql_query("select * from kalender order by id");
 
  while($r=mysql_fetch_array($result))
  {
      $navn=$r["navn"];
      $id=$r["id"];
   
      echo "<a href='edit02.php?cmd=edit&id=$id'>$navn - Edit</a>";
      echo "<br>";
    }
}
?>

<?
if($_GET["cmd"]=="edit" || $_POST["cmd"]=="edit")
{
  if (!isset($_POST["submit"]))
  {
      $id = $_GET["id"];
      $sql = "SELECT * FROM kalender WHERE id=$id";
      $result = mysql_query($sql);       
      $myrow = mysql_fetch_array($result);
      ?>
     
      <form action="edit02.php" method="post">
      <input type=hidden name="id" value="<?php echo $myrow["id"] ?>">
 
      Title:<INPUT TYPE="TEXT" NAME="title" VALUE="<?php echo $myrow["navn"] ?>" SIZE=30><br>
      Message:<TEXTAREA NAME="message" ROWS=10 COLS=30><? echo $myrow["indhold"] ?></TEXTAREA><br>
      Who:<INPUT TYPE="TEXT" NAME="who" VALUE="<?php echo $myrow["dato"] ?>" SIZE=30><br>
 
      <input type="hidden" name="cmd" value="edit">
 
      <input type="submit" name="submit" value="submit">
 
      </form>
 
  <? }  ?>


<?
  if ($_POST["$submit"])
  {
      $navn = $_POST["navn"];
      $indhold = $_POST["indhold"];
      $dato = $_POST["dato"];

      $sql = "UPDATE kalender SET navn='$navn',indhold='$indhold',dato='$dato' WHERE id=$id";

      $result = mysql_query($sql);
      echo "indhold opdateret.";
  }
}
?>
Avatar billede jakobdo Ekspert
11. juli 2008 - 13:31 #1
Prøv denne:

<?php
include ("dbconn.php");

if(isset($_POST['submit'])){
    $navn = mysql_real_escape_string($_POST['navn']);
    $indhold = mysql_real_escape_string($_POST['indhold']);
    $dato = mysql_real_escape_string($_POST['dato']);

    $sql = "UPDATE kalender SET navn='$navn',indhold='$indhold',dato='$dato' WHERE id=$id";

    $result = mysql_query($sql);
    echo "indhold opdateret.";
}

if(!isset($_GET['cmd']))
{
  $result = mysql_query("select * from kalender order by id");

  while($r=mysql_fetch_array($result))
  {
      $navn=$r["navn"];
      $id=$r["id"];
 
      echo "<a href='edit02.php?cmd=edit&id=$id'>$navn - Edit</a>";
      echo "<br>";
    }
}
if($_GET["cmd"]=="edit" || $_POST["cmd"]=="edit")
{
  if (!isset($_POST["submit"]))
  {
      $id = $_GET["id"];
      $sql = "SELECT * FROM kalender WHERE id=$id";
      $result = mysql_query($sql);     
      $myrow = mysql_fetch_array($result);
      ?>
   
      <form action="edit02.php" method="post">
      <input type=hidden name="id" value="<?php echo $myrow["id"] ?>">

      Title:<INPUT TYPE="TEXT" NAME="title" VALUE="<?php echo $myrow["navn"] ?>" SIZE=30><br>
      Message:<TEXTAREA NAME="message" ROWS=10 COLS=30><? echo $myrow["indhold"] ?></TEXTAREA><br>
      Who:<INPUT TYPE="TEXT" NAME="who" VALUE="<?php echo $myrow["dato"] ?>" SIZE=30><br>

      <input type="hidden" name="cmd" value="edit">

      <input type="submit" name="submit" value="submit">

      </form>

  <? }
}
?>
Avatar billede jakobdo Ekspert
11. juli 2008 - 13:42 #2
og her en lidt kortere version:

<?php
include ("dbconn.php");

if(isset($_POST['submit'])){
    $navn = mysql_real_escape_string($_POST['navn']);
    $indhold = mysql_real_escape_string($_POST['indhold']);
    $dato = mysql_real_escape_string($_POST['dato']);

    $sql = "UPDATE kalender SET navn='$navn',indhold='$indhold',dato='$dato' WHERE id=$id";

    $result = mysql_query($sql);
    echo 'Indhold opdateret.';
}

if($_REQUEST['cmd']=='edit')
{
    $id = $_GET["id"];
    $sql = "SELECT * FROM kalender WHERE id=$id";
    $result = mysql_query($sql);     
    $myrow = mysql_fetch_array($result);
   
    echo '<form action="edit02.php" method="post">';
    echo '<input type=hidden name="id" value="'.$myrow['id'].'">';

    echo 'Title:<input type="text" name="title" value="'.$myrow['navn'].'" size="30"><br>';
    echo 'Message:<textarea name="message" rows="10" cols="30">'.$myrow['indhold'].'</textarea><br>';
    echo 'Who:<input type="text" name="who" value="'.$myrow['dato'].'" size="30"><br>';

    echo '<input type="hidden" name="cmd" value="edit">';
    echo '<input type="submit" name="submit" value="submit">';
    echo '</form>';
}else{
    $result = mysql_query("SELECT * FROM kalender ORDER BY id");
    while($r=mysql_fetch_array($result)){
        echo '<a href="edit02.php?cmd=edit&id='.$r['id'].'">'.$r['navn'].' - Edit</a><br />';
    }
}
?>
Avatar billede jarner Nybegynder
11. juli 2008 - 14:09 #3
hej jakokdo, tak for input

den opdaterer desværre stadig ikke indholdet :(
Avatar billede jakobdo Ekspert
11. juli 2008 - 16:50 #4
Prøv lige at tilføj:

$result = mysql_query($sql) or die(mysql_error());
Avatar billede coderdk Praktikant
11. juli 2008 - 19:38 #5
jakobs

if(isset($_POST['submit'])){
    $navn = mysql_real_escape_string($_POST['navn']);
    $indhold = mysql_real_escape_string($_POST['indhold']);
    $dato = mysql_real_escape_string($_POST['dato']);

    $sql = "UPDATE kalender SET navn='$navn',indhold='$indhold',dato='$dato' WHERE id=$id";

    $result = mysql_query($sql);
    echo 'Indhold opdateret.';
}


bør nok være


if(isset($_POST['submit'])){
    $navn = mysql_real_escape_string($_POST['navn']);
    $indhold = mysql_real_escape_string($_POST['indhold']);
    $dato = mysql_real_escape_string($_POST['dato']);
    $id = intval($_POST['id']);

    $sql = "UPDATE kalender SET navn='$navn',indhold='$indhold',dato='$dato' WHERE id=$id";

    $result = mysql_query($sql);
    echo 'Indhold opdateret.';
}


Eller tager jeg fejl? (id tilføjet)
Avatar billede jarner Nybegynder
12. juli 2008 - 12:02 #6
når jeg tager id-feltet med, bliver indholdet opdateret, men med blankt indhold?
Avatar billede supersquirrel Nybegynder
12. juli 2008 - 12:10 #7
Prøv at rette:

if(isset($_POST['submit'])){
    $navn = mysql_real_escape_string($_POST['navn']);
    $indhold = mysql_real_escape_string($_POST['indhold']);
    $dato = mysql_real_escape_string($_POST['dato']);
    $id = intval($_POST['id']);

    $sql = "UPDATE kalender SET navn='$navn',indhold='$indhold',dato='$dato' WHERE id=$id";

    $result = mysql_query($sql);
    echo 'Indhold opdateret.';
}

Til:


if(isset($_POST['submit'])){
    $navn = mysql_real_escape_string($_POST['title']);
    $indhold = mysql_real_escape_string($_POST['message']);
    $dato = mysql_real_escape_string($_POST['who']);
    $id = intval($_POST['id']);

    $sql = "UPDATE kalender SET navn='$navn',indhold='$indhold',dato='$dato' WHERE id=$id";

    $result = mysql_query($sql);
    echo 'Indhold opdateret.';
}
Avatar billede coderdk Praktikant
12. juli 2008 - 12:14 #8
Det lyder som om at det er forkerte felter... prøv at sætte følgende ind før "$sql ="

echo "<pre>";var_dump( $_POST ); die;

og se hvad den skriver - title, message og who skal være sat til hhv navn, indhold og dato...
Avatar billede coderdk Praktikant
12. juli 2008 - 12:15 #9
hov ja, supersquirrel har den :P
Avatar billede supersquirrel Nybegynder
12. juli 2008 - 12:16 #10
Hehe ;o)
Avatar billede jarner Nybegynder
12. juli 2008 - 13:01 #11
haha... her går man og tænker så stort, og så er svaret lige foran en :D

MANGE tak for hjælpen, smid et svar!
Avatar billede supersquirrel Nybegynder
12. juli 2008 - 22:54 #12
Ikke til mig - ellers tak =D
Giv dem til coderdk eller jakobdo
Avatar billede jarner Nybegynder
15. juli 2008 - 17:51 #13
jakobdo & coderdk - smid et svar :)
Avatar billede coderdk Praktikant
15. juli 2008 - 21:33 #14
'sgo :)
Avatar billede jakobdo Ekspert
15. juli 2008 - 21:52 #15
Svar!
Avatar billede jakobdo Ekspert
18. juli 2008 - 23:36 #16
Takker for point.
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