Why this code is not updating the field in the mysql

hi this is my code, and it doesnt updates after clickin on submit button. Without errors it goes back to the page with the link.

<? 
//connect to mysql
//change user and password to your mySQL name and password
   mysql_connect("localhost","xxxxx","xxxxx"); 
    
//select which database you want to edit
mysql_select_db("xxxxx"); 

//If cmd has not been initialized
if(!isset($cmd)) 
{
   //display all the news
   $result = mysql_query("select * from news order by id"); 
   
   //run the while loop that grabs all the news scripts
   while($r=mysql_fetch_array($result)) 
   { 
      //grab the title and the ID of the news
      $title=$r["title"];//take out the title
      $id=$r["id"];//take out the id
     
     //make the title a link
      echo "<a href='edit.php?cmd=edit&id=$id'>$title - Edit</a>";
      echo "<br>";
    }
}
?>
<?
if($_GET["cmd"]=="edit" || $_POST["cmd"]=="edit")
{
   if (!isset($_POST["submit"]))
   {
      $id = $_GET["id"];
      $sql = "SELECT * FROM news WHERE id=$id";
      $result = mysql_query($sql);        
      $myrow = mysql_fetch_array($result);
      ?>
      
      <form action="edit.php" method="post">
      <input type=hidden name="id" value="<?php echo $myrow["id"] ?>">
   
      Title:<INPUT TYPE="TEXT" NAME="title" VALUE="<?php echo $myrow["title"] ?>" SIZE=30><br>
      Message:<TEXTAREA NAME="message" ROWS=10 COLS=30><? echo $myrow["message"] ?></TEXTAREA><br>
      Who:<INPUT TYPE="TEXT" NAME="who" VALUE="<?php echo $myrow["who"] ?>" SIZE=30><br>
   
      <input type="hidden" name="cmd" value="edit">
   
      <input type="submit" name="submit" value="submit">
   
      </form>
   
   <? } ?>
<?
   if ($_POST["$submit"])
   {
      $title = $_POST["title"];
      $message = $_POST["message"];
      $who = $_POST["who"];

      $sql = "UPDATE news SET title='$title',message='$message',who='$who' WHERE id=$id";

      $result = mysql_query($sql);
      echo "Thank you! Information updated.";
   }
}
?>


You can have a help here from some good samaritan, but it will be much better if you learn how to debug your code and find where error is

Do you have error reporting enabled?

Try adding mysql_error what mysql errors are reported by it?

Good Samaritan ahoy!

The issue looks to be with this line:


if ($_POST["$submit"]) 

By the way, it’s very easy for bad people to force your database code to do things to do not want to allow. Please have a quick look at SQL Injection Attacks by Example to learn how easy it is for someone else to control your database / web site, and more importantly what you can do to help protect yourself from the danger.