<?php
$sql_c = mysql_query("SELECT * FROM clubes");
while($c = mysql_fetch_array($sql_c)){
$sql_cc = mysql_query("SELECT id, id_clube, SUM(vitoria) as vitorias, SUM(empate) as empates, SUM(derrota) as derrotas, SUM(golspro) as golspro, SUM(golscontra) as golscontra FROM classificacao WHERE id_clube = '".$c[id]."'");
$jogos = mysql_num_rows(mysql_query("SELECT * FROM classificacao WHERE id_clube = '".$c[id]."'"));
$cc = mysql_fetch_array($sql_cc);
$pontos = $cc[vitorias]*3;
$pontos_final = $pontos+$cc[empates];
$vitorias = $cc[vitorias];
$empates = $cc[empates];
$derrotas = $cc[derrotas];
$gp = $cc[golspro];
$gc = $cc[golscontra];
$sg = $cc[golspro]-$cc[golscontra];
?>
Select Em 2 Tabelas
Started By TiagoMaker, 22/07/2013, 17:42
3 replies to this topic
#1
Posted 22/07/2013, 17:42
Dae galera, na consulta abaixo estou trazendo do banco os clubes cadastrados e as partidas de cada um com seus dados, até aí consegui fazer dessa forma, mas pra ficar realmente bom, teria que ordenar pelo time com mais pontos e depois pelo número de vitórias, empates e derrotas... Só que a consulta que poderia dar esse retorno é feita no while da consulta principal. Vocês teriam alguma dica pra simplificar e poder fazer essa ordenação?
#2
Posted 24/07/2013, 10:53
por que você não usa "SELECT * FROM clubes Order By vitorias "?
Edição feita por: zazaaa, 24/07/2013, 10:54.
#3
Posted 26/07/2013, 14:40
Use inner join
select id,vitoria from clubes inner join classificacao on (id=id_clube) order by SUM(vitoria)
select id,vitoria from clubes inner join classificacao on (id=id_clube) order by SUM(vitoria)
#4
Posted 31/07/2013, 09:46
Yo.
Dá sim pra otimizar tudo em uma consulta só.
Dica 1: utilize aliases pra distinguir as tabelas e garantir unicidade no índice do array que você criará;
Dica 2: utilize sprintf() pra criar a $sql. Melhora MUITO a legibilidade do código.
Acredito que o código abaixo resolve:
Espero que resolva. o/
Dá sim pra otimizar tudo em uma consulta só.
Dica 1: utilize aliases pra distinguir as tabelas e garantir unicidade no índice do array que você criará;
Dica 2: utilize sprintf() pra criar a $sql. Melhora MUITO a legibilidade do código.
Acredito que o código abaixo resolve:
<?php
$sql = sprintf("select C.*, A.[color=#008800][size=2]id, A.id_clube, SUM(A.vitoria) as vitorias, SUM(A.empate) as empates, SUM(A.derrota) as derrotas, SUM(A.golspro) as golspro, SUM(A.golscontra) as golscontra, COUNT(A.jogos) as jogos FROM classificacao A WHERE C.id_clube = A.id_clube[/size][/color]"); // Nesse caso, sprintf() foi inútil porque não usamos variáveis dentro da sql
?>
Espero que resolva. o/
2 user(s) are reading this topic
0 membro(s), 2 visitante(s) e 0 membros anônimo(s)










