1

と の 2 つのテーブル名がbook_listありbook_categoryます。スキーマは次のようになります。

book_list

+---------+--------+-----------+  
| id_book | id_cat | book_name |     
+---------+--------+-----------+     
|   1     |    3   | Book Nam1 |
|   2     |    1   | Book Nam2 |
|   3     |    2   | Book Nam3 |
+---------+--------+-----------+

book_category

+--------+----------+-----------+-------+
| id_cat | cat_name | id_parent | level |
+--------+----------+-----------+-------+
|   1    |   name1  |     0     |   1   | 
|   2    |  name1.1 |     1     |   2   |
|   3    |name1.1.1 |     2     |   3   |
+--------+----------+-----------+-------+

試したコード:

SELECT a.id_book, a.id_cat, a.book_name, b.cat_name, b.level 
FROM book_list a
INNER JOIN book_category b  ON  a.id_cat = b.id_cat

結果配列を操作して、それぞれが次のように自分自身へのリンクを持つブレッドクラムを追加する必要があります。

table row:
<td>3(id_book)</td>
<td>Book Nam3 (book_name)</td>
<td>
  <a href="handle.php?id=<?=id_cat;?>">Name 1</a> » 
  <a href="handle.php?id=<?=id_cat;?>">Name 1.1</a> »
  <a href="handle.php?id=<?=id_cat;?>">Name 1.1.1</a>
</td>

私が私の主張をしたことを願っています。助けてくれてありがとう。

4

2 に答える 2

0

このクエリを試してください。

SELECT
  bl.id_book, bl.id_cat, bl.book_name, tc2.cat_name, tc2.level
FROM
  book_list bl
JOIN book_category tc
  ON tc.id_cat = bl.id_cat
JOIN book_category tc2
  ON LOCATE(tc2.cat_name, tc.cat_name) > 0
WHERE
  tc.id_cat = 3

このクエリは、部分文字列の発生に基づいていますcat_name

于 2012-04-09T07:11:28.193 に答える
0

試す

SELECT a.id_book, a.id_cat, a.book_name , b.cat_name, b.level 
FROM book_list a
JOIN book_category b  ON  USING(id_cat)

その後

<a href="handle.php?id=<?=$id_cat;?>"><?=$cat_name?></a>
于 2012-04-09T07:08:17.657 に答える