Jump to content


Photo

Relacionamento Entre Várias Tabelas


  • Faça o login para participar
2 replies to this topic

#1 benini

benini

    Novato no fórum

  • Usuários
  • 18 posts
  • Sexo:Não informado

Posted 04/01/2005, 22:02

Saudações...

Já procurei neste fórum e em vários outros e achei boa parte das dúvidas, no entanto, estou precisando de um help pra finalizar o codigo, to quebrando a cabeça mas não to conseguindo.

Tenho 3 tabelas:

campeonatos onde cadastro os campeonatos
| cod_camp | campeonato | ano |


clubes onde é feito o cadasto dos clubes
| cod_cl | clube | estado | escudo |

e por último a tabela jogos onde recebe os "cod" das outras duas
| cod_jg | camp_cod | data | clubem_cod | resultadom | resultadov | clubev_cod |

O codigo que montei é o seguinte:

<link href="/lec.css" rel="stylesheet" type="text/css"> <table width="580" border="0" align="center" cellspacing="1" summary="">
  <tr bordercolor="#CCCCCC" bgcolor="#0099FF" class="fonte"> 
    <td width="20" align="center"><font color="#FFFFFF"><strong>Campeonato</strong></font></td>
    <td width="80" align="center"><font color="#FFFFFF"><strong>Mandante</strong></font></td>
    <td width="155" align="center"><font color="#FFFFFF"><strong>Resultado</strong></font></td>
    <td width="50" align="center"><font color="#FFFFFF"><strong>Placar</strong></font></td>
    <td width="155" align="center"><font color="#FFFFFF"><strong>Resultado</strong></font></td>
    <td width="130" align="center"><font color="#FFFFFF"><strong>Visitante</strong></font></td>
  </tr>
<?php
$host = "localhost"; 
$user = "xxxxxxxxxxxxx"; 
$pass = "xxxxxxx"; 
$db = "xxxxxx_xxxx";
    $cor1="#F3F3F3";
     $cor2="#E9E9E9";
     $cor=$cor1 or $cor2;
mysql_connect($host,$user,$pass) or die ("Impossivel Conectar ao Servidor MySQL");
mysql_select_db($db) or die ("Impossivel Abrir Database");

$sql = "select * from campeonatos as a, clubes as b, jogos as c where a.cod_camp=c.camp_cod and b.cod_cl=c.clubem_cod";
$rs = mysql_query($sql) or die ("Não foi possivel efetuar a consulta");

while ($linha = mysql_fetch_array($rs)) {

$camp_cod = $linha["campeonato"];
$clubem_cod  = $linha["clube"];
$resultadom  = $linha["resultadom"];
$resultadov  = $linha["resultadov"];
$clubev_cod  = $linha["clube"];

   if($cor===$cor1){
      $cor=$cor2;
}else{
$cor=$cor1;
}
?>
  <tr class="fonte"> 
    <td width="20" align="center"bgcolor="<?php echo"$cor";?>"><?php echo"$camp_cod";?><br /> 
    </td>
    <td width="80" align="center"bgcolor="<?php echo"$cor";?>" ><?php echo "$clubem_cod";?></td>
    <td width="155" align="right"bgcolor="<?php echo"$cor";?>" ><?php echo "$resultadom";?> 
    </td>
    <td width="50" align="center"bgcolor="<?php echo"$cor";?>" ><?php echo "<a href=\"fichatecnica.php?id=$id\">$r_mandante x $r_visitante</a>";?></td>
    <td width="155" align="left"bgcolor="<?php echo"$cor";?>" ><?php echo "$resultadov";?></td>
    <td width="130"bgcolor="<?php echo"$cor";?>" ><?php echo "$clubev_cod";?></td>
  </tr>
  <?php }?>
</table>

Se você CLICAR AQUIvai mostra como está listando o esquema acima...

Mas reparem que em visitante está aparecendo Londrina e deveria ser atlético. No select do código você vai ver que só estou buscando o clube mantante e ai que to me quebrando, não sei como fazer o selec para buscar o clube visitante.

$sql = "select * from campeonatos as a, clubes as b, jogos as c where a.cod_camp=c.camp_cod and b.cod_cl=c.clubem_cod"; esse é o atual

