组装手风琴的结构和环

时间:2018-07-19 03:29:05

标签: javascript php

如何在不重复父表的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,该表包含以下字段。

表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等于{{1} } id_temporada中的},这是我的桌子。

episodios

PHP

`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

CSS

$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>
    ';
}

我的困难是我无法使.hide{display: none;} 表的nome_temporada字段仅显示一次,当它具有多个对应的ID时,它将在循环中添加另一个名称,如何我做到了,所以它不会发生?

element appears more, than one

1 个答案:

答案 0 :(得分:1)

SELECT T.id,T.id_serie,T.id_temporada,T.nome_temporada,   GROUP_CONCAT(E.nome_episodio)作为nome_episodio   从temporadas开始   内联episodios如E   T。id_temporada = E。id_temporada   T。id_serie = 2 BY BY T.id_temporada

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