[英]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.