IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Affichage de la distribution d'une série selon conditions


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 226
    Par défaut Affichage de la distribution d'une série selon conditions
    Bonjour,

    Je travaille sur un site présentant des séries télévisées.

    Mon problème:

    J'affiche dans chaque fiche série la distribution des rôles sous la forme :

    Acteur Prénom Nom : Rôle Prénom Nom

    Dans certaines séries, un ou plusieurs acteurs peuvent être remplacés par un ou plusieurs autres au cours de la série, soit :

    Acteur Prénom Nom : Rôle Prénom Nom
    Acteur Prénom Nom > Acteur Prénom Nom > Acteur Prénom Nom : Rôle Prénom Nom
    ou
    Acteur Prénom Nom remplacé par Acteur Prénom Nom remplacé par Acteur Prénom Nom : Rôle Prénom Nom

    Je sais créer la requête nécessaire, mais quelqu'un pourrait-il m'aider pour le code PHP ?

    J'utilise une base de donnée que je joint à ce post.

    Et voici le code php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    <?php 
    $cast = array();
    while ($row = $castResult->fetch_assoc()) {
       $array[] = $row['appOrder'];
    }
    while ($row = $castResult->fetch_assoc()) {
       echo '<p class="castAndCrew">'.$row['personName'];
       if ($row['appOrder'] > 1){
          foreach ($cast as $appOrder) {
             $appOrder = $appOrder + 1;
             echo ' remplacé par '.$row['personName'];
          }
          echo ' : '.$row['charName'].'</p>';
       }
       else {		
          echo '<p class="castAndCrew">'.$row['personName'].' : '.$row['charName'].'</p>';
       }
    } 
    ?>
    En vous remerciant par avance de l'aide que vous pourrez m'apporter.

    Soyez indulgent, je ne suis qu'un humble débutant en PHP.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 313
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 313
    Billets dans le blog
    17
    Par défaut
    Cela m'a l'air bien compliqué tout cela

    On devrait pouvoir le faire en SQL, avec MySQL voir GROUP_CONCAT(), sinon en PHP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $cast = []; // Tableau associatif de tableaux [personnage => [acteurs]]
     
    while ($row = $castResult->fetch_assoc()) {
        // Groupement des acteurs par personnage
        // PDO permet de faire cela automatiquement avec PDO::fetchAll() et PDO::FETCH_GROUP
        $cast[$row['charName']][] = $row['personName'];
    }
     
    foreach ($cast as $char => $persons) {
        echo implode(' > ', $persons), " : {$char}<br>";
    }
    Voilà pour le principe, dans la pratique il vaudrait mieux travailler sur des ID pour éviter les confusions.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 226
    Par défaut
    Bonjour et merci de vous intéresser à mon cas.

    J'ai inséré votre bout de code, mais la distribution ne s'affiche pas.
    Je précise que j'ai corrigé ce que je pense être une petite erreur dan la ligne 10 de votre code en remplaçant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    implode(' > ', $persons), " : {$char}<br>";
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    implode(' > ', $persons). " : {$char}<br>";
    Voilà pour le principe, dans la pratique il vaudrait mieux travailler sur des ID pour éviter les confusions.
    Qu'est ce que les ID ?

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 313
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 313
    Billets dans le blog
    17
    Par défaut
    Ce n'était pas une erreur, echo accepte autant de paramètres que nécessaire.
    La , au lieu du . évite l'opération de concaténation du echo... qu'il manquait

    Code corrigé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $cast = []; // Tableau associatif de tableaux [personnage => [acteurs]]
     
    while ($row = $castResult->fetch_assoc()) {
        // Groupement des acteurs par personnage
        // PDO permet de faire cela automatiquement avec PDO::fetchAll() et PDO::FETCH_GROUP
        $cast[$row['charName']][] = $row['personName'];
    }
     
    foreach ($cast as $char => $persons) {
        echo implode(' > ', $persons), " : {$char}<br>";
    }
    Qu'est ce que les ID ?
    Les identifiants des rôles, au cas où des personnages auraient le même nom.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 226
    Par défaut
    Autant pour moi. J'avais rencontré une erreur
    Parse error: syntax error, unexpected identifier "implode", expecting "," or ";" in /var/www/worksite/series/fiche.php on line 52
    Mais elle étaient du à une modification que j'avais apportée.

    En vous remerciant pour votre aide.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 226
    Par défaut
    Bonjour,

    Je reviens sur ce post car, je rencontre un autre problème en rapport avec celui-ci.

    En effet, pour certaines séries, le casting change par période. En voici un exemple:
    Nom : Capture d’écran_2023-06-11_12-57-17.png.jpg
Affichages : 105
Taille : 97,6 Ko

    Quelqu'un pourrait-il m'aider à afficher ma distribution de cette manière, tout en gardant le système précédant, dans le cas ou un
    acteur est remplacé par un ou plusieurs autres dans son rôle ?

    D'avance merci.

  7. #7
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 313
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 313
    Billets dans le blog
    17
    Par défaut
    Faut commencer par voir les données que tu as derrière ceci.

    Et peut-être mieux vaut-il ouvrir un autre sujet.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 226
    Par défaut
    J'ai ouvert un nouveau sujet.
    Du coup je remets celui-ci en résolu.

    Faut commencer par voir les données que tu as derrière ceci.
    Que veux-tu dire par là ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 25/02/2008, 15h31
  2. Réponses: 15
    Dernier message: 12/04/2007, 15h14
  3. Transfert vers une table selon condition
    Par Monsieur Peck dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 13/06/2006, 13h34
  4. [HTML][CSS] Redimensionner une image selon condition
    Par Eilkh dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 14/02/2006, 15h55
  5. [VB.net] Générer une date selon condition
    Par WriteLN dans le forum Windows Forms
    Réponses: 2
    Dernier message: 20/10/2005, 16h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo