好吧,我今晚不能再对此嗤之以鼻。以为我会提出这个问题。也许这是一个我还没有遇到的简单答案。
我在PHPMyAdmin中有许多相关的表:pubtopics,pubtypes和pubtitles。
Pubtitles是主表(表1),pubtopics是为主题分配数字的简单列表(表2),pubtypes是另一个为发布类型分配数字的简单列表(表3)。
我尝试创建一个按类型列出每个发布的页面(表3中所有发布的列表),但也显示了可以分配给唯一pubtitle的多个主题(表2)(表1) ),并将每个主题(表2)链接到该主题列出的出版物。
pubtopics的数据看起来像这样:
我正在寻找的是这样一条线:
2016年6月15日|比较数据报告|教育|财政事务
如果日期是链接,则pub类型是一个链接,每个连接的问题都是唯一的链接。
当我尝试列出特定出版物类型的所有出版物时,到目前为止我可以生成的所有出版物都是具有多个重复条目的列表(因为可以解决几个主题)。我已尝试过group_concat和group by,但这并不允许我为每个主题设置单独的链接。
我玩过爆炸和阵列,但它有点超出了我的专业知识。任何出色的解决方案?
代码如下:
elseif (isset($_GET['type'])) {
$var3_getDisplay4 = $_GET['type'];
$query_getDisplay = sprintf("SELECT
DATE_FORMAT(publicationsnew.date, '%%Y') AS archive,
DATE_FORMAT(publicationsnew.date, '%%M %%e, %%Y') AS pubdate,
pub_type.number AS typelink,
pub_type.type AS pubtype,
GROUP_CONCAT(categories.category_name ORDER BY categories.category_name SEPARATOR ' | ') AS category,
categories.category_id AS catlink,
publicationsnew.title,
publicationsnew.author,
publicationsnew.imagelink,
publicationsnew.description
FROM
pub_cat
LEFT JOIN publicationsnew ON (pub_cat.pub_id = publicationsnew.pub_id)
LEFT JOIN categories ON (pub_cat.category_id = categories.category_id)
LEFT JOIN pub_type ON (publicationsnew.type = pub_type.number)
WHERE pub_type.number = %s
GROUP BY publicationsnew.pub_id
ORDER BY publicationsnew.date DESC",
GetSQLValueString($var3_getDisplay4, "text"));
并在身体中:
<?php do { ?>
<h2><a href="test.php?archive=<?php echo $row_getDisplay['archive']; ?>"><?php echo $row_getDisplay['pubdate']; ?></a> | <a href="test.php?type=<?php echo $row_getDisplay['typelink']; ?>"><?php echo $row_getDisplay['pubtype']; ?></a> |
<a href="test.php?topic=<?php echo $row_getDisplay['catlink']; ?>">
<?php echo $row_getDisplay['category']; ?>
</a>
</h2>
<p class="pubtitle"><?php echo $row_getDisplay['title']; ?></p>
<?php echo ($row_getDisplay['author']); ?>
<?php echo ($row_getDisplay['imagelink']); ?>
<div class="pubdescription"><?php echo ($row_getDisplay['description']); ?></div>
<div class="clear"></div>
<hr>
<?php } while ($row_getDisplay = mysql_fetch_assoc($getDisplay)); ?>
当天烧光了。继续......