如何在不重复父表的ID名称的情况下获得正确ID的名称?

JS

$(function() {
  $('.titulo').click(function() {
    var conteudo = $(this).parent().find('.conteudo');

    if (!conteudo.hasClass('show')) {
      $('.caixa').find('.show').slideUp('fast', function() {
        $(this).addClass('hide').removeClass('show');
      });

      conteudo.slideDown('fast', function() {
        $(this).addClass('show').removeClass('hide');
      });
    }
  });
});


在PHP中,我使用两个表,一个表保存我的手风琴的标题,表名是temporadas,该表包含以下字段。

桌上蛋彩

`id` int(11) NOT NULL //auto increment
`id_serie` int(11) NOT NULL //identifies which ID to display my accordion
`id_temporada` int(11) NOT NULL //identifies the ID of my accordion
`nome_temporada` varchar(90) NOT NULL //name displayed on the accordion


表EPISODIOS

另一个存放我手风琴内容的表称为episodios,该表显示其内容,因为id_temporada表的temporadas等于表id_temporadaepisodios,在这里我的桌子。

`id` int(11) NOT NULL //auto increment
`id_serie` int(11) NOT NULL //identifies which ID to display my accordion
`id_temporada` int(11) NOT NULL //identifies the ID of my accordion
`nome_episodio` varchar(100) NOT NULL //contents of my accordion


的PHP

$url = explode("/",$_GET['url'],-1);
$url = $url[1];

if(isset($_GET['id_serie'])){
    $id_serie = $_GET['id_serie'];
}

$temporadas = "SELECT * FROM `temporadas` AS T INNER JOIN `episodios` AS E ON T.`id_temporada` = E.`id_temporada` WHERE T.`id_serie` = '$url'";
$temporadasShow = mysqli_query($conn, $temporadas);

while($show = mysqli_fetch_assoc($temporadasShow)){
    echo '
        <div class="caixa">
            <a href="javascript:void(0)" class="titulo"><i class="fa fa-check"></i> '.$show['nome_temporada'].'</a>
            <div class="conteudo hide">
                  '.$show['nome_episodio'].'
            </div>
        </div>
    ';
}


的CSS

.hide{display: none;}


我的困难是我不能使我的nome_temporada表的temporadas字段仅显示一次,当它具有多个对应的ID时,它在循环中添加了另一个名称,我该如何使它不显示发生?

javascript - 组装 Accordion 的结构和环-LMLPHP

最佳答案

SELECT T.id,T.id_serie,T.id_temporada,T.nome_temporada,
  GROUP_CONCAT(E.nome_episodio)作为nome_episodio
  从temporadas AS T
  内联接episodios AS E
  开启T. id_temporada = E. id_temporada
  T. id_serie = 2 GROUP BY T.id_temporada

您可以使用其他聚合函数(例如JSON_ARRAYAGG,JSON_OBJECTAGG等)代替GROUP_CONCAT。

关于javascript - 组装 Accordion 的结构和环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51413907/

10-09 19:01