У меня есть два отдельных оператора 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>
действительно путают о том, как я могу показать теги.
страница выглядит следующим образом:
Покушение с тегами добавил:
любая помощь была бы оценена, ребята!