|
|
|
| Ребята, не знаю в какую ветку писать, но не судите строго.
Допуустим я хочу вывести данные из двух табличек, допустим нозвание отдела и функции отдела, и так для каждого отдела. То есть есть таблицы:
1) Otdel
id
name
2)Func_otdel
id
name
otdel_id
Данные должнв выводится в браузере в форме:
Наименование отдела
Функции отдела
Например,
Отдел 1
Функция 1
Функция 2
...
Отдел 2
Ф1
Ф2
....
Можно ли это сделать LEFT JOINом ? Запрос как будет выглядеть я в курсе, сложность в выводе, ибо каждая строка запроса содержит наименование отдела. И он будет дублироваться. Или же здесь одним запросом не обойтись и нкжно делать два запроса ? | |
|
|
|
|
|
|
|
для: PhMaster
(29.10.2009 в 20:14)
| | ау | |
|
|
|
|
|
|
|
для: PhMaster
(29.10.2009 в 22:17)
| | cheops Trianon выручаете ребята. | |
|
|
|
|
|
|
|
для: PhMaster
(30.10.2009 в 07:14)
| | У меня похожый вопрос только он для вложенного меню :) Вообщем давай думать :)
Я у себя сделал двумя способами имхо не знаю как лучше может кто знает :(
Первый выбирает все строки из первой таблицы и выводит их и тут же выполняет запрос в другую таблицу что бы забрать от туда подменю(в твоём случае функции),
Второй вариант У меня делается два запроса и помещаются в два массива а там уде в цмкле вывода выводится нужная инфа при сравнении ключей.
Кто может лучше подскажите! | |
|
|
|
|
|
|
|
для: PhMaster
(29.10.2009 в 20:14)
| | Похожую задачу недавно решал в MS Acces. Как вариант можете построить простенькие таблички там и создав нужный запрос посмотреть его в режиме SQL.
Но это не как решение, а как вариант. | |
|
|
|
|
|
|
|
для: angelcorpc
(30.10.2009 в 12:45)
| | Задача состоит в том чтобы запрос вида:
SELECT o.name as otdel_name, fo.name as func_name
FROM otdel o LEFT JOIN func_otdel fo ON (o.id = fo.otdel_id)
|
Вывести в браузере красиво а форме:
otdel_name1
func_name1
func_name2
......................
otdel_name2
func_name1
func_name2
......................
Двумя запросами вывести без проблем, а одним как можно обойтись при выводе на php | |
|
|
|
|
|
|
|
|
для: PhMaster
(30.10.2009 в 13:04)
| | Если учесть ту структуру таблиц, которые вы дали в первом посте, по моему, вам вот так надо:
<?php
$sql = "
SELECT o.id oi,o.name otdel_name,
fo.id fi,fo.name func_name
FROM otdel o
LEFT JOIN func_otdel fo
ON o.id = fo.id";
$res = mysql_query($sql);
if(!$res) exit("Error:" . mysql_error());
for($i = 0; $row = mysql_fetch_assoc($res); ){
list($oi,$otdel_name,$fi,$func_name) = $row;
if($i !== $oi){
$i = $oi;
print $otdel_name
}
print $func_name;
}
?>
|
Один раз выводим название отдела + столько функций к нему, сколько строк в базе с идом этого отдела. | |
|
|
|