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

Форум MySQL

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

 

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

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

тема: Помогите с обращением к таблице через несколько таблиц
 
 автор: kaoz   (31.03.2006 в 11:59)   письмо автору
 
 


table1
----------------------
[id_req][name][req_id]
----------------------

table2
------------------------------
[id_off][p][e][req_id][usi_id]
------------------------------

table3
------------------------------
[id_usi][inf[1]][...][inf[12]]
------------------------------



В первой таблице храниться двухуровневое дерево (типа разделы и подразделы), во второй статьи которые храняться
только в подразделах и ссылки на юзеров их опубликовавших. в третей только информация о пользователях...

Мне необходимо вывести на экран такую таблицу:


<table>
 <tr>
  <td>[примечания(icq, мылы, имя итд)]</td>
  <td>inf[столбец 1]                  </td>
 <tr>
  :
 <tr>
  <td>[примечания(icq, мылы, имя итд)]</td>
  <td>inf[столбец 9]                  </td>
 <tr>
</table>

<table>
 <tr>
  <td>[название подраздела]</td> // из первой таблицы
  <td>[p]</td>                   // из второй таблицы
  <td>[e]</td>                   // от туда же
 <tr>
  : <- До тех пор пока не кончатся статьи (в подразделе может и не быть статьи данного юзера, а может из трех две, к примеру)
       (можно вывести все статьи подраздела а в той ячейке где у пользователя нет статью пусть будет пустота)
 <tr>
  <td>[название подраздела]</td> // из первой таблицы
  <td>[p]</td>                   // из второй таблицы
  <td>[e]</td>                   // от туда же
 <tr>
</table>


из входных данных есть только ссылка раздел [id_req] на который ссылаются неизвестное количество подразделов.


Помогите пожалуйста решить данную проблему.. очень срочно надо сдаваться идти, а без этой таблицы нельзя. =(

   
 
 автор: cheops   (31.03.2006 в 12:09)   письмо автору
 
   для: kaoz   (31.03.2006 в 11:59)
 

А вы бы не могли приложить кусочек SQL-дампа с определением таблиц и парой записей - просто восстанавливать все эти таблицы для эксперимента достаточно затруднительно.

   
 
 автор: kaoz   (31.03.2006 в 12:33)   письмо автору
 
   для: cheops   (31.03.2006 в 12:09)
 

вот...

   
 
 автор: kaoz   (31.03.2006 в 13:40)   письмо автору
 
   для: kaoz   (31.03.2006 в 12:33)
 

пожалуйста, помогите решить проблему...

   
 
 автор: cheops   (01.04.2006 в 13:37)   письмо автору
 
   для: kaoz   (31.03.2006 в 13:40)
 

Пропустил архив, в отмеченные тема ушла... Вот что непонятно, "примечания" - это что и по какому принципу они формируются? Как вообще должна работать система, что мы создаём?

   
 
 автор: kaoz   (01.04.2006 в 15:24)   письмо автору
 
   для: cheops   (01.04.2006 в 13:37)
 

примечания относятся к информации о пользователе и я пишу их вручную
в данном случае в таких примечаний 9:
имя              ->  i1   (из table3)
фамилия    ->  i2   (из table3)
e-mail          ->  i3   (из table3)
возраст       ->  i4   (из table3)
icq                ->  i5   (из table3)
доп1            ->  i6   (из table3)
доп2            ->  i7   (из table3)
доп3            ->  i8   (из table3)
доп4            ->  i9   (из table3)


система работает так:

исходные данные:
1.есть разделы в них есть подразделы (подразделы относятся к разделам через id_req и req_id из table 1)
2.есть пользователи (о которых есть информация в table3)
3.есть коментарии к подразделам (table2 относиться к table1 и table3)

задача:
необходимо сформировать таблицу столько раз сколько пользователей сделало коментарии
к подразделам таким образом


<table>
  <table> // информация о пользователях
    <tr> // ячейка повторяется столько раз сколько столбцов i в table3
      <td>Примечание</td>
      <td>i[i]</td>
    </tr>
  </table>
  <table> // коментарии
    <tr> // шапка таблицы
      <td>Столбец 1</td>
      <td>Столбец 2</td>
    </tr>
    <tr> // эта ячейка повторяется столько раз сколько существует подразделов, если возможно,    
            // то сделать повторения для всех подразделов к которым пользователь оставил 
            // коментарий
      <td></td> // название подраздела (table1)
      <td></td> // коментарий (table2)
      <td></td> // дополнительный коментарий (table2)
    </tr>
  </table>
</table>

   
 
 автор: cheops   (02.04.2006 в 12:50)   письмо автору
 
   для: kaoz   (01.04.2006 в 15:24)
 

Я не уверен, правильно ли понял, но можно поступть так, для выводов разделов, в которых имеются комментарии
SELECT * FROM table1, table2, table3
WHERE table1.id_req = table2.req_id AND
table2.usi_id = table3.id_usi
GROUP BY table1.id_req

а для вывода имён пользователей
SELECT * FROM table1, table2, table3
WHERE table1.id_req = table2.req_id AND
table2.usi_id = table3.id_usi
GROUP BY table3.id_usi

   
 
 автор: kaoz   (01.04.2006 в 12:05)   письмо автору
 
   для: kaoz   (31.03.2006 в 11:59)
 

ну что там?
может мне логику поменять?
тогда как посоветуете лучше?

   
Rambler's Top100
вверх

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