这个问题在这里已有答案:
为什么这个问题被认为是重复的?????当我关注重复链接时,两个问题完全不同!我不能使用AUTO_INCREMENT,因为它只限于一列。我需要多个列来增加命令而不是自动增加。
我会在sql中使用auto_increment选项,但我的表中有多个列需要根据不同的条件递增。我想我可以通过检查列中的最大数量并添加1来做到这一点,但它似乎没有按照我的意图工作。我做错了什么,或者有没有更有效的方法来做到这一点,我没有看到?
(我搜索了建议的问题,但没有一个具体到足以与我的问题进行比较,从我看到的。)
$maxpost = "SELECT MAX(postid) FROM posts WHERE userid=$userid";
$postid = $maxpost + 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'];
但显然你需要获取你的查询......
你也可以这样做,这会把最新的帖子放在最顶层。
$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>";