簡體   English   中英

嘗試結合兩個foreach循環PHP PDO

[英]attempting to combine two foreach loops PHP PDO

我有兩個單獨的sql語句,並且我嘗試合並兩個foreach循環以顯示它們。

有兩個sql循環的原因是因為'record'表和'proposal_tag'表之間的'proposal_id'字段之間存在干擾,因為這兩個都使用'proposal_id'來進行LEFT JOIN啟用。 因此,盡管我做兩個單獨的語句,然后使用foreach遍歷它們會有所幫助。

我有一個表,該表由此行foreach ($proposals as $proposal)填充foreach ($proposals as $proposal)並且想要對標記字段執行類似的操作。

我嘗試使用foreach ($tags as $tag => $proposalInfo)但這種方法不起作用,並且一次又一次地重復表信息,因為每個提案有三個標簽。

這是我目前的代碼:

<body>

  <?php

  try {

    $db_conx = new PDO("mysql:host=$mysql_hostname;dbname=$mysql_dbname", $mysql_username, $mysql_password);

    $db_conx->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $db_conx->prepare('SELECT p.proposal_id, p.proposal_title, p.description, u.user_record_id, u.forename, u.surname, c.course_title FROM proposal p 
      LEFT JOIN user u on u.user_record_id = p.user_record_id
      LEFT JOIN course_details c on c.course_code = p.course_code
      LEFT JOIN record r on r.proposal_id = p.proposal_id
      WHERE p.source = "Supervisor"
      AND (r.status_code not in (3,8) OR r.status_code IS NULL)
      GROUP BY p.proposal_id');
    $stmt->execute();

    $proposals = $stmt->fetchAll(PDO::FETCH_ASSOC);

    $proposalTags = $db_conx->prepare('SELECT p.proposal_id, p.proposal_title, p.description, GROUP_CONCAT(DISTINCT t.tag_title) AS tags FROM proposal p 
      LEFT JOIN proposal_tags pt on pt.proposal_id = p.proposal_id
      LEFT JOIN tag_details t on t.tag_code = pt.tag_code
      GROUP BY p.proposal_id');
    $proposalTags->execute();

    $tags = $proposalTags->fetchAll(PDO::FETCH_ASSOC);


  }
  catch(Exception $e)
  {
    die ("Could not connect to the database $mysql_dbname :" . $e->getMessage());
  }
  ?>
  <h4><center>View All Proposals</center></h4>

  <div class = "container container-fluid"id = "table_container" style="width:auto; margin-top:40px;" class="mainbox col-md-6">
    <div class="row clearfix">
      <div class="col-md-12">


        <table class="table table-bordered table-hover" id="tab_logic">
          <thead>
            <tr >
              <th class="text-center">
                Proposal ID
              </th>
              <th class="text-center">
                Proposal Title
              </th>
              <th class="text-center">
                Proposal Description
              </th>
              <th class="text-center">
                Course
              </th>
              <th class="text-center">
                Tags
              </th>
               <th class="text-center">
                Supervisor
              </th>
            </tr>
          </thead>
          <tbody>
            <!-- populating the table with information from mysql database -->
            <?php foreach ($proposals as $proposal) {

              echo "<tr><td>";
              echo $proposal['proposal_id'];
              echo "</td><td>";
              echo substr($proposal['proposal_title'],0,30) ."...";
              echo "</td><td>";
              echo substr($proposal['description'],0,50) ."...";
              echo "</td><td>";
              echo $proposal['course_title'];
              echo "</td><td>";
              echo $tags['tags'];
              echo "</td><td>";
              echo $proposal['forename'] . ' ' . $lect['surname'];
              echo "</td><td>";
              echo '<p data-placement="top"
              data-toggle="tooltip"
              style="margin-left:5px" 
              title="Full View">';
              echo '<button class="btn btn-info btn-xs" 
              data-title="View" 
              data-toggle="modal" 
              data-id="'; 
              echo $proposal['proposal_id']; 
              echo '" data-proposal="'; 
              echo $proposal['proposal_title'];
              echo '" data-desc="'; 
              echo $proposal['description'];
              echo '" data-course="'; 
              echo $proposal['course_title'];
              echo '" data-tag="'; 
              echo $proposal['tags'];
              echo '" data-target="#viewModal">';
              echo '<span class="glyphicon glyphicon-eye-open" />';
              echo '</button></p>';
              echo "</tr>"; }
              ?>
            </tbody>
          </table>
        </div>
      </div>
    </div>

我對如何顯示標簽感到非常困惑。

該頁面如下所示:

桌子

嘗試添加標簽:

帶有標簽嘗試

任何幫助將不勝感激的家伙!

如果$proposal$tags具有相同的索引,則可以嘗試:

<?php 
   foreach ($proposals as $index => $proposal) {

             ...
              echo "</td><td>";
              echo $tags[$index]['tags'];
              echo "</td><td>";
             ... 
   }
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM