Envoi mail avec tableau récapiltulatif des optimisations faites dans la bdd mysql

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 431 fois - Téléchargée 28 fois

Contenu du snippet

Salut @ tous,
je sais pas si cette source éxiste déjà sur phpcs.com, mais je la poste quand même pour moi elle est très pratique (même si elle est pas de moi).
En fait, c'est un script qui envoit un mail avec un tableau récapiltulatif des optimisations faites dans la BDD MySQL.
Pratique pour savoir ce qui s'est passé lors de l'opimisation de vos tables.
UTILISATION DE LA FONCTION mail().
UTILISATION DES $_SESSION.
UTILISATION DE STYLES CSS.
Voilà.
Oui je sais, cette source n'est pas optimisée, j'ai aps trop le temps de le faire.

Source / Exemple :


<?php
// ****************************
//  Démarrage de la session PHP
// ****************************
session_start();

// ********************************
// Valeurs par défaut des variables
// ********************************
$mail_ligne_1 = '';
$mail_ligne_2 = '';
$mail_ligne_3 = '';
$mail_ligne_4 = '';
$mail_ligne_5 = '';
$mail_ligne_6 = '';
$mail_ligne_7 = '';
$mail_ligne_8 = '';
$mail_ligne_9 = '';
$mail_ligne_10 = '';
$mail_ligne_11 = '';
$mail_ligne_12 = '';
$mail_ligne_13 = '';
$mail_ligne_14 = '';
$mail_ligne_15 = '';
$mail_ligne_16 = '';

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title></title>

<?php
// ********************************
// Récupération des ID de connexion
// ********************************

$_SESSION['hote_mysql'] = '*****';
$_SESSION['user_mysql'] = '*****';
$_SESSION['passwd_mysql'] = '*****';
$_SESSION['base_mysql'] = '*****';

// Connexion à la BDD
mysql_connect($_SESSION['hote_mysql'], $_SESSION['user_mysql'], $_SESSION['passwd_mysql']);
@mysql_select_db($_SESSION['base_mysql']) or die ("!! Impossible de sélectionner la BDD");        

//optimisation de la base
$mail_ligne_1 = "<center>";  
$mail_ligne_2 = "<div class='texte_bleu_grand'>";
$mail_ligne_3 = "Optimisation de la base de données ".$_SESSION['base_mysql'];
$mail_ligne_4 = "<br>";
$mail_ligne_5 =  "Le ".date('d m Y')." à ".date('H')."h ".date('i')."mn</div>";
$mail_ligne_6 = "<br><b>";
$mail_ligne_7 = "<table border=1><tr><td BGCOLOR='#D6DDE7'><div align=center class='texte_bleu_moyen'>Table</div></td><td><div align=center style='background-color: #D6DDE7;' class='texte_bleu_moyen'>Taille</div></td><td><div align=center style='background-color: #D6DDE7;' class='texte_bleu_moyen'>Etat</div></td><td><div align=center style='background-color: #D6DDE7;' class='texte_bleu_moyen'>Gain</div></td></tr>";
$mail_ligne_8 = "</b>";
 
$db_clean = $_SESSION['base_mysql'];
$tot_data = 0;
$tot_idx = 0;
$tot_all = 0;
$poids_bdd = 0;
$local_query = 'SHOW TABLE STATUS FROM '.$_SESSION['base_mysql'];
$result = @mysql_query($local_query);
if(@mysql_num_rows($result))
   {
   while($row = mysql_fetch_array($result))
       {
       $tot_data = $row['Data_length'];
       $tot_idx  = $row['Index_length'];
       $total = $tot_data + $tot_idx;
       $total = $total / 1024;
       $gain= $row['Data_free'];
       $gain = $gain / 1024;
       $total_gain += $gain;
                
       $local_query = 'OPTIMIZE TABLE '.$row[0];
       $resultat  = mysql_query($local_query);
        
       if($gain == 0)
           {
           $mail_ligne_9 = $mail_ligne_9."<tr><td><div class='texte_bleu_fin_italique'>".$row[0]."</div></td>"."<td><div class='texte_bleu_fin_italique'>".round($total , 2)." Ko"."</div></td>"."<td><div class='texte_bleu_italique'>Déjà optimisée</div></td><td><div class='texte_bleu_fin_italique'>0 Ko</div></td></tr> ";
           }
           else
           {
           $mail_ligne_9 = $mail_ligne_9."<tr><td><div class='texte_rouge_italique'>".$row[0]."</div></td>"."<td><div class='texte_rouge_italique'>".round($total , 2)." Ko"."</div></td>"."<td><div class='texte_rouge_italique'>"."Optimisée !"."</div></td><td><div class='texte_rouge_italique'>".round($gain , 2)." Ko</div></td></tr>";
          }  
        $poids_bdd = $poids_bdd + $total;
       } 
   }

if($total_gain == 0)
   {
   $mail_ligne_10 =  "</table>";
   $mail_ligne_11 =  "<br><hr color=#141C56 width=50%><center><div class='texte_bleu_grand'><br>";
   $mail_ligne_12 =  "Gain total : ".round($total_gain , 2)." Ko";
   $mail_ligne_13 =  "</div>";
   $mail_ligne_14 =  "<div class='texte_bleu_grand'>";
   $mail_ligne_15 =  "Poids de la base de données : ".round($poids_bdd , 2)." Ko";
   $mail_ligne_16 =  "</div>";
   }
else
   {
   $mail_ligne_10 = "</table>";
   $mail_ligne_11 = "<br><hr color=#141C56 width=50%><center><div class='texte_bleu_grand'><br>";
   $mail_ligne_12 = "Gain total : <span class='texte_rouge_grand'>".round($total_gain , 2)." Ko</span>";
   $mail_ligne_13 = "</div>";
   $mail_ligne_14 = "<div class='texte_bleu_grand'>";
   $mail_ligne_15 = "Poids de la base de données après : ".round(($poids_bdd - $total_gain) , 2)." Ko";
   $mail_ligne_16 = "</div>"; 
   }

