在关系中(在 ExpressionEngine 中)使用自定义表的最佳方法?

发布于 2024-12-08 08:12:06 字数 486 浏览 0 评论 0原文

所以,我有点了解如何在关系中使用单独的表或类似的东西......

我有一个包含大约 5000 家酒店的表,名为 exp_h_hotels
在我的网站上,我使用 pages 模块为国家/地区的每个部分创建静态子页面。我想列出属于特定地区的所有酒店。

我知道我不能做这样的事情(使用带有查询模块的 ExpressionEngine 标签):

{exp:query sql="SELECT * FROM exp_h_hotels WHERE h_regionname ='{regionname}'"}
       {hotel_name}
{/exp:query} 

任何人都知道继续执行此操作的最佳方法吗?

我研究过使用 ExpressionEngine API 将数据插入通道 - 然而,我感觉用 5000 个帖子(每个帖子有 14-20 个字段)填充通道条目表并不是最佳选择。

So, I’m a bit on how to use a separate table in a relationship, or something like that…

I have a table with around 5000 hotels called exp_h_hotels.
On my website, I use the pages module to create a static subpage for each part of the country. I want to list all hotels that belong to a specific region.

I have understood that I can’t do something like this (using ExpressionEngine tags with the query module):

{exp:query sql="SELECT * FROM exp_h_hotels WHERE h_regionname ='{regionname}'"}
       {hotel_name}
{/exp:query} 

Anyone knows the best way to go forward with this?

I have looked into using the ExpressionEngine API to insert the data into a channel – however, I get the feeling that it wouldn’t be optimal to flood the channel entries table with 5000 posts with 14-20 fields with data each.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

第几種人 2024-12-15 08:12:06

只要您的 exp:query 标记位于 channel:entries 标记内,就没有理由按您的预期工作:

{exp:channel:entries channel="pages" limit="1"}
<h1>Hotels in {regionname}</h1>
<ul>    
{exp:query sql="SELECT * FROM exp_h_hotels WHERE h_regionname ='{regionname}'"}
   <li>{hotel_name}</li>
{/exp:query}
</ul>
{/exp:channel:entries}

然而,从长远来看,将您的酒店导入 EE 的新渠道是一个更好的计划。您可以从数据库导出到 CSV(也许使用 phpMyAdmin),然后使用 DataGrab。向 EE 添加 5000 个新条目并没有什么问题。

There's no reason why this shouldn't work as you expect, so long as your exp:query tag is inside your channel:entries tag:

{exp:channel:entries channel="pages" limit="1"}
<h1>Hotels in {regionname}</h1>
<ul>    
{exp:query sql="SELECT * FROM exp_h_hotels WHERE h_regionname ='{regionname}'"}
   <li>{hotel_name}</li>
{/exp:query}
</ul>
{/exp:channel:entries}

However, for the long-term, importing your hotels into a new channel in EE is a much better plan. You could export from your database to CSV (using phpMyAdmin perhaps) and then import into EE using DataGrab. Nothing wrong with adding 5000 new entries to EE.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文