'.$bateaux[$i]['nb_elements'].' : ID = '.$donnees['ID'].'

'; } Liberation_jeu_de_resultat_bdd($reponse); } //------------------------------------------------------------------- // Boucle sur tous les bateaux pour traiter les entrées redondantes: $nb_total_lignes_supprimees = 0; for ($i = 0; $i < $nb_bateaux ; $i ++) { // Boucle sur tous les éléments : for ($j = 0; $j < $bateaux[$i]['nb_elements']; $j ++) { $nb_redondants = 0; $val_1 = -1; $val_2 = 0; $id_2 = 0; $requete = 'SELECT Cle_primaire, Date, Valeur FROM '.$nom_table.' WHERE ID_Bateau=? AND ID=? ORDER BY Date '; $reponse = Requete_preparee_bdd($requete, array( array('i', $bateaux[$i]['ID_Bateau']), array('i', $bateaux[$i][$j])), __FILE__, __LINE__); while ($donnees = Recherche_ligne_bdd($reponse)) { // Recherche des conditions de redondance : if (($val_1 == $val_2) AND ($val_2 == $donnees['Valeur'])) // Si la valeur actuelle est égale à la précédente et à celle encore avant : { $redondants[$nb_redondants ++] = $id_2; // ... on mémorise l'entrée intermédiaire (N-1) $nb_total_lignes_supprimees ++; if ($nb_total_lignes_supprimees >= $max_lignes_traitees) break; } $val_1 = $val_2; $val_2 = $donnees['Valeur']; $id_2 = $donnees['Cle_primaire']; } Liberation_jeu_de_resultat_bdd($reponse); // Suppression des enregistrements redondants : for ($k = 0; $k < $nb_redondants; $k ++) { // Création d'une chaine avec les différentes clés à supprimer afin de réduire le nombre de requêtes DELETE (impact sur temps de traitement d'environ / 50 avec la valeur de 100) : $max_l = 100; $chaine_cles_primaires = '(Cle_primaire='.$redondants[$k ++].' '; if ($k < ($nb_redondants - 1)) { for ($l = 1; $l < $max_l; $l ++) { $chaine_cles_primaires .= 'OR Cle_primaire='.$redondants[$k].' '; if (($k >= ($nb_redondants - 1)) OR ($l >= ($max_l - 1))) break; $k ++; } } $chaine_cles_primaires .= ')'; $requete = 'DELETE FROM '.$nom_table.' WHERE ID_Bateau='.$bateaux[$i]['ID_Bateau'].' AND '.$chaine_cles_primaires.' '; // echo 'Requête = ['.$requete.']
'; Requete_bdd($requete, __FILE__, __LINE__); // Pas de requête préparée pour accélérer le traitement... } if ($nb_total_lignes_supprimees >= $max_lignes_traitees) break; } if ($nb_total_lignes_supprimees >= $max_lignes_traitees) break; } // Recherche de la taille de la table après traitement : $requete = 'SELECT COUNT(*) AS Nb FROM '.$nom_table.' '; $reponse = Requete_bdd($requete, __FILE__, __LINE__); while ($donnees = Recherche_ligne_bdd($reponse)) { $taille_table_apres_traitement = $donnees['Nb']; } Liberation_jeu_de_resultat_bdd($reponse); // Calculate script execution time $execution_time = number_format((microtime(true) - $start_time), 1, ".", " "); $tables[$x]['Taille_avant_traitement'] = $taille_table_avant_traitement; $tables[$x]['Nb_total_lignes_supprimees'] = $nb_total_lignes_supprimees; $tables[$x]['Execution_time'] = $execution_time; $tables[$x]['Taille_apres_traitement'] = $taille_table_apres_traitement; } break; } //**************************************************************************************************************************** case "Questionnaires": { switch($_SESSION['Administration']['questionnaire']) { default: { $message_erreur .= "Le questionnaire ".$_SESSION['Administration']['questionnaire']." est inconnu. Le questionnaire en cours est repassé à sa valeur par défaut."; $_SESSION['Administration']['questionnaire'] = "Nautic2021"; } case "Nautic2021" : { $table_questionnaire = "TB_Nautic2021"; break; } } // Nombre de réponses : $requete = 'SELECT COUNT(*) AS Nb FROM '.$table_questionnaire.' WHERE Validite=1'; $reponse = Requete_preparee_bdd($requete, array(), __FILE__, __LINE__); while ($donnees = Recherche_ligne_bdd($reponse)) { $reponses_questionnaire['Nb'] = $donnees['Nb']; } Liberation_jeu_de_resultat_bdd($reponse); // Dernier enregistrement : $requete = 'SELECT DATE_FORMAT(Date_creation,"%d/%m/%Y à %H:%i:%s") as Date_creation FROM '.$table_questionnaire.' WHERE Validite=1 ORDER BY Date_creation DESC LIMIT 1'; // echo 'Requête = '.$requete.'
'; $reponse = Requete_preparee_bdd($requete, array(), __FILE__, __LINE__); while ($donnees = Recherche_ligne_bdd($reponse)) { $reponses_questionnaire['Date_creation'] = $donnees['Date_creation']; } Liberation_jeu_de_resultat_bdd($reponse); // Nombre d'enregistrements par jour : $nb_jours = 0; $requete = 'SELECT COUNT(*) as Nb_jours, DATE_FORMAT(Date_creation, "%d-%m-%Y") as Date_creations FROM '.$table_questionnaire.' WHERE Validite=1 GROUP BY DATE_FORMAT(Date_creation, "%Y-%m-%d")'; // echo 'Requête = '.$requete.'
'; $reponse = Requete_preparee_bdd($requete, array(), __FILE__, __LINE__); while ($donnees = Recherche_ligne_bdd($reponse)) { $reponses_questionnaire['Creations_par_jour'][$nb_jours ++] = $donnees; } Liberation_jeu_de_resultat_bdd($reponse); break; } } Fermeture_bdd(); // Déconnexion de MySQL //************************************************************************************************************************************ // Affichage //************************************************************************************************************************************ //******************************************************************************************************************************** // Affichage principal : echo '
'; //========================================================================================= // Entête : Entete_page($message_erreur, $message_information); switch ($_SESSION['Administration']['page']) { //************************************************************************************************************************ case "Accueil": { echo '
'; echo '

