为什么我无法显示四个联接表中的数据?

  • 本文关键字:四个 数据 显示 php mysql
  • 更新时间 :
  • 英文 :


我使用下面的查询连接两个表。表gz_topics提供基本信息,例如页面标题和副标题,而每个页面的文章存储在表gz_articles_topics_intro中。广州。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;

我尝试过内部连接和外部连接,而循环等,但似乎没有工作。我的PHP/MySQL技能是中级的,我不知道问题是什么,因为,正如我所说的,当我把它粘贴到SQL中时,它工作得很好,我没有看到任何错误消息。

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

谢谢你的建议。

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

问题1)您有三列相同的名称"Article"

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);

最新更新