我使用下面的查询来连接两个表。表gz_topics提供基本信息,如页面标题和副标题,而每个页面的文章存储在表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中的项,比如页面标题。但是,它仍然不显示文章。
发布于 2013-06-10 11:30:18
文章问题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);
https://stackoverflow.com/questions/17016416
复制相似问题