更新SQL表

时间:2013-03-14 13:08:30

标签: php mysql sql

我想更新特定行上的表需要一些关于我的php语句的建议

我使用此语句来调用客户端的信息

<?php
$host="localhost"; // Host name 
$username="****"; // Mysql username 
$password="****"; // Mysql password 
$db_name="****"; // Database name 
$tbl_name="members"; // Table name

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// get value of id that sent from address bar
$id=$_GET['id'];

// Retrieve data from database 
$sql="SELECT * FROM $tbl_name WHERE member_msisdn='$query'";
$result=mysql_query($sql);
$rows=mysql_fetch_array($result);
?>

这很好地回应了我需要的信息并能够改变它。

<form name="form1" method="post" action="control_clientupdated.php">

这引用了我的动作php脚本

我需要帮助的问题是如何通知我的操作脚本使用与运行查询相同的ID来更新该行。

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// update data in mysql database 
$sql="UPDATE $tbl_name SET member_name='$member_name',     
member_surname='$member_surname', member_msisdn='$member_msisdn', cid='$cid',    
cofficenr='$cofficenr', cfax='$cfax',  e2mobile='$e2mobile' WHERE member_msisdn='$query'";
$result=mysql_query($sql);

我已将WHERE语句放在更新结尾

让我说明它已完成,但它并没有更新表格

1 个答案:

答案 0 :(得分:1)

首先,您需要将ID存储在表单中的隐藏表单元素中。

<form method="post" action="control_clientupdated.php">
    <input type="hidden" name="member_msisdn" value="<?=$query?>" />
    ...
</form>

这将允许您传递第一个php脚本中的值。

然后在您的control_clientupdated.php中,您需要使用$_POST来恢复您的价值。

// Store the $_POST value for my query ID
$query = $_POST['member_msisdn'] ;

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// update data in mysql database 
$sql="UPDATE $tbl_name SET member_name='$member_name',     
member_surname='$member_surname', member_msisdn='$member_msisdn', cid='$cid',    
cofficenr='$cofficenr', cfax='$cfax',  e2mobile='$e2mobile' WHERE member_msisdn='$query'";
$result=mysql_query($sql);

这应该是您所需要的 - 请注意,您无法使用$_GET检索表单传递的变量,因为您使用method="post"属性发送该变量时必须使用{{1}而不是$_POST