我使用以下查询来连接两个表。表格gz_topics提供基本信息,例如页面标题和副标题,而每个页面的文章存储在表格gz_articles_topics_intro中。 GZ.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;
我已尝试过内连接和外连接,而循环等等,但似乎没有任何效果。我的PHP / MySQL技能是中级的,我不知道问题是什么,因为正如我所说,当我将它粘贴到SQL中时,它工作正常,而且我没有看到任何错误消息。
问题必须在我的鼻子底下,因为这看起来很简单 - 即使对我来说也是如此。 ;)
感谢您的任何提示。
编辑:我修正了一个错误,我的查询现在显示表格gz_topics中的项目,就像页面标题一样。但是,它仍然没有显示文章。
答案 0 :(得分: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);