// ****************
// Envoi de l'amail
// ****************

// Destinataire
$_SESSION['destinataire_mail_optimisation_des_tables']  = 'bal@mon_site.fr';

// Sujet
$_SESSION['objet_mail_optimisation_des_tables'] = 'Optimisation des tables de la base de données';

// Message HTML
$_SESSION['message_mail_optimisation_des_tables'] = '
<html>
<head>
<title>Optimisation des tables de la base de données</title>

<style type="text/css">

.texte_bleu_normal
{
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
color: #141C56;
}

.texte_bleu_moyen
{
font-size: 15px;
font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
color: #141C56;
}

.texte_bleu_grand
{
font-size: 18px;
font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
color: #141C56;
}

.texte_bleu_fin_italique
{
font-family: Arial, Helvetica, sans-serif;
font-size: 13px;
font-weight: normal;
color: #141C56;
font-style: italic;
}

.texte_bleu_italique
{
font-family: Arial, Helvetica, sans-serif;
font-size: 13px;
font-weight: bold;
color: #141C56;
font-style: italic;
}

.texte_rouge_italique
{
font-family: Arial, Helvetica, sans-serif;
font-size: 13px;
font-weight: bold;
color: #FF0000;
font-style: italic;
}

.texte_rouge_grand
{
font-size: 18px;
font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
color: #FF0000;
}

</style>

</head>
<body>'
.$mail_ligne_1
.$mail_ligne_2
.$mail_ligne_3
.$mail_ligne_4
.$mail_ligne_5
.$mail_ligne_6
.$mail_ligne_7
.$mail_ligne_8
.$mail_ligne_9
.$mail_ligne_10
.$mail_ligne_11
.$mail_ligne_12
.$mail_ligne_13
.$mail_ligne_14
.$mail_ligne_15
.$mail_ligne_16.
'</body>
</html>
';

// Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
$_SESSION['headers_mail_optimisation_des_tables']  = 'MIME-Version: 1.0' . "\r\n";
$_SESSION['headers_mail_optimisation_des_tables'] .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// En-têtes additionnels
$_SESSION['headers_mail_optimisation_des_tables'] .= 'To: ' . "\r\n";
$_SESSION['headers_mail_optimisation_des_tables'] .= 'From: mon_site.fr <bal@mon_site.fr>' . "\r\n";
$_SESSION['headers_mail_optimisation_des_tables'] .= 'Cc: ' . "\r\n";
$_SESSION['headers_mail_optimisation_des_tables'] .= 'Bcc:' . "\r\n";

// Envoi du mail
mail($_SESSION['destinataire_mail_optimisation_des_tables'], $_SESSION['objet_mail_optimisation_des_tables'], $_SESSION['message_mail_optimisation_des_tables'], $_SESSION['headers_mail_optimisation_des_tables']);

// ************************************************
// Déconnection de la BDD et mise à 0 des variables
// ************************************************
mysql_close($_SESSION['connexion_bd']);
$_SESSION['hote_mysql'] = '';
$_SESSION['user_mysql'] = '';
$_SESSION['passwd_mysql'] = '';
$_SESSION['base_mysql'] = '';
     
?>

</head>

<body>

</body>

</html>

Conclusion :


Bon, je le répète, je sais pas si ça sera utilie pour vous mais c'est très pratique pour faire une optimisation et en plus recevoir un mail comme rapport.

A voir également

Ajouter un commentaire Commentaires
Messages postés
198
Date d'inscription
lundi 28 février 2005
Statut
Membre
Dernière intervention
14 novembre 2008
1
aahh merci ! J'avais envoyé un mail à un admin (je sais plus qui c'est) mais il m'a pas répondu :(
D'accord tout s'éclairci ! Quel privilège ! Admin de CS ! Attention ça rigole pas !
Bon en tous cas, longue vie à CS (c'est pour ça que je suis membre club :) !
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
14
Oui, Membre Club et Admin Codes-Sources.
Les points servent pour l'ego de chacun =)
tu retrouves le classement ici : http://www.phpcs.com/topmembres.aspx (tu peux remplacer phpcs par tous les sites du reseau c-s)
Ce top des membres est généré tous les soirs (quand c'est possible) et est calculé selon le taux de participation des membres.
Chaque action sur l'un des sites CodeS-SourceS donne des points. (Ajout d'une source (évidemment, cela donne plus de points que le reste), dépôt d'un message dans le forum, ajout de commentaires sur les sources, etc...). En résumé, presque toutes les actions effectuéss sur le site attribuent des points au membre.
Ce classement montre principalement les membres les plus actifs du réseau CodeS-SourceS.
Les notes reçues sur les sources n'entrent pas en compte dans le gain de points.
Voila =)
Messages postés
198
Date d'inscription
lundi 28 février 2005
Statut
Membre
Dernière intervention
14 novembre 2008
1
Toi aussi t'est membre club ?
A oui je voulait toujours demander : c'est quoi les points CS ?
Messages postés
198
Date d'inscription
lundi 28 février 2005
Statut
Membre
Dernière intervention
14 novembre 2008
1
Mouai si j'ai le temps...tu sais je suis sur un big projet que t'imagine même pas et j'ai mon boss qui me demande une date de beta test...
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
14
non puisque tu l'avais dit =)
c'est de mon devoir de vérifier si les sources postées sont prises de sites sous licenses, ne t'offusque pas.
Tu comptes l'améliorer pour virer la blague des 16 variables ? =) ça serait bien ça =)
Afficher les 11 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.