|
|
|
| Есть две таблицы в базе T1 и T2 в таблице Т2 есть строка cat
Мне необходимо создать страницу на которой выводилось бы
Первая строка из T1
Все строки с значением 1 строки cat из Т2
Вторая строка из Т1
Все строки с значением 2 строки cat из T2
И Т.Д. …
Я достаточно недавно занимаюсь php и буду благодарен даже информации хоть как такое называется и в каком месте искать ответ. | |
|
|
|
|
|
|
|
для: cerf000
(30.05.2009 в 16:39)
| | начать с того, что
1) в таблицах БД нет первых , вторых и последних строк. Все строки лежат внавал.
2) в таблицах нет именованных строк. Есть именованные столбцы. Так что строка cat - наверное вовсе не строка. А столбец. | |
|
|
|
|
|
|
|
для: Trianon
(30.05.2009 в 16:52)
| | 1) Ну пусть в навал задать id в таблице я умею
2) Все верно я имел ввиду столбец | |
|
|
|
|
|
|
|
для: cerf000
(30.05.2009 в 16:39)
| | Вообще то Вам в MySql. И скорее всего не строки cat из T2, а ячейки..
Вам это одним запросом нужно? | |
|
|
|
|
|
|
|
для: Yuri
(30.05.2009 в 16:57)
| | Один и ли несколько не так важно. У меня это получается только каждый раз обращаясь занова к таблице а уж это очень много получается :( | |
|
|
|
|
|
|
|
для: cerf000
(30.05.2009 в 17:04)
| | Один запрос.
SELECT t1.*, t2.*
FROM t1
LEFT JOIN t2 ON t1.id = t2.cat
ORDER BY t1.id
|
Вывод столбцов таблицы t1 , само собой, нужно будет выполнять только при смене t1.id | |
|
|
|
|
|
|
|
для: Trianon
(30.05.2009 в 17:13)
| | Спасибо пойду пробывать :) | |
|
|
|
|
|
|
|
для: cerf000
(30.05.2009 в 17:04)
| | Сколько строк из T1 предпологается к выводу?.. и вообще хоть образно поясните что должно получиться.. | |
|
|
|
|
|
|
|
для: Yuri
(30.05.2009 в 17:15)
| | из T1 выводим две ячейки но я думаю что если разобратся с одной со второй проблем не будет.
Пример:
(T1)Фрукты:
(T2)Яблоко
Груша
Абрикос
(T1)Обои:
(T2) В горошек
В клетучку
В крапинку
..... и т д | |
|
|
|
|
|
|
|
для: cerf000
(30.05.2009 в 17:23)
| |
select t1.*, t2.cat from t1,t2 when t1.obj = t2.obj
|
вместо столбца odj в t2 и t1 нужно указать столбцы которые разделяет категории cat... то есть obj в t1 и obj в t2 должны быть равны...
получится что-то вроде:
1 | фрукты | Яблоко |
2 | фрукты | Груша |
3 | фрукты | Абрикос |
4 | обои | В горошек |
5 | обои | В клеточку |
6 | обои | В крапинку |
|
вариант запроса не идеальный :) | |
|
|
|
|
|
|
|
для: Yuri
(30.05.2009 в 17:40)
| | не совсем понял у меня в Т1 5 столбцов а в Т2 11 из которых один столбец отведен под cat для распределения по категориям.
Должно быть равно количество столбцов в Т1 и Т2 ? В Т1 вообще нет столбца с категорией ! тоесть это будет работать если он будет ? | |
|
|
|
|
|
|
|
для: cerf000
(30.05.2009 в 17:54)
| | в данном примере подразумевается, что из t1 берутся все столбцы, а из t2 только столбец cat (как просили).. укажите
select t1.*, t2.* from t1,t2 when t1.obj = t2.obj
|
будет выведено в один результат все из t1 и t2
> В Т1 вообще нет столбца с категорией ! тоесть это будет работать если он будет ?
а как вы определяете к чему относится cat ? по id?
ps. смотрите только чтоб имена столбцов не перекрывались на выходе.. | |
|
|
|
|
|
|
|
для: Yuri
(30.05.2009 в 18:00)
| | да по id
SELECT * FROM categories WHERE id='$cat'",$db
через _GET | |
|
|
|
|
|
|
|
для: cerf000
(30.05.2009 в 18:03)
| |
select t1.*, t2.* from t1,t2 when t1.id = t2.cat
|
имхо id очень зыбкое понятие.. хотя работать будет | |
|
|
|
|
 35.6 Кб |
