Reputation: 5
When I echo the output the desired updated value is displayed. But when the same value is passed to update the database the update statement does nothing.
The portion of the code is
if (empty($_POST) === false)
{
$fname= $_POST['fname'];
$srno= $_POST['SRNO'];
echo $fname.' and'. $srno;
mysql_query('update names set fname="$fname" where SRNO="$srno"');
}
and the complete code is
<!DOCTYPE html>
<html>
<head>
<title>List of users</title>
</head>
<body>
<?php
mysql_connect("localhost","root","") or die (mysql_error());
mysql_select_db("list") or die (mysql_error());
if (empty($_POST) === false)
{
$fname= $_POST['fname'];
$srno= $_POST['SRNO'];
echo $fname.' and'. $srno;
mysql_query('update names set fname="$fname" where SRNO="$srno"');
}
if(isset($_GET['edit']))
{
$getedit=mysql_query('SELECT SRNO, fname, lname, phone, email from names where SRNO='.mysql_real_escape_string((int)$_GET['edit']));
while ($get_row=mysql_fetch_assoc($getedit))
{
echo '<form method="POST" action="">';
echo 'Sr. No: '.$get_row['SRNO'].'<br />';
echo 'Sr.No:<input type="text" value='.$get_row['SRNO'].' name="SRNO" readonly="readonly">';
echo 'First Name: <input type="text" value='.$get_row['fname'].' name="fname"><br />';
echo '<input type="submit" name="submit" value="save">';
echo '</form>';
}
}
$get=mysql_query('SELECT SRNO, fname, lname, email, phone, address, comments from names ORDER BY SRNO ASC');
if (mysql_num_rows($get)==0)
{
echo 'There are no entries';
}
else
{
echo '<table border=0>';
echo'<tr><th>Sr. No</th><th>First Name</th><th>Last Name</th><th>Phone No</th><th>E-mail</th><th>Modify</th></tr>';
while($get_row=mysql_fetch_assoc($get))
{
echo '<tr><td>'.$get_row['SRNO'].'</td><td>'.$get_row['fname'].'</td><td>'.$get_row['lname'].'</td><td>'.$get_row['phone'].'</td><td>'.$get_row['email'].'</td><td><a href="index.php?edit='.$get_row['SRNO'].'">Edit</a></td></tr>';
}
echo '</table>';
}
?>
</body>
</html>
Upvotes: 0
Views: 125
Reputation: 269
Variable names are not replaced within single quotation marks with their value. Try this:
update names set fname="'.$fname.'" where SRNO="'.$srno.'"
Upvotes: 1
Reputation: 14233
I would suggest you echo out the query when you have problems so you can copy/paste it in to the mysql client and test for errors.
Try changing it to:
$query = "update names set fname='$fname' where SRNO='$srno'";
echo $query;
mysql_query($query);
I would recommend using single quotes in your query, too (like my example above). I'm not sure how well MySQL handles double quotes, or if it does at all. I've always made it a habit to use single quotes. Maybe that's just a personal preference.
Upvotes: 0
Reputation: 725
try this it may help you,
<!DOCTYPE html>
<html>
<head>
<title>List of users</title>
</head>
<body>
<?php
mysql_connect("localhost","root","") or die (mysql_error());
mysql_select_db("list") or die (mysql_error());
if (isset($_POST['fname']))
{
$fname= $_POST['fname'];
$srno= $_POST['SRNO'];
echo $fname.' and'. $srno;
mysql_query("update `names` set fname='$fname' where SRNO='$srno'");
}
if(isset($_GET['edit']))
{
$getedit=mysql_query('SELECT SRNO, fname, lname, phone, email from names where SRNO='.mysql_real_escape_string((int)$_GET['edit']));
while ($get_row=mysql_fetch_assoc($getedit))
{
echo '<form method="POST" action="">';
echo 'Sr. No: '.$get_row['SRNO'].'<br />';
echo 'Sr.No:<input type="text" value='.$get_row['SRNO'].' name="SRNO" readonly="readonly">';
echo 'First Name: <input type="text" value='.$get_row['fname'].' name="fname"><br />';
echo '<input type="submit" name="submit" value="save">';
echo '</form>';
}
}
$get=mysql_query('SELECT SRNO, fname, lname, email, phone, address, comments from names ORDER BY SRNO ASC');
if (mysql_num_rows($get)==0)
{
echo 'There are no entries';
}
else
{
echo '<table border=0>';
echo'<tr><th>Sr. No</th><th>First Name</th><th>Last Name</th><th>Phone No</th><th>E-mail</th> <th>Modify</th></tr>';
while($get_row=mysql_fetch_assoc($get))
{
echo '<tr><td>'.$get_row['SRNO'].'</td><td>'.$get_row['fname'].'</td><td>'.$get_row['lname'].'</td><td>'.$get_row['phone'].'</td><td>'.$get_row['email'].'</td><td><a href="index.php?edit='.$get_row['SRNO'].'">Edit</a></td></tr>';
}
echo '</table>';
}
?>
Upvotes: 0