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

标签 mysql codeigniter expressionengine

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

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

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

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

有人知道继续这个工作的最佳方法吗?

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

最佳答案

只要您的 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 的新 channel 是一个更好的计划。您可以从数据库导出到 CSV(也许使用 phpMyAdmin),然后使用 DataGrab 导入到 EE 中。向 EE 添加 5000 个新条目并没有什么问题。

关于mysql - 在关系中(在 ExpressionEngine 中)使用自定义表的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7671424/

相关文章:

MYSQL ON UPDATE CASCADE 仅适用于 1 列

php - 使用codeigniter在MySQL中通过foreach保存多个复选框数据

expressionengine - HTTPS和HTTP ExpressionEngine网站URL标记

mysql - 将带有替换的字段从一个数据库复制到另一个数据库

c# - 如何在不复制逗号或任何其他标点符号的情况下将文本与单词分开?

sql - 同时对查询进行排序和随机化

php - SQL SELECT 返回数组但 PHP 认为它为空

php - 使用 CodeIgniter 自动备份 MySQL 数据库

php - 使用 Codeigniter 的多语言数据库

javascript - json_encode php 5.5 vs 5.3 与 js 配合不佳