次のクエリを使用して、2 つのテーブルを結合しています。テーブル 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"));
それは正常に動作します。問題は、記事を 3 つの別々のテーブルに入れ、それらを結合しようとしたときに始まります...
$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 に貼り付けると問題なく動作し、エラー メッセージも表示されないからです。
これは非常に単純に見えるので、問題は私の目の前にあるに違いありません。;)
ヒントをありがとう。
編集時: 1 つの間違いを修正したところ、ページ タイトルなど、テーブル gz_topics の項目がクエリに表示されるようになりました。ただし、それでも記事は表示されません。