Цыкл While

Epicentr

Guest
Цыкл While

Есть цыкл обращения к базе
$cur=odbc_exec($cx,"select ID_GROUP, User from Subject WHERE ID_GROUP>=1");
$cur2=odbc_exec($cx,"select Schet from req WHERE Schet>=1");
while(odbc_fetch_row($cur)){
$User=odbc_result($cur,2);
$Cn=odbc_result($cur2,1);
echo "
какая то таблица



}
";
Как Вы уже наверное догадались мне нужен посчет количества сообщений через другой запрос
Но после обращения Он выводит правильно только $User а количество записей отображается по первому полю...
 

Demiurg

Guest
помоему это можно сделать одним запросом.
 

Epicentr

Guest
Пробовал и так...
$cur=odbc_exec($cx,"select Subject.ID_GROUP, Subject.User, reqSchet from Subject, req WHERE Subject.ID_GROUP>=1 AND req.Schet>=1");
Выводит ерунду какуюто четыре записи а не две как положенно
 

StUV

Rotaredom
всегда, когда вижу слово цЫкл начинаю судорожно искать орфорграфич. словарь по рус. языку :)))))
 

Epicentr

Guest
а нельзя вот так?
while (odbc_fetch_row($cur, cur2)){
}
 

Epicentr

Guest
вернее в одном while обратиться сразу к двум запросам
$cur=odbc_exec($cx,"select ID_GROUP, User from Subject WHERE ID_GROUP>=1");
$cur2=odbc_exec($cx,"select Schet from req WHERE Schet>=1");

while (odbc_fetch_row($cur, $cur2)){
$User=odbc_result($cur,2);
$Cn=odbc_result($cur2,1);

}
 

Demiurg

Guest
ты бы описал свои таблицы, нам бы легче было.

цыган к цыпленку подошел на цыпочках и цыкнул ЦЫКЛ!
 

StUV

Rotaredom
прикольно, что СократПерсональный при контекстном переводе не видит разницы между "цыган" и "цыкл" =)
 

Epicentr

Guest
таблица (Subject)
ID_GROUP, ID_MESSAGE, MESSAGE, User
1 0 Тема1 Oleg
0 1 Ответ1 Vadim
0 1 Ответ2 Gelo
0 1 Ответ3 Shurik
2 0 Тема 2 Sergey
0 2 Ответ2 Vadim
запрос req к (Subject)
ID_MESSAGE Schet
1 3
2 1
Теперь вроде должно быть понятно?
 

Epicentr

Guest
там где запрос он считает сколько сообщений относятся к группе 1 и 2
 

StUV

Rotaredom
вот этот запрос:

select Subject.ID_GROUP, Subject.User, reqSchet from Subject, req WHERE Subject.ID_GROUP>=1 AND req.Schet>=1

вот с этими цитатами:
> запрос req к (Subject)
> там где запрос он считает сколько сообщений относятся к группе 1 и 2

как-то слабо соотносится

> Теперь вроде должно быть понятно?

нет, что-то ни...а не понятно

----
опиши подробно

1. структуру таблицы req (и пример ~ 3-4 строки из базы)
2. что ты хочешь получить из этих двух таблиц
 

Epicentr

Guest
короче в запросе req который формируется из таблицы ID_MESSAGE он смотрит сколько групп в таблице Subject и сколько сообщений в каждой группе
ID_MESSAGE Count(ID_MESSAGE)
 

Epicentr

Guest
таблица Subject
ID_GROUP (это поле для групп)
ID_MESSAGE (это поле для сообщений) чтобы поймать к какой группе отсится сообщение идет такая логика
если ID_GROUP =1 то ответом на это сообщение будет ID_MESSAGE = 1
 

Epicentr

Guest
ID_GROUP, ID_MESSAGE, MESSAGE, User
1 0 Тема1 Oleg
0 1 Ответ1 Vadim
0 1 Ответ2 Gelo
0 1 Ответ3 Shurik
2 0 Тема2 Sergey
0 2 Ответ2 Vadim

из этого следует что в таблице Subject:
две темы

в первой 3 ответа во второй 1
 

Demiurg

Guest
select a.message , count(b.*) from table a left join table b on a.id_group = b.id_message where a.id_gruop <> 0
group by a.id_group
 

Epicentr

Guest
т.е. в одном запросе все делать? а не создавать запрос в базе?
 
Сверху