$sql = "select * from campeonatos as a, clubes as b, jogos as c where a.cod_camp=c.camp_cod and b.cod_cl=c.clubem_cod and b.cod_cl=c.clubev_cod"; já tentei colocar mais um AND e também um monte de outros jeitos, mas só consegui erros e duplicar os dados...

Espero ter explicado direito e se alguém puder dar um help ae neste select, como eu completo ele, ou de outra maneira...

É isso ae, fico aguardando...

T+
TORCIDA FALANGE AZUL
Londrina - Paraná - Brasil
http://www.falangeazul.com.br

-----------------------------------
Os Beto - Tocando Gostoso
-----------------------------------

#2 gifs.kit.net

gifs.kit.net

    Saulo Petri

  • Usuários
  • 457 posts
  • Sexo:Não informado
  • Localidade:Niterói, RJ

Posted 05/01/2005, 00:39

pergunta:

na tabela jogos o clubem_cod e clubev_cod, vc ta gravando o cod_cl da tabela clubes?

se for isso, vo te dar uma ideia de como eu faria pra listar os jogos:

PHP
<?php



$sql
= "SELECT * FROM jogos ORDER BY cod_jg DESC";
$resultadodapesquisa = mysql_query($sql)
or die (
"Não foi possível realizar a consulta ao banco de dados");
while (
$linha=mysql_fetch_array($resultadodapesquisa)) {
$cod_jg = $linha["cod_jg"];
$clubem_cod = $linha["clubem_cod"];
$clubev_cod = $linha["clubev_cod"];
//aí tu continua fazendo data, resultadom, resultadov, etc


//======================================================
//aí vc faz outra busca na tabela clubes pelo cod do time mandante:
//======================================================

$sqlcm = "SELECT * FROM clubes where cod_cl='$clubem_cod'";
$resultadodapesquisacm = mysql_query($sqlcm)
or die (
"Não foi possível realizar a consulta ao banco de dados");
while (
$linha2=mysql_fetch_array($resultadodapesquisacm)) {
$clubemandante = $linha2['clube'];
}

//======================================================
//aí vc faz outra busca na tabela clubes pelo cod do time visitante:
//======================================================

$sqlcv = "SELECT * FROM clubes where cod_cl='$clubev_cod'";
$resultadodapesquisacv = mysql_query($sqlcv)
or die (
"Não foi possível realizar a consulta ao banco de dados");
while (
$linha3=mysql_fetch_array($resultadodapesquisacv)) {
$clubevisitante = $linha3['clube'];
}

echo
"$data | $clubemandante | $clubevisitante";
}




?>
se eu não errei nada isso vai dar certo, se não funcionar, tente entender a lógica que eu usei valew!!! :D

Edição feita por: gifs.kit.net, 05/01/2005, 00:50.

nome: Saulo Petri
email: saulopetri@gmail.com

Sites:

O melhor Axé do Rio
sakeiaboa


#3 benini

benini

    Novato no fórum

  • Usuários
  • 18 posts
  • Sexo:Não informado

Posted 05/01/2005, 01:14

Puxa, valeu mesmo...

Da forma que você colocou deu certinho... Só inclui umas coisas aqui e ali e pronto... deu certo!


na tabela jogos o clubem_cod e clubev_cod, vc ta gravando o cod_cl da tabela clubes?


Isso mesmo... clubem_cod e clubev_cod grava o cod_cl da tabela clubes.

Se quiser dar uma olhada --- CLICA AQUI

O exemplo 1 é o meu (o da dúvida) o exemplo 2 é o seu código, só que deu uma pequena alterada e inclui algumas coisas...

<link href="/lec.css" rel="stylesheet" type="text/css">
<table width="580" border="0" align="center" cellspacing="1" summary="">
  <tr bordercolor="#CCCCCC" bgcolor="#0099FF" class="fonte"> 
    <td width="20" align="center"><font color="#FFFFFF"><strong>Campeonato</strong></font></td>
    <td width="80" align="center"><font color="#FFFFFF"><strong>Mandante</strong></font></td>
    <td width="155" align="center"><font color="#FFFFFF"><strong>Resultado</strong></font></td>
    <td width="50" align="center"><font color="#FFFFFF"><strong>Placar</strong></font></td>
    <td width="155" align="center"><font color="#FFFFFF"><strong>Resultado</strong></font></td>
    <td width="130" align="center"><font color="#FFFFFF"><strong>Visitante</strong></font></td>
  </tr>
