从另一个表 php mysql 更新具有先前值的表


Update a table with previous value from another table php mysql

我有两个表:table_a(名称,ID(和table_b(任务(。

我可以选择将 table_a.name 中的值插入到 table_b.Task 中。

但是当我想从 table_a.name 中删除一个值并且该值在 table_b.Task 中找到时,则必须使用 table_a.name 中删除的值的先前值更新 table_b.Task 值。

这是代码:

  $delete=$_POST['deletevalue'];
  if(isset($_POST['_submit'])){
$id=mysql_query("SELECT ID FROM table_a WHERE name='$delete'");

$x=mysql_query("SELECT MAX(ID) FROM table_a WHERE ID<$id");
$task=mysql_query("SELECT name FROM table_a WHERE ID=$x");
$query1=mysql_query("delete from table_a where name='$delete'");
$query2=mysql_query("UPDATE table_b SET Stare='$task' WHERE Task='$delete'");

附言ID是自动递增

当我使用此代码并显示table_b应更新的值为空时。请帮我让它工作

在 php 中,函数mysql_query返回一个结果集对象。

若要获取实际值,需要从结果集中获取值。这应该会有所帮助:

$objId=mysql_query("SELECT ID FROM table_a WHERE name='$delete'");
$rowId=mysql_fetch_row($objId);
$id=$rowId[0];

同样,您可以获取其他实例的值。

顺便说一句,您可以组合以下查询:

$id=mysql_query("SELECT ID FROM table_a WHERE name='$delete'");
$x=mysql_query("SELECT MAX(ID) FROM table_a WHERE ID<$id");
$task=mysql_query("SELECT name FROM table_a WHERE ID=$x");

$objTask=mysql_query("SELECT a.name FROM table_a a WHERE a.ID=(SELECT MAX(b.ID) from table_a b WHERE b.ID<(SELECT c.ID FROM table_a c WHERE c.name='$delete'))");
$rowTask=mysql_fetch_row($objTask);
$task=$rowTask[0];

这将获取您需要的值。

编辑:更新和删除语句不会生成任何结果集作为输出。