我有两个表:table_a(name,ID)和table_b(Task)。
我可以选择将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'");
P.S。 ID是自动增量
当我使用此代码并显示table_b时,应更新的值为空。 请帮我把它搞定
答案 0 :(得分:0)
在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];
这将获取您需要的值。
编辑: 更新和删除语句不会生成任何结果集作为输出。