File "traitement005.php"

Full Path: /home/analogde/www/MDPH/Json/traitement005.php
File size: 5.03 KB
MIME-type: text/html
Charset: utf-8

<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Compteur de Sous-Tableaux</title>
    <script>
        // Définir le tableau de données
        const tableau = {
            "id": "row-1",
            "name": "1",
            "selectValue": "1",
            "count": "14",
            "cells": [
                { "value": "0", "color": "white" },
                { "value": "1", "color": "green" },
                { "value": "1", "color": "green" },
                { "value": "1", "color": "green" },
                { "value": "1", "color": "green" },
                { "value": "1", "color": "green" },
                { "value": "1", "color": "green" },
                { "value": "1", "color": "green" },
                { "value": "1", "color": "green" },
                { "value": "1", "color": "green" },
                { "value": "1", "color": "green" },
                { "value": "1", "color": "green" },
                { "value": "1", "color": "green" },
                { "value": "1", "color": "green" },
                { "value": "0", "color": "white" },
                { "value": "0", "color": "white" },
                { "value": "0", "color": "white" },
                { "value": "0", "color": "white" },
                { "value": "0", "color": "white" },
                { "value": "0", "color": "white" },
                { "value": "0", "color": "white" }
            ]
        };

        function loadFromDB() {
            return fetch("load_mysql.php")
                .then(response => response.json())
                .then(data => {
                    console.log("plouf");
                    return data;
                })
                .catch(error => {
                    console.error("Erreur :", error);
                    showMessageModal("Une erreur est survenue lors du chargement des données.");
                });
        }

        // Fonction pour compter les sous-tableaux avec "value": "1"
        function countSubarraysWithValueOne(cells) {
            let count = 0;
            let currentLength = 0;

            for (let i = 0; i < cells.length; i++) {
                if (cells[i].value === "1") {
                    currentLength++;
                    if (currentLength === 1) {
                        count++;
                    }
                } else {
                    currentLength = 0;
                }
            }

            return count;
        }

        // Fonction pour compter les occurrences de "value": "1" dans les cellules
        function countValueOneInCells(cells) {
            let count = 0;
            for (let i = 0; i < cells.length; i++) {
                if (cells[i].value === "1") {
                    count++;
                }
            }
            return count;
        }

        // Fonction pour afficher le résultat dans la page HTML
        async function displayResult() {
            let data = await loadFromDB();
            console.log(data);

            // Créer un tableau avec des sous-tableaux [ligne, valeur count]
            let countArray = [];
            for (let i = 0; i < data.length; i++) {
                countArray.push([i + 1, data[i].count]);
            }

            console.log(countArray);

            const result = countSubarraysWithValueOne(tableau.cells);
            document.getElementById('result').innerText = `Nombre de sous-tableaux avec "value": "1" : ${result}`;

            // Récupérer la valeur associée à "count"
            const countValue = tableau.count;
            document.getElementById('countValue').innerText = `Valeur associée à "count" : ${countValue}`;

            // Afficher le tableau dans la section HTML
            const tableContainer = document.getElementById('tableContainer');
            let tableHTML = '<table border="1"><tr><th>Ligne</th><th>Valeur count</th></tr>';
            countArray.forEach(row => {
                tableHTML += `<tr><td>${row[0]}</td><td>${row[1]}</td></tr>`;
            });
            tableHTML += '</table>';
            tableContainer.innerHTML = tableHTML;

            // Parcourir les sous-tableaux cells et compter les occurrences de "value": "1"
            const cellsContainer = document.getElementById('cellsContainer');
            let cellsHTML = '<table border="1"><tr><th>Ligne</th><th>Nombre de "value": "1"</th></tr>';
            data.forEach((row, rowIndex) => {
                const cells = row.cells;
                const count = countValueOneInCells(cells);
                cellsHTML += `<tr><td>${rowIndex + 1}</td><td>${count}</td></tr>`;
            });
            cellsHTML += '</table>';
            cellsContainer.innerHTML = cellsHTML;
        }

        // Appeler la fonction pour afficher le résultat lorsque la page est chargée
        window.onload = displayResult;
    </script>
</head>
<body>
    <h1>Compteur de Sous-Tableaux</h1>
    <p id="result"></p>
    <p id="countValue"></p>
    <div id="tableContainer"></div>
    <div id="cellsContainer"></div>
</body>
</html>