2010-07-28 3 views
1

j'ai un script de pagination, qui peut être vu ici: http://www.automotori6282.tk/phpsandbox/scripts Pagination - obtenir des données de deux tables

Voici le code source:

http://pastebin.com/raw.php?i=63dCvfxD (PmcPagination.php)

http://pastebin.com/raw.php?i=3k4nqwRB (demo.php, la page avec le code dans)

et index.php pour http://www.automotori6282.tk/phpsandbox/ utilise simplement PHP include() pour afficher demo.php

Ce que j'essaie de faire est d'extraire de deux tables pour la pagination.

Ceci est ma structure actuelle de la base de données:


programme varchar(255)  
channel  varchar(255)  
episode  varchar(255) 
series varchar(255)    
setreminder  varchar(255)  

Cependant, je les épisodes stockés dans une table séparée, et je voudrais faire une requête qui extrait à la fois table epdata167 et épisodes (la table des épisodes a seulement l'épisode, seriesno, episodeno et la description comme ses champs).

Une erreur que j'ai fait dans mon script montre ici pagination:

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 

et il reste encore longtemps après l'événement est arrivé.

Voici comment cela devrait fonctionner:

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 

Remarquez comment le champ Set de rappel ne montre pas quand l'événement se produit, et il n'y a pas de guillemets si un épisode est pas sélectionné. (Le champ setreminder est essentiellement un lien sur lequel l'utilisateur clique pour lui envoyer un rappel en disant "émission de télévision diffusée sur Channel 1 3 août - 20:30 épisode 1" ou "émission de télévision diffusée aujourd'hui à l'adresse suivante: http://www.youtube.com/watch 20h30 Épisode 1 ".Cependant, il ne serait pas afficher pour le spectacle qui est diffusée en ce moment, il s'afficherait comme ceci:

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

)

C'est le code de pagination causer des problèmes:

$ result = mysql_query ("SELECT programme, canal, airdate, expiration, épisode, série, setreminder FROM epdata167 où airdate> curdate() GROUP par airdate");

et voici la partie du code modifié pour que je en page essayer d'utiliser une déclaration ifelse mais ne savais pas quoi faire:

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"; 
} 

}

En fait, je vais avoir du mal en essayant d'obtenir des données que dans mon projet:

 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 

(qui est si l'épisode fait partie d'une série avec un numéro de série)

Vous ne savez pas ce que JOIN utiliser et où, toute aide est appréciée pour essayer de faire fonctionner cela depuis que j'ai la pagination de travail; J'essaie juste d'obtenir les détails les plus fins!

Je ne demande pas aux gens de le faire pour moi, j'ai appris moi-même et j'ai fait mes recherches.

Désolé si cela semble un peu long, mais j'espère avoir tout expliqué.

Merci.

+0

mec, c'est un code entier. essayez de diviser votre problème en une ou plusieurs questions de durée raisonnable. diviser pour régner est votre ami! – sfussenegger

+0

Je ne voulais pas spammer le site avec beaucoup de questions, j'ai déjà le problème de base de la pagination. – whitstone86

Répondre

0

Vous devez utiliser UNION pour que cela fonctionne.

+0

Est-ce le type de requête que je devrais utiliser avec mon script de pagination?: http://www.plus2net.com/sql_tutorial/sql_union.php En outre, comme pour le rappel qui l'envoie par e-mail, comment pourrais-je obtenir que de travailler (et de ne pas afficher lorsque l'événement se produit). – whitstone86

Questions connexes