我的项目需要一个解决方案。实际上,我遇到了一个问题。让我告诉你我的问题的图片。 Senerio of my problem
如果你看到,有一些12个月的列。所以我需要运行MySQL查询或程序,它可以显示包含文本“Not Paid”的选定列。
例如。
如果我想检查一月到三月或六月到十一月等会员“未付费”,那么解决方法是什么...... ??
我知道我们可以使用“之间”条款,但我没有得到这个想法。因为我想使用两个下拉菜单,用户可以选择从哪个月到他们想要查看的月份。
请帮助我摆脱这个问题。我是PHP的新手。
答案 0 :(得分:1)
如果我是你,我会将月份表示为日期,即使是字符串(例如'2017-06'
),然后将月份映射到语义表示字符串(例如,'June'
)。因此,一种方法是将日期作为varchar
存储在MySQL数据库中。
在对数据库中的数据建模方面,我将创建一个包含三列的表1)user_id
; 2)due_date
; 3)payment_status
。
.----------------------------.
| 0 | 2017-06 | paid |
| 1 | 2017-07 | not paid |
| 2 | 2017-08 | paid |
| 3 | 2017-09 | paid |
'----------------------------'
现在,您可以编写一个查询来检索具有“未付费”的1月到3月之间的成员。 (注意:这只是一种方式,有很多方法可以查询)
SELECT
DISTINCT(user_id)
FROM payments_table
WHERE due_date >= '2017-03'
AND due_date < '2017-06'
AND payment_status = 'not paid';