如何在不重复父表的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_temporada
的episodios
,在这里我的桌子。`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时,它在循环中添加了另一个名称,我该如何使它不显示发生?最佳答案
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/