|
|
|
| В бд две таблицы CATEGORIES и PAGE...
CATEGORIES
cat_id sub_id name
1 0 Игры РАЗДЕЛ
2 1 Настольные КАТЕГОРИЯ 1
3 1 Логические КАТЕГОРИЯ 2
PAGE
id cat title
1 2 Все о настольных играх в КАТЕГОРИИ 1
2 3 Все о логических играх в КАТЕГОРИИ 2
3 3 Сложные логические игры в КАТЕГОРИИ 2
|
Делаем запрос ...
$res= mysql_query("SELECT * FROM `PAGE` LEFT JOIN `CATEGORIES` ON `PAGE`.`cat`=`CATEGORIES`.`cat_id`");
$row = mysql_fetch_array($res);
|
Выводим результат
echo "РАЗДЕЛ:".$row['cat_id'];//получим...РАЗДЕЛ: 1
echo "КАТЕГОРИЯ:".$row['name'];//получим...КАТЕГОРИЯ: настольные(логические)
echo "ОПИСАНИЕ:".$row['title'];//получим...ОПИСАНИЕ: Все о настольных играх(Все о логических играх)(Сложные логические игры)
|
т.е (РАЗДЕЛ: 1) это Игры
Как составить запрос ,чтобы вместо РАЗДЕЛ: 1 выводить РАЗДЕЛ: Игры | |
|
|
|
|
|
|
|
для: serjinio
(08.07.2008 в 13:44)
| | >[code]echo "РАЗДЕЛ:".$row['cat_id'];//получим...РАЗДЕЛ: 1
>echo "КАТЕГОРИЯ:".$row['name'];//получим...КАТЕГОРИЯ: настольные(логические)
Неправда.
Получим
либо РАЗДЕЛ: 1 КАТЕГОРИЯ: Игры
либо РАЗДЕЛ: 2 КАТЕГОРИЯ: настольные
либо РАЗДЕЛ: 3 КАТЕГОРИЯ: логические
Все три варианта соответствует истине. | |
|
|
|
|
|
|
|
для: Trianon
(08.07.2008 в 14:11)
| | Я при таком запросе получаю
РАЗДЕЛ: 1 КАТЕГОРИЯ: настольные ОПИСАНИЕ: Все о настольных играх
РАЗДЕЛ: 1 КАТЕГОРИЯ: логические ОПИСАНИЕ: Все о логических играх
РАЗДЕЛ: 1 КАТЕГОРИЯ: логические ОПИСАНИЕ: Сложные логические игры
|
| |
|
|
|
|
|
|
|
для: serjinio
(08.07.2008 в 15:28)
| | Может в запросе сделать подзапрос, где явно выбрать name из CATEGORIES где sub_id=0?
Я не силен в синтаксисе запросов.... | |
|
|
|
|
|
|
|
для: serjinio
(09.07.2008 в 10:32)
| | Запустил....
надо использовать конструкцию
SELECT p.title, c.name AS cat, s.name AS sec
FROM PAGE p
LEFT JOIN CATEGORIES c ON p.сat = c.cat_id
LEFT JOIN CATEGORIES s ON c.sub_id = s.cat_id
|
Реальную выборку сделал по всем полям...
$res=mysql_query("SELECT DATE_FORMAT(`P`.`date`, '%d-%m-%Y') AS `dat` ,`P`.`cat`,`P`.`author`,`P`.`title`,`P`.`id`,`P`.`source`,`P`.`mini_img`,`P`.`description`,
`C`.*, `s`.`name` AS `sec`
FROM `PAGE` AS `P`, `CATEGORIES` AS `C`
LEFT JOIN `CATEGORIES` AS `S` ON `C`.`sub_id` = `S`.`cat_id`
WHERE `P`.`cat`=`C`.`cat_id`
ORDER BY `date`,`id` DESC",$db);
|
| |
|
|
|