2016-12-15 6 views
-1

これは長い間の質問です。PHPとMySQLからアコーディオンを生成する

私はそれで内容のアコーディオンを作成したい:

How I want the image to look like

How it looks right now

私は毎週各種の画像(ブログ、ホームページ)をアップロードするWebアプリケーションを、持っています。最初の週はラウンド1で、イメージは1.x.xのようなラベルを付けることができます。ここで、1はその週に対応する数字です。同様にバージョン2.xx、3.xxのなど

ため、私はPHPを使用してサーバにこれらの画像を挿入し、データベースへのエントリをログなどPROJECT_NAME、file_nameに、URL、バージョンなどの情報

と私自動的に複数のアコーディオンタブを生成します。最初のタブは、アップロードの最新の週に対応するラウンドにする必要があります。その週の前には、1周目になるまで賢明に思ってください(付属の画像を参照)。

ここでは、すべてのラウンドのデータを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>"; 

答えて

0

何がやりたいことを通じて毎週の結果を引っ張るとループですが、あなたのような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を吐き出さなければならない。お役に立てれば。

関連する問題