分页脚本 - 从两个表中获取数据

时间:2010-07-28 11:58:20

标签: php mysql apache pagination

我有一个分页脚本,可以在这里看到: 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和剧集表中提取的查询(剧集表只有episode,seriesno,episodeno和description作为其字段)。

我在分页脚本中犯了一个错误:

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

注意事件发生时Set Reminder字段如何显示,如果没有选择剧集,则没有引号。

(setreminder字段基本上是一个链接,用户可以点击它向他们发送提醒,说“电视节目正播出8月3日频道播出 - 第1集播出时间晚上8:30”或“电视节目今天播出时间为8 :晚上30点第1集“。但是,现在播放的节目不会显示,它会显示如下:

    TV Show showing on Channel 1 August 3rd - 12:30pm 

这是引起麻烦的分页代码:

$ result = mysql_query(“SELECT program,channel,airdate,expiration,episode,series,setreminder FROM epdata167 air date> 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以及在哪里,所有的帮助都是值得赞赏的,因为我已经让分页工作了;只是想让更精细的细节发挥作用!

我不是要求人们为我做这件事,我一直在学习自己,并完成了我的研究。

对不起,如果这看起来有点长,但我希望我已经解释了这一切。

感谢。

1 个答案:

答案 0 :(得分:0)

您需要使用UNION才能使其正常工作。