Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite alguem já pegou esse problema tenho uma tabela (time com as colunas nome_time - logo_time) e uma outra tabela (agenda com as colunas timea_id -logoa_id - timeb_id logob_id)
A ideia é que a tabela agenda pegue o logo e o nome do time através de chave estrangeira na tabela time, o problema é o seguinte quando junto as tabelas com INNER JOIN ou com GROUP o php desconsidera as colunas da agenda( timeb_id logob_id) e não imprime na tela. OBS. testei direto no SQL e funciona normal.
Oque eu pude entender é que: ele deve esta ignorando devido as colunas da tb-agenda buscar o mesmo nome da coluna da tb-time , se alguém puder me dar um Help no código ou tiver uma outra maneira de fazer agradeço.
<?php
$sql_in= "SELECT A.id, A.timea_id, T.nome_time, T.logo_time, A.timeb_id, TI.logo_time, TI.nome_time, A.data, A.hora, A.local \n"
. "FROM `agenda` A\n"
. "INNER JOIN time T\n"
. "ON A.timea_id = T.id\n"
. "\n"
. "INNER JOIN time TI\n"
. "ON A.timeb_id = TI.id\n"
. "ORDER BY A.id ASC
" ;
$result_sql_in= mysqli_query($conn, $sql_in);
while ( $row_sql_in=mysqli_fetch_assoc($result_sql_in)){
?>
<div class="row p-3 text-dark p-3">
<div class="col-md-1 border"><?php echo $row_sql_in ['id']." Id do Confronto<br>"; ?></div>
<div class="col-md-2 border"><?php echo $row_sql_in ['nome_time']." --> Nome do time <br>"; ?></div>
<div class="col-md-2 border"><?php echo $row_sql_in ['logo_time']." --> Logo do time <br>"; ?></div>
<div class="col-md-2 border"><?php echo $row_sql_in ['nome_time']." --> Nome do time <br>"; ?></div>
<div class="col-md-2 border"><?php echo $row_sql_in ['logo_time']." --> Logo do time <br>"; ?></div>
<div class="col-md-3"><?php echo $row_sql_in ['data']." --> Data <br>";
echo $row_sql_in ['hora']." --> Hora <br> ";
echo $row_sql_in ['local']." --> Local<br>"; ?></div>
<?php
var_dump($row_sql_in);
?>
</div>
<?php
}
?>

>
Em 18/11/2020 at 11:52, Williams Duarte disse:
Não há bug!
O que há é o uso incorreto da claúsula INNER JOIN. 2x vezes o match da mesma tabela, correto é usar o segundo filtro na clausula ON
SELECT A.id, A.timea_id, T.nome_time, T.logo_time, A.timeb_id, TI.logo_time, TI.nome_time, A.data, A.hora, A.local \n"
. "FROM `agenda` A\n"
. "INNER JOIN time T\n"
. "ON A.timea_id = T.id AND A.timeb_id = TI.id\n"
. "ORDER BY A.id ASC
" ;
Equivalente a:
SELECT A.id, A.timea_id, T.nome_time, T.logo_time, A.timeb_id, TI.logo_time, TI.nome_time, A.data, A.hora, A.local \n"
. "FROM `agenda` AS A, Time AS T\n"
. "WHERE A.timea_id = T.id AND A.timeb_id = TI.id\n"
. "ORDER BY A.id ASC
" ;
valeu ajudou bastante kkk mais eu vi um outro erro esta tão concentrado no select que esqueci de conferir estava chamando os dois pelo mesmo nome no php
Não há bug!
O que há é o uso incorreto da claúsula INNER JOIN. 2x vezes o match da mesma tabela, correto é usar o segundo filtro na clausula ON