Duvida query

1. Duvida query

Victor
detoniks

(usa Debian)

Enviado em 01/03/2013 - 09:59h

Bom dia,

Tenho 2 tabelas com os seguintes campos:

ramais_info:
Ramal - IP - latencia - status

e canais_info:
Ramal - canal - duracao - bridged

O campo ramal eh a chave estrangeira
O que acontece eh o seguinte, o tabela canais_info, lista as chamadas ativas no momento do ramal.
NEM SEMPRE o ramal esta em ligação, e qd nao tem ligaçao pro ramal, logo nao eh preenchido nada na tabela canais_info, la soh entra ramais com chamada.

Tenho um SELECT ja porem ele nao pega os dados do canal, nem duracao nem bridged

Meu select ta assim:
$sql_comando = " SELECT aux.total_chamadas, ri.ramal, ri.ip, ri.latencia, ri.status
FROM ramais_info ri
LEFT JOIN (SELECT c.ramal, COUNT(*) as total_chamadas
FROM canais_info c
GROUP BY c.ramal) aux ON ri.ramal = aux.ramal

WHERE 1=1 " . (!empty($data['field']) ? " AND lower(" . $data['stype'] . ") LIKE '%" . strtolower($data['field']) . "%'" : "") .
$statusw[$data['status']] . "" .
$latenciaw[$data['latencia']] . "";

PARA acrescentar os canais eu tentei fazer como abaixo, porem ele soh LISTA UMA chamada de cada ramal, e as vezes o ramal tem mais de uma chamada, e com meu select que fiz soh ta listando UM =/

$sql_comando = " SELECT aux.total_chamadas, auxx.canal, ri.ramal, ri.ip, ri.latencia, ri.status
FROM ramais_info ri
LEFT JOIN (SELECT c.ramal, COUNT(*) as total_chamadas
FROM canais_info c
GROUP BY c.ramal) aux ON ri.ramal = aux.ramal
LEFT JOIN (SELECT cii.ramal, cii.canal, cii.duracao
FROM canais_info cii
GROUP BY cii.ramal) auxx ON ri.ramal = auxx.ramal

WHERE 1=1 " . (!empty($data['field']) ? " AND lower(" . $data['stype'] . ") LIKE '%" . strtolower($data['field']) . "%'" : "") .
$statusw[$data['status']] . "" .
$latenciaw[$data['latencia']] . "";



Alguem pode dar uma ajuda?





  


2. Re: Duvida query

Victor
detoniks

(usa Debian)

Enviado em 01/03/2013 - 12:54h

Mudei para isso para ficar mais simples

$sql_comando = " SELECT aux.total_chamadas, aux.canal, ri.ramal, ri.ip, ri.latencia, ri.status
FROM ramais_info ri
LEFT JOIN (SELECT c.ramal, COUNT(*) as total_chamadas, c.canal
FROM canais_info c
GROUP BY c.ramal) aux ON ri.ramal = aux.ramal
WHERE 1=1 " . (!empty($data['field']) ? " AND lower(" . $data['stype'] . ") LIKE '%" . strtolower($data['field']) . "%'" : "") .
$statusw[$data['status']] . "" .
$latenciaw[$data['latencia']] . "";


Porem o resultado eh o mesmo =/


3. Re: Duvida query

Victor
detoniks

(usa Debian)

Enviado em 01/03/2013 - 13:13h

Acho que se eu botar esta query:

$sql_comando2 = "SELECT c.canal
FROM canais_info as c
LEFT JOIN ramais_info as r ON r.ramal = c.ramal";

Dentro da outra funcionaria nao?


4. Re: Duvida query

Perfil removido
removido

(usa Nenhuma)

Enviado em 01/03/2013 - 15:15h

detoniks escreveu:

Acho que se eu botar esta query:

$sql_comando2 = "SELECT c.canal
FROM canais_info as c
LEFT JOIN ramais_info as r ON r.ramal = c.ramal";

Dentro da outra funcionaria nao?


Victor,

Para mostrar as chamadas daquele ramal, é uma consulta simples, feita em outra janela do browser baseada pelo ramal que você clicou no relatório principal que já está feito.

Você irá passar pra essa nova janela, seja através do método GET(URL) ou através de POST(FORMULÁRIO) o ramal que a pessoa clicou.

Ex através da URL:

Link, quando a pessoa clicasse no ramal, ficaria: detalhe_ramal.php?ramal="<?php echo $sql[$i]["RAMAL"]; ?>"

Nessa página detalhe_ramal.php, você vai receber a variável ramal: $ramal=$_GET['ramal'];

E por ela você monta a SQL:

$query="select *
from ramais_info ri
where ri.ramal = '$ramal'";

Depois é só mostrar o resultado de cima.

Acho que já dá pra fazer algo com essa orientação.

Boa sorte!



5. Re: Duvida query

Victor
detoniks

(usa Debian)

Enviado em 01/03/2013 - 15:28h

alex.castilho escreveu:

detoniks escreveu:

Acho que se eu botar esta query:

$sql_comando2 = "SELECT c.canal
FROM canais_info as c
LEFT JOIN ramais_info as r ON r.ramal = c.ramal";

Dentro da outra funcionaria nao?


Victor,

Para mostrar as chamadas daquele ramal, é uma consulta simples, feita em outra janela do browser baseada pelo ramal que você clicou no relatório principal que já está feito.

Você irá passar pra essa nova janela, seja através do método GET(URL) ou através de POST(FORMULÁRIO) o ramal que a pessoa clicou.

Ex através da URL:

Link, quando a pessoa clicasse no ramal, ficaria: detalhe_ramal.php?ramal="<?php echo $sql[$i]["RAMAL"]; ?>"

Nessa página detalhe_ramal.php, você vai receber a variável ramal: $ramal=$_GET['ramal'];

E por ela você monta a SQL:

$query="select *
from ramais_info ri
where ri.ramal = '$ramal'";

Depois é só mostrar o resultado de cima.

Acho que já dá pra fazer algo com essa orientação.

Boa sorte!


Vlw a Atençao Alex,

mas nao eh bem em outra url, na vdd eh um botao que tem do lado de cada linha, que ao clicar abre um tipo de popup feito em jquery na MESMA URL. E nessa popup eu tenho que listar alguns dados, dentre eles cada chamada do ramal em questão para que depois eu execute um shell_exec para derrubar a chamada em especifico selecionada


6. Re: Duvida query

Victor
detoniks

(usa Debian)

Enviado em 03/03/2013 - 20:39h

Alguem com alguma solução? =/






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts