séparation de la connexion de la BD et le code PHP
Bonjour,
Je voudrais avoir la connexion avec la base de données dans un fichier et mon code php dans un autre fichier,
voila le code de mon fichier (permet de créer un graphe avec jpgraph):
Code:
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
| <?php
include ("jpgraph/src/jpgraph.php");
include ("jpgraph/src/jpgraph_bar.php");
include ("jpgraph/src/jpgraph_line.php");
include('connexion.php');
$tableaucalls = array();
$tableautime = array();
$tableauuser = array();
$max = 0;
//formulaire
if(isset($_REQUEST['query_date']) && isset($_REQUEST['end_date']))
{
$query_date=$_REQUEST['query_date'];
$end_date=$_REQUEST['end_date'];
}
// **********************
// Extraction des données
// **********************
$sql =
"SELECT user as user ,
COUNT( * ) AS calls,
(SUM( pause_sec ) * 0.02 + SUM( wait_sec ) * 0.02 + SUM( dispo_sec ) * 0.02) as time
FROM vicidial_agent_log
WHERE lead_id IS NOT NULL
and event_time <= '".$query_date." 23:59:59' and event_time >='".$end_date." 00:00:00 '
GROUP BY user
HAVING calls > 0 ";
$mysqlQuery = @mysql_query($sql, $mysqlCnx) or die('Pb de requête: ' . mysql_error());
// Initialisation des tableaux
/*for ($i=0;$i<=11;$i++) {
$tableaucalls[$i] = 0;
$tableautime[$i] = 0;
$tableauuser[$i]= 'user';
}*/
// Récupération des données
while ($row_type_user = mysql_fetch_array($mysqlQuery, MYSQL_ASSOC))
{
if ($row_type_user['calls'] + $row_type_user['time']!=0)
{
$tableaucalls[] = $row_type_user['calls'];
$tableautime[] = $row_type_user['time'];
$tableauuser[] = $row_type_user['user'];
}
//$row_type_user['user']-1
if ($max < $row_type_user['calls']) $max = $row_type_user['calls'];
}
mysql_close();
// *********************
// Création du graphique
// *********************
$graph = new Graph(600,500);
$graph->SetScale("textlin");
$graph->SetMargin(50,40,20,40);
// Désactiver le cadre autour du graphique
$graph->SetFrame(false);
// Ajouter un onglet
$graph->tabtitle->Set("user , calls et time");
$graph->tabtitle->SetFont(FF_ARIAL,FS_BOLD,10);
// Apparence des grilles
$graph->ygrid->SetFill(true,'#DDDDDD@0.5','#BBBBBB@0.5');
$graph->ygrid->SetLineStyle('dashed');
$graph->ygrid->SetColor('gray');
$graph->xgrid->Show();
$graph->xgrid->SetLineStyle('dashed');
$graph->xgrid->SetColor('gray');
$graph->xaxis->SetTickLabels($tableauuser);
$graph->xaxis->SetFont(FF_ARIAL,FS_NORMAL,8);
$graph->xaxis->SetLabelAngle(45);
// *******************************
// Créer un graphique histogramme
// *******************************
$oHisto = new BarPlot($tableautime);
$oHisto->SetWidth(0.6);
$oHisto->value->Show();
$oHisto->value->SetFormat('%d');
// dégradé de rouge vers noir à gauche
// Pour chaque barre
$oHisto->SetFillGradient('#440000', '#FF9090', GRAD_LEFT_REFLECTION);
// Bordure autour de chaque histogramme
$oHisto->SetWeight(1);
// Ajouter au graphique
$graph->Add($oHisto);
// ***********************
// Graphique courbe rempli
// ***********************
$oCourbe = new LinePlot($tableaucalls);
// Couleur de remplissage avec transparence
$oCourbe->SetFillColor('skyblue@0.5');
// Couleur de la courbe
$oCourbe->SetColor('navy@0.7');
$oCourbe->SetBarCenter();
// Apparence des points
$oCourbe->mark->SetType(MARK_SQUARE);
$oCourbe->mark->SetColor('blue@0.5');
$oCourbe->mark->SetFillColor('lightblue');
$oCourbe->mark->SetSize(6);
// Affichage des valeurs
$oCourbe->value->Show();
$oCourbe->value->SetFormat('%d');
// Echelle des Y pour le nombre de ventes
$graph->SetYScale(0,'lin', 0, $max * 2);
$graph->xaxis->title->Set("USer/ID");
$graph->yaxis->title->Set("timeAgent (min)");
// Ajouter un axe Y supplémentaire
$graph->AddY(0,$oCourbe);
// Couleur de l'axe Y supplémentaire
$graph->ynaxis[0]->SetColor('red');
$graph->ynaxis[0]->title->Set("calls");
// Envoyer au navigateur
$graph->Stroke();
?> |
le code de fichier connexion:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <?php
// ceci est le fichier connexion.php
// On définit les 4 variables nécessaires à la connexion MySQL :
$hostname = "localhost";
$user = "root";
$password = "motdepasse";
$nom_base_donnees = "basededonnees";
// Connexion permanente au serveur MySQL : mysql_Pconnect
$conn = mysql_pconnect($hostname, $user, $password) or die(mysql_error());
// Choix de la base sur laquelle travailler
mysql_select_db($nom_base_donnees, $conn);
mysql_query("SET NAMES 'utf8'");
?> |
je suis débutante et j'ai besoin de votre aide merci d'avance :)
La question n'est pas très claire
Bonjour,
La question n'est pas très claire, puisque le fichier connexion est déjà séparé.
Si vous souhaitez une organisation plus MVC, il faudrait regarder du coté des framework existant.
CackPhp, Zend, Symfony, Silex
Comme les fonctions mysql_* ne serront plus supportée http://www.php.net/manual/fr/function.mysql-query.php,
je vous conseil de commencer a utiliser PDO
Code:
$dbh = new PDO('mysql:host=xxx;port=xxx;dbname=xxx', 'xxx', 'xxx', array( PDO::ATTR_PERSISTENT => false));
Bonne après midi
Giuse