|
|
для: Yuri
(30.05.2009 в 18:08)
| |
<?
$result = mysql_query("SELECT * FROM categories",$db);
{
$myrow = mysql_fetch_array($result);
do
{
printf ("<BR><a href='cat.php?cat=%s'>%s<BR></a>",$myrow["id"],$myrow["title"]);
echo $myrow['text'];
}
while ($myrow = mysql_fetch_array($result));
}
?>
|
выводит из таблицы categories:
[url]Фрукты [/url]
сочный, обычно съедобный, плод дерева или кустарника. Разновидностью фруктов являются также некоторые ягоды.
[url]Обои[/url]
отделочный материал для внутренних стен и иногда потолков, обычно выпускается в виде рулонов. Обои бывают на бумажной, тканевой и полимерной (виниловые и другие обои) основе.
[url]Овощи[/url]
кулинарный термин, обозначающий съедобную часть (например, плод или клубень), растения.
|
Есть другая таблица в прикрепленном файле. Как мне вывести все наименования (столбец title) первой cat после "фрукты" второй cat после "обои" и третий cat после "овощи"
Все что мне советовали до этого у меня не получилось :( но можетя я не правильно объяснил :( | |
|
|
|
|
|
|
|
для: Yuri
(30.05.2009 в 18:08)
| | >
select t1.*, t2.* from t1,t2 when t1.id = t2.cat
|
Самым зыбким понятием здесь, очевидно, является when? | |
|
|
|
|
|
|
|
для: Trianon
(31.05.2009 в 19:12)
| | это место не понятно и нигде не найти ссылки на объяснения я перерыл 2 книги и яндекс а толку мало.
И еще у меня вопрос вывода этих значений! как присвоить переменную для т2 | |
|
|
|
|
|
|
|
для: Trianon
(31.05.2009 в 19:12)
| | Посыпаю голову пеплом... конечно where... усталость
select t1.*, t2.* from t1,t2 where t1.id = t2.cat
|
| |
|
|
|
|
 17.3 Кб |
|
|
для: Yuri
(31.05.2009 в 22:35)
| | Если ставить t1.id = t2.cat то выводит одинаковых записей столько сколько id в t2 поэтому я ставлю t1.id = t2.id
<?
$result = mysql_query("SELECT t1.*,t2.cat FROM t1,t2 where t1.id = t2.id",$db);
{
$myrow = mysql_fetch_array($result);
do
{
printf ("<BR><a href='cat.php?cat=%s'>%s<BR></a>",$myrow["id"],$myrow["title"]);
echo $myrow['text'];
}
while ($myrow = mysql_fetch_array($result));
}
?>
|
Но проблема с самого начала была как и теперь вывести после echo $myrow['text'];
title по категориям как на картинке | |
|
|
|
|
|
|
|
для: cerf000
(05.06.2009 в 02:10)
| | запрос SELECT t1.*,t2.cat не получает ни одного поля кроме cat из второй таблицы.
Неоднозначность с именем можно разрешить с помощью алиаса: SELECT ..., t2.title AS t2_title, ... | |
|
|
|
|
|
|
|
для: Trianon
(05.06.2009 в 08:32)
| |
SELECT t1.*,t2.title AS t2_title,cat FROM t1,t2 where t1.id = t2.id
| вроде так должно выводить и title а как его выводить надо назначить переменную ? | |
|
|
|
|
|
|
|
для: cerf000
(05.06.2009 в 14:45)
| | print_r($myrow) | |
|
|
|