【问题标题】:Generate an accordion from PHP and MySQL从 PHP 和 MySQL 生成手风琴
【发布时间】:2017-05-01 12:34:12
【问题描述】:

好的,伙计们,这将是一个很长的问题,所以请耐心等待。

我想创建一个包含内容的手风琴:

How I want the image to look like

How it looks right now

我有一个网络应用程序,我每周都会上传各种类型(博客、主页)的图像。第一周是第 1 轮,图像可以标记为 1.x.x,其中 1 是对应于周的数字。同样适用于 2.x.x、3.x.x 等。

我使用 php 将这些图像插入服务器并将条目记录到数据库中,其中包含项目名称、文件名称、url、版本等信息。

我想要做的是,自动生成多个手风琴标签,一个在另一个之下。第一个选项卡应该是对应于最近一周上传的轮次。低于前一周,同样明智地进入第 1 轮(见附图)。

现在我可以在一轮中从所有轮次中提取数据并显示文件。我想要做的是根据版本号自动分开轮次。=>> 第 1 轮中的 1.x.x 文件,第 2 轮中的 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>";

【问题讨论】:

    标签: php html mysql arrays accordion


    【解决方案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
    

    请注意,您可以随意格式化数据,但您必须在遍历 mysql 结果时吐出 html。希望这可以帮助。

    【讨论】:

      猜你喜欢
      • 2017-06-02
      • 2022-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多