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 :

Dom afficher que la troisième colonne [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2012
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 199
    Par défaut Dom afficher que la troisième colonne
    Bonjour,

    Je dois récupérer avec DOM une colonne d'un tableau, dans un premier temps j'ai supprimé les 5 dernières colonnes de mon tableau contenant 8 colonnes.
    J'aimerai maintenant ne récupérer que la 3 ème colonne seulement et donc supprimer les 2 premières.

    Voici mon code :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <?php
        // récupère le code HTML du champ POSITION par rapport à l'IDPROJET correspondant
        $idProjet = $row['IDPROJET'];
        $traiterPosition = $bdd->prepare("SELECT POSITION FROM projet WHERE IDPROJET='$idProjet'");
        $traiterPosition->execute();
        //var_dump($traiterPosition);
        while ($donnees = $traiterPosition->fetch()) {
            $position = $donnees['POSITION'];
        }
        // instanciation d'un objet DomDocument
        $dom = new DomDocument;
     
        // charge le fichier contenant le tableau HTML
        $dom->loadHTML($position);
     
        // recupère toutes les balises tr
        $listeTr = $dom->getElementsByTagName('tr');
     
        foreach ($listeTr as $tr) {
            // liste des td du tr
            $listeTd = $tr->getElementsByTagName('td');
            $nMax = 3; // recup des 3 premières colonnes
            while ($listeTd->item($nMax)) {
                $tr->removeChild($listeTd->item($nMax)); // supprime les 5 dernières colonnes donc
                $tr->removeChild($listeTd->item(-1));// ici que ça coince comment récupérer la dernière colonne sur les 3 restantes
            }
        }
        echo $dom->saveHTML(); // affichage du tableau
    ?>
    Merci d'avance.

  2. #2
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    pourquoi supprimer quand on peut lire inteligement avec xpath ?
    http://www.w3schools.com/xpath/xpath_syntax.asp

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2012
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 199
    Par défaut
    Merci,

    Grâce à xpath j'arrive bien à récupérer la 3ème colonne, en faisant ceci :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    <?php
    while ($row = $listeProjet->fetch()) {
     
        // récupère le code HTML du champ POSITION par rapport à l'IDPROJET correspondant
        $traiterPosition = $bdd->prepare("SELECT POSITION FROM projet WHERE IDPROJET='20'");
        $traiterPosition->execute();
        //var_dump($traiterPosition);
        while ($donnees = $traiterPosition->fetch()) {
            $position = $donnees['POSITION'];
        }
     
        $doc = new DOMDocument();
        @$doc->loadHTML($position);
     
        $xpath = new DOMXPath($doc);
        $query = $xpath->query("//td[3]");
     
        foreach ($query as $node) {
            $out = new DOMDocument();
     
            foreach ($node->childNodes as $child) {
                $inner = $out->importNode($child, true);
                $out->appendChild($inner);
            }
     
            echo $out->saveHTML();
        }
    }
    ?>
    Je dois maintenant dans cette colonne compter le nombre de 0, les entiers négatifs et ceux positifs. Avez-vous une idée pour commencer j'ai un peu de mal ??

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/04/2011, 10h24
  2. Réponses: 6
    Dernier message: 17/06/2008, 14h49
  3. n'afficher que les "print" dans query annalyser
    Par sky_perrinos dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 14/12/2004, 10h58
  4. [XML] n'afficher que les 3 premiers!
    Par Little Sloth dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 01/06/2004, 10h59
  5. [VB6] Datagrid afficher ou cacher des colonnes par code
    Par soazig dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 06/02/2003, 17h19

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