TP SQL intégré dans PHP
basé sur les programmes télé.
Réponse AJAX
Récupérez les éléments nécessaires
On possède une page PHP "creuse" (c'est à dire vidée de toute ses requêtes SQL). Vous allez devoir recréer les requêtes afin de consulter les programmes télé.
Récupérez la base de données et l'importer sous MySQL
Inutile de récupérer la base : elle est installée sur serveurig.
Récupérez la page PHP et la copier à la racine du serveur Web local
Téléchargez le fichier tp_epg.xxx et copiez-le à la racine internet Z:\www
.xxx n'est pas la bonne extension (il a été renommé ainsi afin d'être téléchargeable). Renommez-le en tp_epg.php.
Le fichier php contient la fonction mysql_connect
, déjà paramétrée pour se connecter à la base de données EPG sur le serveur.
Présentation des tables
- La table epg_programme contient les informations sur les programmes :
- pro_id : identifiant du programme en numéro automatique ;
- pro_channel_id : identifiant de la chaîne sur laquelle passe le programme ;
- pro_titre, pro_sous_titre : titre (et éventuellement sous-titre) du programme ;
- pro_start, pro_stop : date et heure de début et de fin du programme ;
- pro_categorie : Film, Documentaire, Série, etc.
- pro_souscategorie : animation, aventure, fantastique, etc.
- pro_desc : description / résumé / synopsis du programme.
- La table epg_channel contient les informations sur les chaînes de télévision :
- cha_id : identifiant de la chaîne ;
- cha_name : nom de la chaîne, par exemple france4 ;
Ecrire les requêtes
ligne 16 : renvoie la liste des catégories
- Fonctionnement de la requête à écrire :
- Pas de données en entrée (cette requête n'est pas paramétrée)
- Renvoie un seul champ : la liste des catégories (pro_categorie de la table epg_programme) triées par nom.
- Lorsque cette requête est terminée, la zone de liste de la rubrique "Voir tous les programmes d'une catégorie" devrait fonctionner.
ligne 30 : renvoie la liste des chaînes
- Fonctionnement de la requête à écrire :
- Pas de données en entrée (cette requête n'est pas paramétrée)
- Renvoie deux champs :
- la clé primaire de la chaine (champ cha_id de la table epg_channel)
- le nom de la chaîne (cha_name), avec un tri croissant sur ce nom.
- Lorsque cette requête est terminée, la zone le liste de la rubrique "Voir les programmes d'une chaîne un jour donné" devrait fonctionner.
ligne 42 : renvoie les jours concernés par ce programme télé
- Fonctionnement de la requête à écrire :
- Pas de données en entrée (cette requête n'est pas paramétrée)
- Renvoie deux champs :
- la date du programme le plus ancien (champ pro_start de la table epg_programme),
- la date du programme le plus récent.
- Lorsque cette requête est terminée, le titre de la page "Voici les programmes télé ..." devrait fonctionner.
ligne 61 : les programmes d'une chaîne un jour donné
- Fonctionnement de la requête à écrire :
- Les données en entrée sont :
- l'identifiant de la chaîne :
$_GET["form_chaine"]
(attention, c'est une chaîne de caractères, vous devez en tenir compte dans l'écriture de la requête).
- Le jour au format AAAAMMJJ : $_GET["form_jour"]. Vous devez utiliser LIKE pour comparer les dates, pour vérifier si la valeur saisie (par exemple 20230608) ressemble au pro_start (par exemple 20230608 203000).
- Renvoie quatre champs :
titre (pro_titre), heure de début (pro_start) avec un tri croissant, catégorie et sous_catégorie (pro_souscategorie). Vous pouvez modifier cela (ajouter d'autres champs par exemple), ça ne perturbera pas l'exécution.
- La requête renvoie les programmes qui correspondent à la chaîne (pro_channel_id) et au jour (pro_start, à adapter) choisis.
- Lorsque cette requête est terminée, la rubrique "Voir les programmes d'une chaîne un jour donné" devrait fonctionner.
ligne 75 : tous les programmes pour une catégorie choisie
- Fonctionnement de la requête à écrire :
- La donnée en entrée est :
- la catégorie :
$_GET["form_categorie"]
(attention, c'est une chaîne de caractères, vous devez en tenir compte dans l'écriture de la requête).
- Renvoie quatre champs :
nom de la chaîne, titre, jour et heure de début (pro_start) avec un tri croissant, sous_catégorie. Vous pouvez modifier cela (ajouter d'autres champs par exemple), ça ne perturbera pas l'exécution.
- La requête renvoie les programmes qui correspondent à la catégorie (pro_categorie) choisie.
- Lorsque cette requête est terminée, la rubrique "Voir tous les programmes d'une catégorie" devrait fonctionner.
ligne 89 : recherche par mot-clé
- Fonctionnement de la requête à écrire :
- La donnée en entrée est :
- le mot-clé recherché :
$_GET["form_motcle"]
(attention, c'est une chaîne de caractères, vous devez en tenir compte dans l'écriture de la requête).
- Renvoie six champs : nom de la chaîne, titre, sous-titre, description,
heure de début (pro_start)
avec un tri croissant, sous-catégorie. Vous pouvez modifier
cela (ajouter d'autres champs par exemple), ça ne perturbera pas
l'exécution.
- La requête renvoie les programmes qui contiennent le mot-clé dans un des champs suivants : titre, sous-titre ou description. Vous devez vérifier l'existence du mot-clé grâce à l'opérateur LIKE.
- Lorsque cette requête est terminée, la rubrique "Rechercher dans les programmes" devrait fonctionner.
ligne 98 : renvoie le nombre de films par chaîne (GROUP BY)
- Fonctionnement de la requête à écrire :
- Pas de donnée en entrée (cette requête n'est pas
paramétrée)
- Renvoie deux champs :
- le nom de la chaîne (cha_name),
- le nombre de films (pro_categorie = 'Film') de cette chaîne, avec un tri décroissant sur ce champ
- Attention : des films sont rediffusés. Vous devez utiliser la clause Distinct pour ne compter qu'une fois chaque film. Si vous trouvez plus de 20 films pour Canal+, vous vous êtes trompés.
- Lorsque cette requête est terminée, la rubrique "Voici les chaînes qui passent le plus de films" devrait afficher quelque chose.
ligne 105 : renvoie les chaînes qui ne passent jamais de film
- Fonctionnement de la requête à écrire :
- Pas de donnée en entrée (cette requête n'est pas
paramétrée)
- Renvoie un seul champ : le nom de la chaîne (cha_name).
- Lorsque cette requête est terminée, la rubrique "Voici les chaînes qui ne passent aucun film" devrait afficher quelque chose.