<?php
$host = "localhost"; 
$user = "xxxxxxxxxxx_xxx"; 
$pass = "xxxxxxx"; 
$db = "xxxxxxx_xxxxxxxxxxxx";
  $cor1="#F3F3F3";
     $cor2="#E9E9E9";
     $cor=$cor1 or $cor2;
mysql_connect($host,$user,$pass) or die ("Impossivel Conectar ao Servidor MySQL");
mysql_select_db($db) or die ("Impossivel Abrir Database");
$sql = "SELECT * FROM jogos ORDER BY cod_jg DESC";
$resultadodapesquisa = mysql_query($sql)
or die ("Não foi possível realizar a consulta ao banco de dados");
while ($linha=mysql_fetch_array($resultadodapesquisa)) {
$cod_jg = $linha["cod_jg"];
$data = $linha["data"];
$camp_cod = $linha["camp_cod"];
$clubem_cod = $linha["clubem_cod"];
$resultadom = $linha["resultadom"];
$resultadov = $linha["resultadov"];
$clubev_cod = $linha["clubev_cod"];

   if($cor===$cor1){
      $cor=$cor2;
}else{
$cor=$cor1;
}
//aí tu continua fazendo data, resultadom, resultadov, etc


//==============================================
//aí vc faz outra busca na tabela clubes pelo cod do time mandante:
//==============================================

$sqlcm = "SELECT * FROM clubes where cod_cl='$clubem_cod'";
$resultadodapesquisacm = mysql_query($sqlcm)
or die ("Não foi possível realizar a consulta ao banco de dados");
while ($linha2=mysql_fetch_array($resultadodapesquisacm)) {
$clubemandante = $linha2['clube'];
}

//==============================================
//aí vc faz outra busca na tabela clubes pelo cod do time visitante:
//==============================================

$sqlcv = "SELECT * FROM clubes where cod_cl='$clubev_cod'";
$resultadodapesquisacv = mysql_query($sqlcv)
or die ("Não foi possível realizar a consulta ao banco de dados");
while ($linha2=mysql_fetch_array($resultadodapesquisacv)) {
$clubevisitante = $linha2['clube'];
}

//==============================================
//aí vc faz outra busca na tabela campeonatos pelo cod do campeonato:
//==============================================

$sqlc = "SELECT * FROM campeonatos where cod_camp='$camp_cod'";
$resultadodapesquisac = mysql_query($sqlc)
or die ("Não foi possível realizar a consulta ao banco de dados");
while ($linha2=mysql_fetch_array($resultadodapesquisac)) {
$campeonato = $linha2['campeonato'];
}
?>
 <tr class="fonte"> 
    <td width="20" align="center"bgcolor="<?php echo"$cor";?>"><?php echo"$campeonato";?><br /> 
    </td>
    <td width="80" align="center"bgcolor="<?php echo"$cor";?>" ><?php echo "$clubemandante";?></td>
    <td width="155" align="right"bgcolor="<?php echo"$cor";?>" ><?php echo "$resultadom";?> 
    </td>
    <td width="50" align="center"bgcolor="<?php echo"$cor";?>" ><?php echo "<a href=\"fichatecnica.php?id=$id\">$r_mandante x $r_visitante</a>";?></td>
    <td width="155" align="left"bgcolor="<?php echo"$cor";?>" ><?php echo "$resultadov";?></td>
    <td width="130"bgcolor="<?php echo"$cor";?>" ><?php echo "$clubevisitante";?></td>
  </tr>
  <?php }?>
</table>

Edição feita por: benini, 05/01/2005, 01:17.

TORCIDA FALANGE AZUL
Londrina - Paraná - Brasil
http://www.falangeazul.com.br

-----------------------------------
Os Beto - Tocando Gostoso
-----------------------------------




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq