|
|
|
| пытаюсь составить многотабличный запрос но немного не врубаюсь что к чему... помогите пожалуйста.
необходимо из таблиц cms_cat и cms_ucat вытащить данные столбца cat если значение столбца up = 1.
таблицы:
CREATE TABLE `cms_cat` (
`id_cat` INT NOT NULL AUTO_INCREMENT,
`count` TINYTEXT,
`cat` TINYTEXT,
`up` TINYTEXT DEFAULT NULL,
PRIMARY KEY (id_cat)
) TYPE = MYISAM;
CREATE TABLE `cms_ucat` (
`id_ucat` INT NOT NULL AUTO_INCREMENT,
`id_cat` TINYTEXT,
`count` TINYTEXT,
`cat` TINYTEXT,
`up` TINYTEXT DEFAULT NULL,
PRIMARY KEY (id_ucat)
) TYPE = MYISAM;
|
| |
|
|
|
|
|
|
|
для: 10100100
(22.10.2006 в 11:28)
| | Столбца up какой таблицы? Что хранится в таблице cms_cat и cms_ucat и какой результат вы хотите получить, вам действительно нужен многотабличный запрос (т.е. реализация связи), а не объединение (union)? | |
|
|
|
|
|
|
|
для: cheops
(22.10.2006 в 12:09)
| | в таблицах хранятся в первой:
id_каталога, занимаемое место по счёту, название каталога, индикатор up (0 or 1)
вторая таблица:
id_подкаталога, id_каталога(к которому прикреплён данный пункт подкаталога), индикатор места по счёту, имя подкаталога, индикатор up (0 or 1)
мне нужно вывести названия каталогов и подкаталогов в одном запросе, в который индикатор up равен единице.
возможно Вы правы - видимо нужен UNION а не многотабличный запрос. я в этом не очень хорошо пока тчо разбираюсь. помогите пожалуйста. | |
|
|
|
|
|
|
|
для: 10100100
(22.10.2006 в 12:50)
| |
SELECT cat FROM cms_cat
UNION
SELECT cat AS ucat FROM cms_ucat
|
Так? | |
|
|
|
|
|
|
|
для: ЯR
(22.10.2006 в 13:30)
| | Только условие нужно добавить, и названия столбцов подобрать, чтобы они совпадали
SELECT cat, count, up FROM cms_cat
WHERE up = 1
UNION
SELECT cat, count, up FROM cms_ucat
WHERE up = 1
|
| |
|
|
|
|
|
|
|
для: 10100100
(22.10.2006 в 12:50)
| | хм... спасибо. это то что надо, а как вывод теперь правильно организовать?
мой код сейчас выглядит так:
<?php
include "config.php";
$select_sql = "SELECT cat, id_cat, count, up FROM cms_cat WHERE up = 1 UNION SELECT cat, id_ucat, count, up FROM cms_ucat WHERE up = 1";
$result = MYSQL_QUERY($select_sql);
if(!$result) exit(mysql_error());
WHILE ($arr = mysql_fetch_array($result))
{
$id_cat = $arr['id_cat'];
$id_ucat = $arr['id_ucat'];
$count = $arr['count'];
$cat = $arr['cat'];
$up = $arr['up'];
echo "<a href=\"\">$cat</a>";
}
?>
|
Ругается на id_cat и id_ucat но ведь они мне тоже нужны. | |
|
|
|
|
|
|
|
для: 10100100
(22.10.2006 в 15:45)
| | >Ругается на id_cat и id_ucat но ведь они мне тоже нужны.
1) Приведите точное сообщение об ошибке.
2) Поля id_ucat в результирующей таблице нет, все имена берутся из первой таблице, т.е. поля называются cat, id_cat, count, up. | |
|
|
|
|
|
|
|
для: cheops
(23.10.2006 в 02:23)
| | Notice: Undefined index: id_ucat in z:\home\localhost\www\ХХХ\cms\news\topmenu_main.php on line 9
простой нотайс выводит. дело в том что в адресе этих кнопок (ну которые мы выводим), должен быть указан их id_cat и id_ucat... | |
|
|
|
|
|
|
|
для: 10100100
(23.10.2006 в 04:28)
| | Опишите пожалуйста скрипт, который вы создаёте - какова его конечная цель? | |
|
|
|
|
|
|
|
для: cheops
(23.10.2006 в 12:23)
| | кхм. ну собсно всё просто - делаю нечто вроде LightCMS.
мой скрипт должен выводить на страницу названия кнопок у которых up равен 1.
соответственно должна генерироваться гиперссылка где в качестве имени идёт нечто вроде show.php?id_cat=$id_cat&id_ucat=$id_ucat
вот собсно и всё :) | |
|
|
|
|
|
|
|
для: 10100100
(23.10.2006 в 15:04)
| | А если запись из таблицы cms_cat, какое значение должен принимать GET-параметр id_ucat? Или таких записей вообще не должно быть? | |
|
|
|
|
|
|
|
для: cheops
(23.10.2006 в 22:25)
| | если запись происходит только из cms_cat то id_ucat должен либо ровнятся "0" либо вообще отсутствовать в адресе. | |
|
|
|
|
|
|
|
для: 10100100
(24.10.2006 в 04:57)
| | Тогда лучше использовать следующий запрос
SELECT cat, id_cat, id_ucat, count, up FROM cms_ucat
WHERE up = 1
UNION
SELECT cat, id_cat, 0, count, up FROM cms_cat
WHERE up = 1
|
| |
|
|
|
|
|
|
|
для: cheops
(24.10.2006 в 12:25)
| | спасибо. мне это очень помогло. | |
|
|
|