【发布时间】:2010-07-28 20:36:21
【问题描述】:
我有一个分页脚本,可以在这里看到: http://www.automotori6282.tk/phpsandbox/
这是源代码:
http://pastebin.com/raw.php?i=63dCvfxD(PmcPagination.php)
http://pastebin.com/raw.php?i=3k4nqwRB(demo.php,代码在的页面)
http://www.automotori6282.tk/phpsandbox/ 的 index.php 只是使用 PHP 的 include() 函数来显示 demo.php
我要做的是从两个表中提取分页。
这是我当前的数据库结构:
programme varchar(255)
channel varchar(255)
episode varchar(255)
series varchar(255)
setreminder varchar(255)
但是,我将剧集存储在单独的表中,并且想进行查询,从 epdata167 和剧集表中提取(剧集表只有剧集、系列号、剧集号和描述作为其字段)。
我在分页脚本中犯的一个错误显示在这里:
TV Show showing on Channel 1 August 3rd - 12:30pm "" Set Reminder
TV Show showing on Channel 1 August 3rd - 8:30pm "Episode 1" Set Reminder
事件发生后它仍然存在很长时间。
它应该是这样工作的:
TV Show showing on Channel 1 August 3rd - 12:30pm
TV Show showing on Channel 1 August 3rd - 2:45pm Set Reminder
TV Show showing on Channel 1 August 3rd - 8:30pm "Episode 1" Set Reminder
注意设置提醒字段在事件发生时不显示,如果未选择剧集,则没有引号。
(setreminder 字段基本上是一个链接,用户单击该链接以向他们发送提醒,说“电视节目正在第 1 频道播出,8 月 3 日 - 晚上 8:30 第 1 集”或“电视节目今天 8 点播出:30pm 第 1 集”。但是,现在正在播放的节目不会显示,它会显示如下:
TV Show showing on Channel 1 August 3rd - 12:30pm
)
这是导致麻烦的分页代码:
$result = mysql_query("SELECT program, channel, airdate, expiration, episode, series, setreminder FROM epdata167 where airdate > curdate() GROUP by airdate");
这是我编辑的分页代码的一部分,试图使用 ifelse 语句,但不知道该怎么做:
class paginationData {
private $program;
private $channel;
private $airdate;
private $exiration;
private $episode;
private $series;
private $setReminder;
public function __construct($program, $channel, $airdate, $expiration, $episode, $setReminder)
{
$this->program = $program;
$this->channel = $channel;
$this->airdate = strtotime($airdate);
$this->expiration = $expiration;
$this->episode = $episode;
$this->setReminder = $setReminder;
}
//This function shows the data
public function display()
{
if(date('Y-m-d') == date('Y-m-d', $this->airdate)) $dateFormat = 'g:ia';
elseif(date('Y') == date('Y', $this->airdate)) $dateFormat = 'F jS - g:ia';
else $dateFormat = 'F jS, Y - g:ia';
echo '<tr>'."\n".
' <td><strong>'.$this->program.'</strong></td>'."\n".
' <td>showing on '.$this->channel.'</td>'."\n".
' <td>'.date($dateFormat, $this->airdate).'</td>'."\n".
' <td><b>"'.$this->episode.'"</b><br></td>'. "\n".
' <td>'.$this->setReminder.'</td>'."\n".
'</tr>'."\n";
}
}
基本上,我在我的项目中尝试获取这样的数据时遇到了麻烦:
TV Show showing on Channel 1 August 3rd - 12:30pm
TV Show showing on Channel 1 August 3rd - 2:45pm Set Reminder
TV Show showing on Channel 1 August 3rd - 8:30pm "Episode 1"
Series 1, episode 1 Set Reminder
(如果这一集是带有系列编号的系列的一部分)
不确定要使用什么 JOIN 以及在哪里使用,感谢所有帮助,因为我已经让分页工作了;只是试图让更精细的细节发挥作用!
我不是要求人们为我做这件事,我一直在学习自己,并且已经完成了我的研究。
对不起,如果这看起来有点长,但我希望我已经解释了一切。
谢谢。
【问题讨论】:
-
老兄,这是一个完整的代码。尝试将您的问题分解为一个或多个合理长度的问题。分而治之是你的朋友!
-
我不想用大量问题向网站发送垃圾邮件,我已经解决了分页的基本问题。
标签: php mysql apache pagination