Php在表中计算+1插入值

时间:2014-10-09 23:42:08

标签: php mysql sql

大家好我有3张桌子:

Propossals:  
id_propossal, date  

Articles:  
id_article, description  

Data:  
id, id_propossal, id_artigo, position  

所以这里的问题是,我想创建一些能够自动计算文章在表数据上的位置的东西。

示例:

Propossals  
-------------
1 04/06/2014  
2 05/06/2014

Articles
-------------
1 article01  
2 article02

Data
-------------
1(id) 1(id_propossal)  1(id_article) 1(position defined by user using INSERT)  
2(id) 1(id_propossal)  2(id_article) 2(position|this number calculates automatically +1)  
3(id) 1(id_propossal)  1(id_article) 3(position|this number calculates automatically +1)  

如果我做另一个提议,

4(id) 2(id_propossal)  1(id_article) 1(position|goes back to 1 because is a new propossal)  

像这样的东西,感谢所有的帮助。

2 个答案:

答案 0 :(得分:0)

在数据表上发出请求,找到id_propossal等于你要插入的行的max + 1位置。

例如,如果要插入123 id_propossal

SELECT (COALESCE(MAX(number),0)+1) AS nextPosition  FROM Data WHERE id_propossal=123

这将返回1.

(如果max返回null,则使用COALESCE)

另一种方法是保存Propossalstable上的最后一个位置。

但是,如果要从Data表中删除行,该怎么办?你将有未使用的职位。

答案 1 :(得分:0)

好的,已经修好了:

使用MAX()函数,从propossal中选择最高值并在其上添加+1,它解决了我的问题。

感谢您的帮助。