Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何更改我正在检索的记录的状态_Php_Mysql_Database_Scripting_Server - Fatal编程技术网

Php 如何更改我正在检索的记录的状态

Php 如何更改我正在检索的记录的状态,php,mysql,database,scripting,server,Php,Mysql,Database,Scripting,Server,我想更改正在检索的邮件的状态。 考虑一个具有三列消息、用户名和状态的MySQL数据库。 从这个表中,我正在检索状态都为1的消息。 例如,我正在检索user1的消息,该消息的状态为1。检索该消息后,我希望将该消息的状态更改为0。只有user1消息状态,而不是其他消息状态。我该怎么做?有人请回答 只需使用语句 UPDATE message_user2 SET status = 0 WHERE Username = 'user1' 试试这个 更新消息\u user2 set status=0,

我想更改正在检索的邮件的状态。 考虑一个具有三列消息、用户名和状态的MySQL数据库。

从这个表中,我正在检索状态都为1的消息。 例如,我正在检索user1的消息,该消息的状态为1。检索该消息后,我希望将该消息的状态更改为0。只有user1消息状态,而不是其他消息状态。我该怎么做?有人请回答

只需使用语句

UPDATE message_user2 
SET status = 0 
WHERE Username = 'user1'
试试这个

更新消息\u user2 set status=0,其中username='user1'和status=1。。。顺便说一句,如果这是您的意思,您可能希望该表中有一个auto_inc id来驱动它,请首先重新阅读您的问题。我们不知道您是想将user1的第一条消息设置为0,还是两者都设置为0。然后,如果您只想更新其中一个,那么使用where子句,使用@Ephoriagrogi第一次看到的消息='hey there',可能意味着非索引搜索。因此,您需要列id上的PK。这是基本的表设计。您需要复合索引来访问用户、状态等,而这不是小文本窗口中的教程站点。你应该花几个小时在教程上。你应该问一些与地质问题有关的问题。你想做的事与你的身份没有严格的关系。更合适的标题是如何更新mysql数据库上的记录。我建议您阅读本页,我可以简单地更改值。但我想要的是,在获得记录后,我想要更改值。那么您也想要一个select来进行更新吗@karthikeyanthen正如Drew所说,在表中添加主键,这样我们就可以很容易地引用它。我想在检索该记录时在数据库中选择一条记录。我想更改该记录的状态值,该记录称为存储过程。Select本身不会这样做
UPDATE message_user2
SET message_user2.status = 0 
WHERE Username IN '(SELECT Username FROM message_user2 WHERE Username = user1)';
DECLARE @name VARCHAR(128) DECLARE @SQL VARCHAR(254) SELECT @name = (SELECT TOP 1 username FROM message_user2 WHERE username='user1' and status=1)

WHILE @name IS NOT NULL BEGIN SELECT @SQL = 'Update message_user2 set status=0 where username='+@name EXEC (@SQL) PRINT 'Updated value: ' + @name SELECT @name = (SELECT TOP 1 username FROM message_user2 WHERE username='user1' and status=1 ) END SELECT * from message_user2 where status=0 and username='user1' GO