MySQL+PHPで、サイトを制作しているのですが、データの表示の仕方で悩んでいます。

下記のSQL文をもっと簡単に記述する方法はありませんか?
うまく説明することが出来ないのですが、理解していただいた方がいたら解説などをいれてお願いします。


//SQL文の記述
$sql = "";
$sql .= "SELECT
DISTINCT tb1.f1 AS f1,
     tb1.f2 AS f2,
     tb1.f3 AS f3,
     tb1.f4 AS f4,
     tb2.f1 AS f5,
     tb2.f2 AS f5
FROM tb1 LEFT OUTER JOIN tb2 ON tb1.f1=tb2.f1
WHERE tb1.f2 = '$hensu' OR tb1.f3 = '$hensu' OR tb1.f4 = '$hensu'";

$rs = mysql_query( $sql, $conn );

while( $rec = mysql_fetch_array( $rs, MYSQL_ASSOC )){

print <<<_EOT_
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr><td><h1>{$rec["f5"]}</h1></td></tr>
_EOT_;

//SQL文の記述
$sql = "";
$sql .= "SELECT*";
$sql .= " FROM tb1";
$sql .= " WHERE (f2 = '$hensu' OR f3 = '$hensu' OR f4 = '$hensu') and f1 = '$rec[f1]'";

$rs2 = mysql_query( $sql, $conn );

while( $rec2 = mysql_fetch_array( $rs2, MYSQL_ASSOC )){

print "<tr><td bgcolor="#FFFFFF">{$rec2["f5"]}<td></tr>";

}
print "</td></tr></table>";
}

回答の条件
  • 1人50回まで
  • 登録:
  • 終了:2006/08/16 18:45:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440

ポイント35pt

質問に質問で返してしまいますが。

とりあえず、

・tb1 と tb2 のDDL

・使用している MySQL のバージョン。

・何回か出現している $hensu という変数はすべての場所で同一の値でよいのかどうか。

を確認させてください。

あと、できれば何のデータをどのように表示したいのかサンプルを提示していただけるとはっきりとした答えが出やすいかと思います。

id:black_kenchan

>・tb1 と tb2 のDDL

DDLとは、「Data Definition Language」の事ですか?

だとした、分からないです。すいません。

>・使用している MySQL のバージョン。

3.23だと思います。

>・何回か出現している $hensu という変数はすべての場所で同一の値でよいのかどうか。

はい。同じでよいです。

ショッピングサイトを作ろうと思うのですが、カテゴリ別にページを生成しようと思います。

例えば、index.php?CAT=1だったら電化製品みたいな感じにして、更にそのページの中で、カメラ、パソコンと見出しを作って商品を並べたいと思っています。

$hensuとうのは、CAT=1の部分の1なります。

2006/08/09 21:11:32
id:b-wind No.2

回答回数3344ベストアンサー獲得回数440

ポイント35pt

すいません再度確認させてください。

最初の SQL の

tb2.f1 AS f5,

tb2.f2 AS f5

tb2.f1 AS f5,

tb2.f2 AS f6

の間違いでしょうか?

あと、tb1,tb2 の各カラムに何が入っているかが分かりにくいです。

tb1.f1 は何が入っているのでしょうか? tb2.f2 はカテゴリ名称ということでよろしいでしょうか?

また何か入っているデータに条件はありませんか?それぞれのカラムに任意のデータが入るとすると、SQL の変更は無理だと思います。

id:black_kenchan

tb2.f1 AS f5,

tb2.f2 AS f5

上記は間違いです。下記があってます。

tb2.f1 AS f5,

tb2.f2 AS f6

tb2.f2 はカテゴリ名称です。

>また何か入っているデータに条件はありませんか?それぞれのカラムに任意のデータが入るとすると、SQL の変更は無理だと思います。

特にないです。

2006/08/09 22:03:34

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません