我的代码适用于两个选择,但我试图只使用一个

时间:2014-06-24 23:33:30

标签: php

我有一张桌子“shedules”,我总是保留两张唱片(我的节目以pdf格式保存)。

一个记录与第一年相关,所以我的记录如下:

(id,pdf,year) (1,.. / uploads / shedules / 1st_year.pdf,1st_year)

我的记录如下:

(id,pdf,year) (2,.. / uploads / shedules / 2nd_year.pdf,2nd_year)

我的毕业生每周都会更新,但可以在没有特定订单的情况下更新,可以先更新第一年或第二年的时间表。

在我的表格中,我更新了我的日程安排,我还有两个链接显示 每年的现行时间表。

我希望在我的链接上显示“查看第一年的日程安排”我的第一年的日程安排pdf,我想在我的链接上显示“查看日程安排第二年”我的日程表第二年的pdf。

你知道如果不做两次选择我怎么能这样做?我已经选择了两个,但现在我只想使用一个。

我正在尝试使用“按年份排序asc”,但不能正常工作,因为更新shedules的用户可以先插入我的第一年或第二年...

<?php
    $readShedules = $pdo->prepare("SELECT pdf from schedules ORDER BY year ASC");
    $readShedules->execute();
    $result = $readShedules->fetch(PDO::FETCH_ASSOC);     
    echo '<div>';
     echo '<a style="margin-right:10px;" href="../uploads/pdfs/'.$result['pdf'].'">See schedules 1st year</a>';
     echo '<a href="../uploads/pdfs/'.$result['pdf'].'">See schedule 2nd year</a>';
    echo '</div><!--viewcapa-->';  
?> 

2 个答案:

答案 0 :(得分:2)

听起来你正在寻找从数据库中检索多行。如果是这种情况,我会指向PDO fetchAll method,它会检索该查询的所有匹配项,而不是fetch,而只检索第一个匹配项。

这些方面的东西:

$results = $readShedules->fetchAll(PDO::FETCH_ASSOC);
echo '<div>';
foreach( $results as $result ) {
    echo '<a style="margin-right:10px;" href="../uploads/pdfs/'.$result['pdf'].'">See schedules '.$result['year'].'</a>';
}
echo '</div><!--viewcapa-->';  

答案 1 :(得分:1)

您可以尝试使用此查询

SELECT DISTINCT year, pdf FROM [TableName] ORDER BY ID DESC

这将只返回2行。 PDF值将是最新更新。 这是因为每次更新都会在表格中生成新行。