HTML — Создать аккордеон из PHP и MySQL

Хорошо, ребята, это будет один длинный вопрос, поэтому, пожалуйста, потерпите меня.

Я хочу создать аккордеон с содержанием в нем:

Как я хочу, чтобы изображение выглядело как

Как это выглядит сейчас

У меня есть веб-приложение, где я загружаю различные типы (блог, домашняя страница) изображений каждую неделю. Первая неделя — это первый раунд, и изображение может быть помечено примерно как 1.x.x, где 1 — это число, соответствующее неделе. Аналогично для 2.x.x, 3.x.x и т. Д.

Я вставляю эти изображения на сервер, используя php, и записываю запись в базу данных с такой информацией, как имя_проекта, имя_файла, URL, версия и т. Д.

Я хочу автоматически создавать несколько аккордеонных вкладок, расположенных один под другим. Первая вкладка должна быть раундом, соответствующим последней неделе загрузки. Ниже на предыдущей неделе и так же мудро, пока не достигнет 1-го раунда (см. Изображения в приложении).

Теперь я могу извлекать данные и отображать файлы из ВСЕХ раундов за один раунд. То, что я хочу сделать, это отдельные раунды, автоматически на основе номера версии. = >> 1.x.x файлы в первом раунде, 2.x.x во втором раунде и т. Д.

Ниже приведен код, который я написал. Закомментированная часть — то, за чем я следовал и и делаю. Я новичок в PHP и буду признателен, если кто-нибудь сможет мне помочь с этим. Спасибо!

$project_name_download_form = $_GET['project_name'];
$file_name_download_form    = $_GET['file_name'];
$version_download_form      = $_GET['version'];
$download_data              = "SELECT *
FROM projects, files
WHERE project_id = projects.id
AND project_name = '$project_name_download_form'
AND file_name = '$file_name_download_form'
AND version = '$version_download_form'";
mysqli_select_db($conn, $GLOBALS['database']);
$return_data = mysqli_query($conn, $download_data);
if (!$return_data) {
die('Could not get what you wanted: ' . mysqli_error($conn));
}
while ($row = mysqli_fetch_array($return_data)) {
$url            = $row['url'];
$project_folder = $row['project_folder'];
//$id = 18;
$file_name      = $row['file_name'];
$version        = $row['version'];
$details        = $row['details'];
$file           = $row['file'];
$new            = basename($row['file']); // GET FILE NAME ONLY, GET RID OF PATH.

// $design->url = $row[file_name]
// $design->version = $row[version]

// $designs.push ($design)
}mysqli_free_result($return_data);// $lastRound = 0;

// for each $design in $designs
// {
//  $round = $design.version.split('.')[0];

//  if $round <> $lastRound {

?>
<div class="col-sm-2" id = "accordianSet">
<div class="panel-group" id="accordion">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapseOne"><span>
</span>Explore</a>
</h4>
</div>
<div id="collapseOne" class="panel-collapse collapse">
<div class="panel-body">
<?php
}
?>

<?php

// <HTML FOR LINK >

}echo "<table class = 'table'>";
echo "<tr>";
echo " <th>File Name</th>
<th>File Link</th>";
echo "</tr>";

-1

Решение

Что вы хотите сделать, это получить результаты для каждой недели и выполнить цикл, но каждый раз, когда вы делаете цикл, вы хотите напечатать переменные в html следующим образом:

<?php
$i=0
while ($row = mysqli_fetch_array($return_data)) {
$url            = $row['url'];
$project_folder = $row['project_folder'];
//$id = 18;
$file_name      = $row['file_name'];
$version        = $row['version'];
$details        = $row['details'];
$file           = $row['file'];
$new            = basename($row['file']);
$i++

//1st Round
echo' <table>
<caption> Round $i</caption>
<tr>
<th>File Name</th>
<td>$file_name</td>
</tr>
<tr>....
</tr>
</table>';
}//while loop close tag

Обратите внимание, что вы можете отформатировать данные так, как вам угодно, но вы должны выплевывать html, пока просматриваете результаты mysql. Надеюсь это поможет.

0

Другие решения

Других решений пока нет …