Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Запрос в базу (помогите мозг уже не варит) (https://javascript.ru/forum/server/44639-zapros-v-bazu-pomogite-mozg-uzhe-ne-varit.html)

arahmanov 27.01.2014 17:49

Запрос в базу (помогите мозг уже не варит)
 
Есть две таблицы
первая Работы- три колонки sum, ispol и id_zakaz
вторая Сотрудники (sot)- содержит id и name , где name = ispol


мне нужно выбрать из базы все сотрудников из таблицы sot

и по каждому из них сделать запрос в таблицу rabot , и вывести поле (sum)
если такой сотрудник в данном заказе присутствует.

do while может сделать запрос по каждому из сотрудников


$result2 = mysql_query("SELECT * FROM sot");
$myrow2 = mysql_fetch_array($result2); 


do {
	
но что писать сюда.... 

$result_r = mysql_query("SELECT sum FROM rabot WHERE id_zakaz='$id_zakaz AND ispol='$myrow2[name]' '");
$myrowR = mysql_fetch_array($result_r); 


если так... то как потом вывести на экран 
фио - сумма
фио- сумма
фио - сумма

}

while ($myrow2 = mysql_fetch_array ($result2));

arahmanov 27.01.2014 17:52

нужно как то сделать сдвоенный цикл

omepta.cc 27.01.2014 18:08

НАПИШИ РЕШИЛ?

omepta.cc 27.01.2014 18:19

$zap01 = 'SELECT * FROM sot ' ;
$ath01 = mysql_query($zap01);
while($row=mysql_fetch_array($ath01))
{
$COTRUD = $row['name'] ;

$zap02 = 'SELECT * FROM rabot WHERE ispol = "'.$COTRUD.'" ' ;
$ath02 = mysql_query($zap02);
while($row2=mysql_fetch_array($ath02))
{

$BPEMEHHO = $row2['sum'] ;
$TEKy = $TEKy+$BPEMEHHO ;
}
ECHO ' СОТРУДНИК '.$COTRUD.' ИТОГО '.$TEKy ;
$TEKy = '' ;
}

arahmanov 27.01.2014 18:46

Цитата:

Сообщение от omepta.cc (Сообщение 294410)
$zap01 = 'SELECT * FROM sot ' ;
$ath01 = mysql_query($zap01);
while($row=mysql_fetch_array($ath01))
{
$COTRUD = $row['name'] ;

$zap02 = 'SELECT * FROM rabot WHERE ispol = "'.$COTRUD.'" ' ;
$ath02 = mysql_query($zap02);
while($row2=mysql_fetch_array($ath02))
{

$BPEMEHHO = $row2['sum'] ;
$TEKy = $TEKy+$BPEMEHHO ;
}
ECHO ' СОТРУДНИК '.$COTRUD.' ИТОГО '.$TEKy ;
$TEKy = '' ;
}


Спасибо помогло....

подскажи как добавить сюда
$zap02 = 'SELECT * FROM rabot WHERE ispol  = "'.$COTRUD.'" ' ;

"AND"

$zap02 = 'SELECT * FROM rabot WHERE ispol  = "'.$COTRUD.'" AND id_zakaz='$id'  ' ;

arahmanov 27.01.2014 19:01

$zap02 = 'SELECT * FROM rabot WHERE ispol = "'.$COTRUD.'" AND id_zakaz='$id' ' ;
так не работает

arahmanov 27.01.2014 19:07

$zap02 = 'SELECT * FROM rabot WHERE ispol = "'.$COTRUD.'" AND id_zakaz="$id" ' ;

так тоже нет

omepta.cc 28.01.2014 01:11

ОБЬСНИ ЛОГИКУ ЧТОБЫ ЧТО ВЫВОДИЛО ? , А ТАК БИЛИБЕРДА ПОЛУЧИТЬСЯ
, ТАМ ВЕДЬ ПО НАЧАЛЬНЫМ УСЛОВИЯМ СУММА СЧИТАЛАСЬ ОБЩАЯ ПО СОТРУДНИКУ

kostyanet 28.01.2014 06:59

Походу join's и агрегаты оракл отменил.

kostyanet 28.01.2014 07:07

Цитата:

Сообщение от arahmanov
первая Работы- три колонки sum, ispol и id_zakaz
вторая Сотрудники (sot)- содержит id и name , где name = ispol

Чтобы пальцы не болели писать employee и projects?

$q="select rabot.sum from sot
inner join rabot on rabot.ispol=sot.name
and rabot.id_zakaz=$id_zakaz;";


Часовой пояс GMT +3, время: 06:41.