Administration

'; echo '

Accueil

'; echo '

Attention : toute la partie Administration n\'est disponible qu\'en français.

'; echo '

ShipMembers et Bateaux

'; echo '
'; echo 'ShipMembers'; echo 'Gestion des bateaux'; echo '
'; echo '

Site web

'; echo '
'; // echo 'Commandes'; echo 'Faq'; echo 'Actualités'; echo 'Produits'; echo 'Galerie photos'; echo 'Videos'; echo 'Devis'; // echo 'Questionnaires'; echo 'Gestion des textes'; echo '
'; echo '

Technique

'; echo ''; echo '
'; echo 'Retour au menu ShipMember'; echo '
'; echo '
'; break; } //************************************************************************************************************************ case "Purge_bdd": { echo '
'; echo '

Administration

'; echo '

Purge de la base de données

'; for ($x = 0; $x < $nb_tables; $x ++) { echo '

'.$tables[$x]['Nom'].'

'; echo '

Taille de la table AVANT traitement = '.number_format($tables[$x]['Taille_avant_traitement'], 0, ".", " ").' lignes

'; echo '

Le nombre total de lignes supprimées est de '.number_format($tables[$x]['Nb_total_lignes_supprimees'], 0, ".", " ").' (maxi = '.number_format($max_lignes_traitees, 0, ".", " ").') en '.$tables[$x]['Execution_time'].' secondes

'; echo '

Taille de la table APRES traitement = '.number_format($tables[$x]['Taille_apres_traitement'], 0, ".", " ").' lignes

'; } echo ''; echo '
'; break; } //**************************************************************************************************************************** case "Questionnaires": { echo '
'; echo '

Administration

'; echo '

Questionnaire : '.$_SESSION['Administration']['questionnaire'].'

'; // Nb de fiche réponse : echo '
Le nombre total de questionnaires enregistrés est :
'.$reponses_questionnaire['Nb'].'
'; // Date dernière réponse : echo '
La date du dernier formulaire rempli est :
'.$reponses_questionnaire['Date_creation'].'
'; // Nb créations par jour : echo '
'; foreach($reponses_questionnaire['Creations_par_jour'] as $key => $creations) { echo '
Le nombre de formulaires saisis le '.$creations['Date_creations'].' est de :
'.$creations['Nb_jours'].'
'; } echo '
'; echo '
'; echo 'Retour à l\'accueil'; echo '
'; echo '
'; break; } } echo '
'; Pied_de_page();