使用表单更新MySQL数据库

时间:2014-04-17 12:00:51

标签: php mysql

我尝试创建一个表单,允许用户从下拉框中选择一个字段,然后更改当前在该字段中写入的内容。

我当前的代码允许我查看下拉列表,选择我想要更改的字段,然后在框中输入我的新文本。但是当我点击更新时,没有任何反应。

<?php 
mysql_connect("", "", "") or die(mysql_error());
mysql_select_db("") or die(mysql_error()); 

$query = "SELECT * FROM news_updates";
$result=mysql_query($query) or die("Query Failed : ".mysql_error());
$i=0;
while($rows=mysql_fetch_array($result))
{
$roll[$i]=$rows['Text'];
$i++;
}
$total_elmt=count($roll);
?>
---------------------------------------------------------Now I have the form 
 <form method="POST" action="">
 Select the news post to Update: <select name="sel">
<option>Select</option>
<?php 
for($j=0;$j<$total_elmt;$j++)
{
?><option><?php 
echo $roll[$j];
?></option><?php
}
?>
</select><br />
Text Field: <input name="username" type="text" /><br />
<input name="submit" type="submit" value="Update"/><br />
<input name="reset" type="reset" value="Reset"/>
</form>
-----------------------------------------------Now I have the update php
<?php
if(isset($_POST['submit']))
{
$username=$_POST['username'];
$query2 = "UPDATE news_updates SET username='$username' WHERE rollno='$value'";
$result2=mysql_query($query2) or die("Query Failed : ".mysql_error());
echo "Successfully Updated";
}
?>

3 个答案:

答案 0 :(得分:2)

好吧,你似乎错过了$value部分。这样的事情应该做,最后一部分:

<?php
if(isset($_POST['submit']))
  {
    $username = mysql_real_escape_string($_POST['username']);
    $value = mysql_real_escape_string($_POST['sel']);
    $query2 = "UPDATE news_updates SET username='$username' WHERE rollno='$value'";
    echo $query2; //For test, to see what is generated, and sent to database
    $result2=mysql_query($query2) or die("Query Failed : ".mysql_error());
    echo "Successfully Updated";
}
?>

此外,您不应使用 mysql _ * 函数,因为它们已被弃用。你应该切换到mysqli或PDO。

答案 1 :(得分:0)

您需要更改此

<?php 
for($j=0;$j<$total_elmt;$j++)
{
?><option><?php 
echo $roll[$j];
?></option><?php
}

到这个

<?php 
for($j=0;$j<$total_elmt;$j++)
{
?><option value="<?php echo $roll[$j];?>"> <?php echo $roll[$j];?></option> <?php
}

您还需要从此

更改更新查询
$query2 = "UPDATE news_updates SET username='$username' WHERE rollno='$value'";

到这个

$query2 = "UPDATE news_updates SET username='$username' WHERE rollno='".$_POST['sel']."'";

<强>ñ。 B。:我假设$_POST['sel']具有用户从下拉菜单中选择的值,因为我找不到与$value对应的任何内容

答案 2 :(得分:0)

首先,尝试为您的选项添加一个值,如下所示:

for($j=0;$j<$total_elmt;$j++)
{
?>
    <option value="<?php echo $roll['id']; ?>"><?php echo $roll['option_name']; ?></option>
<?php
}

然后,在解析文件时,请执行以下操作:

$value = $_POST['sel']; // add any desired security here

那应该为你做的