如何使用php代码自动增加MySQLi中的单元格? [重复]

问题描述 投票:0回答:2

这个问题在这里已有答案:

为什么这个问题被认为是重复的?????当我关注重复链接时,两个问题完全不同!我不能使用AUTO_INCREMENT,因为它只限于一列。我需要多个列来增加命令而不是自动增加。

我会在sql中使用auto_increment选项,但我的表中有多个列需要根据不同的条件递增。我想我可以通过检查列中的最大数量并添加1来做到这一点,但它似乎没有按照我的意图工作。我做错了什么,或者有没有更有效的方法来做到这一点,我没有看到?

(我搜索了建议的问题,但没有一个具体到足以与我的问题进行比较,从我看到的。)

$maxpost = "SELECT MAX(postid) FROM posts WHERE userid=$userid";
$postid = $maxpost + 1;
php mysqli
2个回答
-1
投票

您可以使用以下方法获取表的当前自动增量值:

SELECT `AUTO_INCREMENT`
FROM  INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'DatabaseName'
AND   TABLE_NAME   = 'TableName';

但我认为你的主要问题是你说增量“细胞”..

你能解释一下你所拥有的例子吗?

更新

好的,根据你的评论你需要:

$maxpost = "SELECT MAX(postid) + 1 as maxpost , MAX(commentid) + 1 as maxcommentid ,MAX(reply) + 1 as maxcreply FROM posts WHERE userid=$userid";

你可以得到:

$newpostid = row['maxpost'];
$newcommentid  = row['maxcommentid '];
$newcreply  = row['maxcreply'];

但显然你需要获取你的查询......


-1
投票

你也可以这样做,这会把最新的帖子放在最顶层。

$maxpost = "SELECT postid FROM posts WHERE userid=$userid ORDER BY postid DESC LIMIT 1";
$postid = $maxpost + 1;

更新:

$sql = 'SELECT postid FROM posts WHERE userid=$userid ORDER BY postid DESC LIMIT 1';
$result = mysqli_query($conn, $sql);   

if (mysqli_num_rows($result) > 0) 
{
   while($row = mysqli_fetch_assoc($result)) 
   {
        $postid = $row["postid"];
        echo "postid: " . $postid . "<br>";
   }
}

$maxpost = $postid + 1;
echo "maxpost: " . $maxpost . "<br>";
© www.soinside.com 2019 - 2024. All rights reserved.