Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вопрос по Php + MySQL
 
 автор: PhMaster   (29.10.2009 в 20:14)   письмо автору
 
 

Ребята, не знаю в какую ветку писать, но не судите строго.
Допуустим я хочу вывести данные из двух табличек, допустим нозвание отдела и функции отдела, и так для каждого отдела. То есть есть таблицы:
1) Otdel
id
name

2)Func_otdel
id
name
otdel_id

Данные должнв выводится в браузере в форме:
Наименование отдела
Функции отдела

Например,
Отдел 1
Функция 1
Функция 2
...
Отдел 2
Ф1
Ф2
....

Можно ли это сделать LEFT JOINом ? Запрос как будет выглядеть я в курсе, сложность в выводе, ибо каждая строка запроса содержит наименование отдела. И он будет дублироваться. Или же здесь одним запросом не обойтись и нкжно делать два запроса ?

  Ответить  
 
 автор: PhMaster   (29.10.2009 в 22:17)   письмо автору
 
   для: PhMaster   (29.10.2009 в 20:14)
 

ау

  Ответить  
 
 автор: PhMaster   (30.10.2009 в 07:14)   письмо автору
 
   для: PhMaster   (29.10.2009 в 22:17)
 

cheops Trianon выручаете ребята.

  Ответить  
 
 автор: shadowmaster63   (30.10.2009 в 09:08)   письмо автору
 
   для: PhMaster   (30.10.2009 в 07:14)
 

У меня похожый вопрос только он для вложенного меню :) Вообщем давай думать :)
Я у себя сделал двумя способами имхо не знаю как лучше может кто знает :(
Первый выбирает все строки из первой таблицы и выводит их и тут же выполняет запрос в другую таблицу что бы забрать от туда подменю(в твоём случае функции),
Второй вариант У меня делается два запроса и помещаются в два массива а там уде в цмкле вывода выводится нужная инфа при сравнении ключей.

Кто может лучше подскажите!

  Ответить  
 
 автор: angelcorpc   (30.10.2009 в 12:45)   письмо автору
 
   для: PhMaster   (29.10.2009 в 20:14)
 

Похожую задачу недавно решал в MS Acces. Как вариант можете построить простенькие таблички там и создав нужный запрос посмотреть его в режиме SQL.
Но это не как решение, а как вариант.

  Ответить  
 
 автор: PhMaster   (30.10.2009 в 13:04)   письмо автору
 
   для: 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

  Ответить  
 
 автор: Valick   (30.10.2009 в 13:43)   письмо автору
 
   для: PhMaster   (30.10.2009 в 13:04)
 

http://softtime.ru/forum/read.php?id_forum=3&id_theme=68718

  Ответить  
 
 автор: Лена   (30.10.2009 в 13:46)   письмо автору
 
   для: 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;
}
?>

Один раз выводим название отдела + столько функций к нему, сколько строк в базе с идом этого отдела.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования