Affichage d'une liste sous conditions

Eléphanteau du PHP | 10 Messages

17 juin 2023, 20:29

Bonsoir,

Je cherche à afficher la distribution d'un série télévisée en fonction de critères particulier

L'affichage standard se fait comme ceci:

ACTEUR : ROLE
ACTEUR remplacé par ACTEUR remplacé par ... : ROLE


Dans certaines séries, la distribution est affichée par période :

ACTEUR : ROLE (acteur principal qui est apparu dans toutes les périodes)
PERIODE
ACTEUR : ROLE
ACTEUR remplacé par ACTEUR remplacé par ... : ROLE


Voila mon code:
<?php
	$cast = []; // Tableau associatif de tableaux [personnage => [acteurs]]
	while ($row = $castResult->fetch_assoc()) {
		$cast[$row['charName']][] = $row['personName'];
	}
	foreach ($cast as $char => $persons) {
    		echo '<p class="castAndCrew">', implode(' remplacé par ', $persons), " : {$char}</p>";
	}
?>	
Et ma requête:
$castQuery = $conn->prepare('SELECT seriesTitle, characterName AS charName, personName, appearanceOrder AS appOrder, period
FROM CASTING AS C
JOIN SERIES AS S ON S.seriesId = C.seriesId
JOIN PERSON AS P ON P.personId = C.personId
JOIN CHAR_PLAYED AS CP ON CP.characterId = C.characterId 
WHERE S.seriesId = '.$_GET['series'].'
ORDER BY appearanceOrder');
$castQuery->execute();
$castResult = $castQuery->get_result();
J'espère trouver une âme charitable qui puisse m'aider.

Avatar du membre
Mammouth du PHP | 1564 Messages

17 juin 2023, 23:40

Je cherche à afficher la distribution d'un série télévisée en fonction de critères particulier
Peux tu être plus explicite sur ce que tu souhaite faire s'il te plaît ?

Quels sont tes "critères particulier" ?

Eléphanteau du PHP | 10 Messages

18 juin 2023, 08:42

Les critères sont les périodes, s'il y en a, et dans ce cas, l'acteur principale, qui aura été présent toute la série,
figurera en premier, ainsi que le fait que, dans certaines séries, certains acteurs peuvent en avoir remplacé
d'autres dans un même rôle, comme je décrit ci-dessus.

Avatar du membre
Mammouth du PHP | 1564 Messages

18 juin 2023, 08:58

Pour les "périodes" tu peux faire une recherche (si je comprends bien le mot "périodes") avec BETWEEN.

Mammouth du PHP | 2703 Messages

18 juin 2023, 15:52

il y un champ period dans la requete sql.

quel est le contenu des tables quand il y a une période ?

Eléphanteau du PHP | 10 Messages

20 juin 2023, 08:31

Bonjour,
Le champ period sont des varchar qui contiennent les périodes sous la forme "1969" ou "1971-1975" par exemple

Avatar du membre
Mammouth du PHP | 1564 Messages

20 juin 2023, 08:54

Code : Tout sélectionner

WHERE SUBSTR(period, 1, 4) = '1969' OR (SUBSTR(period, 1, 4) >= '1971' AND SUBSTR(period, 6) <= '1975')
https://sql.sh/fonctions/substring