【发布时间】:2014-05-14 17:58:29
【问题描述】:
我最近一直在修补 PHP(自学,没有接受过正规培训),试图了解如何从数据库中获取数据并在某处显示数据。到目前为止,我学到了很多,但现在我很难过。
我的本地数据库中有一个名为 site_members 的表中的大约 200 个用户的列表。该表有三个字段:id、name、birth_date。通过 PHP,我想在网页上显示所有用户,并有类似“生日快到了!”的内容在他们的名字之后被提及。像这样的:
约翰·史密斯(生日快到了!)
我还没有编写代码来执行此操作,因为我通常先编写伪代码,然后再真正深入到编码部分。这是伪代码:
- 获取当前日期和时间并将其转换为 Unix 时间戳
- 启动 foreach 循环并遍历用户列表
- 查询数据库表,通过 id 获取用户的生日,并将其存储在名为 bdate 的变量中。
- 将 bdate 转换为 Unix 时间戳
- 从 bdate 中减去当前日期,将其转换为剩余天数,并将其存储在名为 remaining_days 的变量中。
- 如果用户的 bdate 在 15 天内(remaining_days 小于 15)
- 显示他们的名字,然后是(生日快到了!)
- 否则
- 只显示他们的名字
- 结束如果
- 结束 foreach 循环
这是我的问题:一旦将上述伪代码转换为实际代码,每次在该 foreach 循环中都会进行数据库查询。我咨询过的一些教程提到出于效率原因我应该避免这样做,这是有道理的。我跑了谷歌搜索来找到类似的东西,但这并没有起到多大作用。我不希望任何人为我编写任何实际代码。我只是想要一个更好的查询解决方案。
提前致谢!
【问题讨论】:
-
请发布您的实际代码
-
为什么要使用 foreach 循环?您可以直接从 db 中获取 bd 在未来 15 天内的详细信息。
-
@ChittaranjanSethi - 这就是我不想做的。我想一直列出所有用户,而不仅仅是生日快到的用户。