1

我正在使用以下查询来连接两个表。表 gz_topics 包含页面 Title 和 Subtitle 等基本信息,而每个页面的文章存储在表 gz_articles_topics_intro 中。GZ.URL 实际上是一个与每个页面的 URL 匹配的变量,但我在这里使用“Birds”作为示例。

$Zext = mysql_fetch_assoc(mysql_query("SELECT GZ.N, GZ.URL, GZ.Title, GZ.Live,
AI.URL, AI.Article, AI.Pagedex
FROM gz_topics GZ
LEFT JOIN gz_articles_topics_intro AI ON AI.URL = GZ.URL
WHERE GZ.URL LIKE 'Birds' AND GZ.Live = 1"));

它工作正常。当我将我的文章放在三个单独的表格中并尝试​​加入它们时,问题就开始了......

$Zext = mysql_fetch_assoc(mysql_query("SELECT GZ.N, GZ.URL, GZ.Title, GZ.Live,
Art.URL, Art.Article, Art.Pagedex,
AI.URL, AI.Article, AI.Pagedex, AN.URL, AN.Article, AN.Pagedex
FROM gz_topics GZ
LEFT JOIN gz_articles_topics Art ON Art.URL = GZ.URL
LEFT JOIN gz_articles_topics_intro AI ON AI.URL = GZ.URL
LEFT JOIN gz_articles_topics_names AN ON AN.URL = GZ.URL
WHERE GZ.URL LIKE '$MyURL' AND GZ.Live = 1"));

当我将它粘贴到 SQL 中时,它工作得很好,显示了所有数据,包括文章。但是我的页面上没有显示任何值。

这是我用来显示文章的代码:

$Article = $Zext['Article'];
echo $Article;

我尝试过内部连接和外部连接、while 循环等,但似乎没有任何效果。我的 PHP/MySQL 技能处于中等水平,我不知道问题出在哪里,因为正如我所说,当我将它粘贴到 SQL 时它工作正常,而且我没有看到任何错误消息。

问题一定就在我的眼皮底下,因为这看起来很简单——即使对我来说也是如此。;)

感谢您的任何提示。

编辑时:我修复了一个错误,我的查询现在显示表 gz_topics 中的项目,例如页面标题。但是,它仍然不显示文章。

4

1 回答 1

0

问题 1 ) 你有三列同名“文章”

Art.Article, AI.Article, AN.Article

您可以像这样重命名它们:

Art.Article AS Article1, AI.Article AS Article2, AN.Article AS Article3

然后您可以使用相应的列(1、2 或 3):

$Article = $Zext['Article1'];

问题2)如果内容是纯文本(不是HTML),你应该转义输出:

echo htmlentities($Article);

于 2013-06-10T03:30:18.243 回答