2015-04-14 2 views
2

У меня есть два отдельных оператора sql, и я пытаюсь объединить две петли foreach для их отображения.попытка объединить две петли foreach PHP PDO

Причина, заключавшаяся в наличии двух циклов sql, заключалась в том, что между полем «record_id» между таблицей «record» и таблицей «Offer_tag» была помеха, так как оба из них используют «предложение_id» для LEFT JOIN. Так что, хотя я делаю два отдельных заявления, а затем использовать foreach для их прокрутки, это поможет.

У меня есть таблица, которая заполняется этой строкой 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> 

действительно путают о том, как я могу показать теги.

страница выглядит следующим образом:

the table

Покушение с тегами добавил:

with tag attempt

любая помощь была бы оценена, ребята!

ответ

0

если $proposal и $tags имеют одинаковый индекс, вы можете попробовать:

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

      ... 
       echo "</td><td>"; 
       echo $tags[$index]['tags']; 
       echo "</td><td>"; 
      ... 
    } 
?> 
Смежные вопросы