Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

spanix

[Resolvido] Select

Recommended Posts

Olá Pessoal!

Estou criando um sistema de inscrição para os participantes de um evento. Preciso saber os clientes que participaram do evento de acordo com cada evento.

 

Abaixo segue as tabelas que crie no meu banco de dados:

 

TABELAS

CLIENTE

Cod_cli

Nome

Endereco

Numero

Bairro

Municipio

Estado

CEP

Email

Telefone

 

EVENTO

Cod_evento

Nome_evento

Data_evento

 

CLIENTE_EVENTO

Cod_reg

Cod_evento

Cod_cli

 

Preciso de um select que traga para mim o nome e data de cada evento, que o participantes participou de acordo com o codigo do participante.

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT * FROM CLIENTES 
INNER JOIN CLIENTE ON CLIENTE.COD_CLI = CLIENTE_EVENTO.COD_CLI

A condição você coloca de acordo com o que você quer ae. (Where)

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
require("conectdb.php");

$sql1 = "SELECT * FROM CLIENTE INNER JOIN CLIENTE ON CLIENTE.COD_CLI = CLIENTE_EVENTO.COD_CLI where cod_cli = ".$_GET["cod_cli"]."" OR DIE ("ERROR");;

$query = mysql_query($sql1);
if ($query <> false) {
while($dados = mysql_fetch_array($query)) {
$nome_evento = $dados['nome_evento'];
$data_evento = $dados['data_evento'];
}

//Executo a minha query
//$query = mysql_query($sql);
//if ($query <> false) {
//while($dados = mysql_fetch_array($query)) {

echo "
<tr>
<td align='center'>" . $dados["cod_evento"] . "
</tr>
<td align='center' valign='middle'>
" . $dados["cod_nome"] . "
</td>
";}
echo "</table>";
?>

Montei o seguinte select para a condição !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olhaa...

Aki

where cod_cli

o campo cod_cli tem nas duas tabelas, você tem que falar em qual tabela você quer pegar ele.

Eh na tabela cliente.

 

entao seria

 

where cliente.cod_cli

quando for postar coloca as tags CODE pra nós vermos melhor.

deu algum erro ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom Dia !

 

Não deu nenhum erro !

 

$sql1 = "SELECT * FROM cliente INNER JOIN cliente_evento ON CLIENTE.COD_CLI = CLIENTE_EVENTO.COD_CLI where cliente.cod_cli = ".$_GET["cod_cli"]."" or die ("error");;

Estou usando o select acima, mas não esta dando certo, o cliente que quero ver é o que esta ligado no cadastro de evento.

 

Obrigado

Abs!

Compartilhar este post


Link para o post
Compartilhar em outros sites

não está retornando nenhum registro ou não retorna o que você esperava?

 

sua query está passando os dados corretos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não está trazendo nada, tipo o que preciso é mostrar os eventos que o participantes participou anteriormente ?

 

<?php
 require("conectdb.php");
 $sql1 = "SELECT * FROM cliente INNER JOIN cliente_evento ON CLIENTE.COD_CLI = CLIENTE_EVENTO.COD_CLI where cliente.cod_cli = ".$_GET["cod_cli"]."" or die ("error");;

 $query = mysql_query($sql1);
 if ($query <> false) {
 while($dados = mysql_fetch_array($query)) {
 $nome_evento = $dados['nome_evento'];
 $data_evento = $dados['data_evento'];
 }

 //Executo a minha query
 //$query = mysql_query($sql);
 //if ($query <> false) {
 //while($dados = mysql_fetch_array($query)) {

 echo "
 <tr>
 <td align='center'>" . $dados["nome_evento"] . "
 </tr>
 <td align='center' valign='middle'>
 " . $dados["data_evento"] . "
 </td>
 ";}
 echo "</table>";
 ?>


Dá uma olhada para entender o que preciso !

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso ?

 


SELECT * FROM CLIENTE 
INNER JOIN CLIENTE_EVENTO ON CLIENTE_EVENTO.COD_CLI = CLIENTE.COD_CLI
INNER JOIN EVENTO ON EVENTO.COD_EVENTO = CLIENTE_EVENTO.COD_EVENTO
WHERE CLIENTE.COD_CLI = ".$_GET["cod_cli"]

Compartilhar este post


Link para o post
Compartilhar em outros sites

você testou isso direto no banco ? sem ser no PHP ?

 

SELECT * FROM CLIENTE 
INNER JOIN CLIENTE_EVENTO ON CLIENTE_EVENTO.COD_CLI = CLIENTE.COD_CLI
LEFT OUTER JOIN EVENTO ON EVENTO.COD_EVENTO = CLIENTE_EVENTO.COD_EVENTO
WHERE CLIENTE.COD_CLI = ".$_GET["cod_cli"]

Compartilhar este post


Link para o post
Compartilhar em outros sites

"MySQL retornou um conjunto vazio (ex. zero registros)."

 

Testei no phpMyAdmin, e deu essa mensagem.

 

Usando a sql =

SELECT * FROM CLIENTE INNER JOIN CLIENTE_EVENTO ON CLIENTE_EVENTO.COD_CLI = CLIENTE.COD_CLI INNER JOIN EVENTO ON EVENTO.COD_EVENTO = CLIENTE_EVENTO.COD_EVENTO WHERE CLIENTE.COD_CLI = ".$_GET['$cod_cli']."

Não traz nada !

Compartilhar este post


Link para o post
Compartilhar em outros sites

e usando a segunda SQL que eu postei ? com Left Outer Join

 

Mas faça o seguinte, tira o WHERE do Select e veja se traz tudo.

Se trazer eh pq ta certo, se nao trazer eh pq o cliente que você ta usando nao participou de nenhum evento

 

certo ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

E esse ?

 

SELECT * FROM CLIENTE_EVENTO
INNER JOIN CLIENTE ON CLIENTE.COD_CLI = CLIENTE_EVENTO.COD_CLI
INNER JOIN EVENTO ON EVENTO.COD_EVENTO = CLIENTE_EVENTO.COD_EVENTO

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse funcionou :D, traz para mim todos os clientes relacionados com os eventos.

Como faço para imprimir o nome do evento relacionado ao cliente ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utilize a mesma lógica e tente fazer.

 

Não adianta nada o Dee ou outro membro do fórum fazer a consulta para você se você não entender o que está sendo feito, pois sempre que precisar você vai depender do fórum. A idéia não é esta. Tente entender o que o Dee fez, busque referências no manual da linguagem (no caso Mysql) sobre o que foi utilizado, para entender o que cada comando faz.

 

Como a dúvida principal já foi resolvida, vou marcar o tópico como resolvido.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.