Salut, je fais ici le sujet car sur Discord c'est compliqué :D
J'ai réussis à établir la connexion avec la base (joie) mais j'arrive pas à formater la requête pour obtenir des trucs j'ai des erreurs dans tous les sens. Alors que sur SQL Dev la requête est niquel.
Voici la requête fonctionnelle sous SQL Dev :
select to_char(sysdate, 'dd/mm/yyyy') as x,
u.pren_usr || ' ' || u.nom_usr as Operateur,
nvl(appel, 0) "Appels ouverts",
nvl(appel2, 0) "Appels clos",
nvl(incident, 0) "Incidents ouverts",
nvl(incident2, 0) "Incidents clos",
nvl(taches, 0) "Tâches closes",
(nvl(appel, 0) + nvl(incident, 0)) as "Total ouverts",
(nvl(appel2, 0) + nvl(incident2, 0) + nvl(taches, 0)) as "Total clos"
from utilisateur u
full join (select nvl(count(*), 0) as appel,
CREATION_OPERATOR as operateur
from csd_call
where to_char(CREATION_DATE, 'dd/mm/yyyy') =
to_char(sysdate, 'dd/mm/yyyy')
group by CREATION_OPERATOR) x1
on x1.operateur = u.code_usr
full join (select count(*) as appel2, bn_user_cre as operateur
from blocnote
where to_char(bn_date_cre, 'dd/mm/yyyy') =
to_char(sysdate, 'dd/mm/yyyy')
and bn_user_cre in
(select code_usr
from utilisateur
where code_dp = '0000000925')
and bn_field = 'CALL_STATE'
and bn_newdes = '1'
group by bn_user_cre) x2
on x2.operateur = u.code_usr
full join (select count(*) as incident, CREATION_OPERATOR as operateur
from csd_incident
where to_char(CREATION_DATE, 'dd/mm/yyyy') =
to_char(sysdate, 'dd/mm/yyyy')
group by CREATION_OPERATOR) x3
on x3.operateur = u.code_usr
full join (select count(*) as incident2, bn_user_cre as operateur
from blocnote
where to_char(bn_date_cre, 'dd/mm/yyyy') =
to_char(sysdate, 'dd/mm/yyyy')
and bn_user_cre in
(select code_usr
from utilisateur
where code_dp = '0000000925')
and bn_field = 'ID_STATE'
and bn_newcode in (11, 19, 25, 74, 112)
group by bn_user_cre) x4
on x4.operateur = u.code_usr
full join (select count(*) as taches, a.INT_CODE_USER as operateur
from bpm_taskinst a
where to_char(DATE_CRE, 'dd/mm/yyyy') =
to_char(sysdate, 'dd/mm/yyyy')
and TSI_STATUT = 3
group by INT_CODE_USER) x5
on x5.operateur = u.code_usr
where (nvl(appel, 0) + nvl(incident, 0) + nvl(appel2, 0) +
nvl(incident2, 0) + nvl(taches, 0)) > 0
and (u.code_dp = '0000000925' or u.code_usr = '0000023374')
and u.code_fct not in ('0000000005', '0000000006')
order by x, operateur
Et voici mon PHP actuel, fonctionnel mais que je n'arrive pas à faire évoluer avec cette requête donc :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>statistiques</title>
<script src=".\js\jquery-ui-1.12.1\external/jquery/jquery.js"></script>
<script src=".\js\jquery-ui-1.12.1\jquery-ui.js"></script>
<link href=".\js\jquery-ui-1.12.1\jquery-ui.css" rel="stylesheet">
<link href=".\css\style.css" rel="stylesheet">
</head>
<body>
<?php
// echo"\n<body>\n";
// Connexion au service XE (i.e. la base de données)
$conn = oci_connect('JEVOUSMONTREPASLID', 'NILEMOTDEPASSEBANDEDEFILOUS', 'NILELIENDELABASENONMAISDITDONC');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
/*
SELECT [DISTINCT ou ALL] * ou liste de colonnes
FROM nom de table ou de la vue
[WHERE prédicats]
[GROUP BY ordre des groupes]
[HAVING condition]
[ORDER BY ] liste de colonnes
*/
$stid = oci_parse($conn, 'SELECT ID_STATE FROM csd_incident'); //all_objects (qui liste tous les objets, pas que les tables) - all_tables (toutes les tables, même systèmes) - all_tab_columns (toutes les colonnes de toutes les tables) - et en remplaçant 'all' par 'user', on voit les objets de l'utilisateur.
oci_execute($stid);
echo "<table border='2'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
echo "<tr>\n";
foreach ($row as $item) {
echo "<td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "") . "</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";
// echo"\n</body>\n\n";
// phpinfo();
?>
<!-- SCRIPTS ICI -->
<script src=".\js\scriptsjquery.js"></script>
<!-- SCRIPTS ICI -->
</body>
</html>
J'ai tout de configuré via Wamp 3.1.9.
PHP : 7.3.5
Donc l'idée c'est de virer ma requête test qui fonctionne et mettre la grosse du début à la place.
Merci de votre aide !
-Zakky
PS : Les couleurs du code en PJ
J'ai réussis à établir la connexion avec la base (joie) mais j'arrive pas à formater la requête pour obtenir des trucs j'ai des erreurs dans tous les sens. Alors que sur SQL Dev la requête est niquel.
Voici la requête fonctionnelle sous SQL Dev :
select to_char(sysdate, 'dd/mm/yyyy') as x,
u.pren_usr || ' ' || u.nom_usr as Operateur,
nvl(appel, 0) "Appels ouverts",
nvl(appel2, 0) "Appels clos",
nvl(incident, 0) "Incidents ouverts",
nvl(incident2, 0) "Incidents clos",
nvl(taches, 0) "Tâches closes",
(nvl(appel, 0) + nvl(incident, 0)) as "Total ouverts",
(nvl(appel2, 0) + nvl(incident2, 0) + nvl(taches, 0)) as "Total clos"
from utilisateur u
full join (select nvl(count(*), 0) as appel,
CREATION_OPERATOR as operateur
from csd_call
where to_char(CREATION_DATE, 'dd/mm/yyyy') =
to_char(sysdate, 'dd/mm/yyyy')
group by CREATION_OPERATOR) x1
on x1.operateur = u.code_usr
full join (select count(*) as appel2, bn_user_cre as operateur
from blocnote
where to_char(bn_date_cre, 'dd/mm/yyyy') =
to_char(sysdate, 'dd/mm/yyyy')
and bn_user_cre in
(select code_usr
from utilisateur
where code_dp = '0000000925')
and bn_field = 'CALL_STATE'
and bn_newdes = '1'
group by bn_user_cre) x2
on x2.operateur = u.code_usr
full join (select count(*) as incident, CREATION_OPERATOR as operateur
from csd_incident
where to_char(CREATION_DATE, 'dd/mm/yyyy') =
to_char(sysdate, 'dd/mm/yyyy')
group by CREATION_OPERATOR) x3
on x3.operateur = u.code_usr
full join (select count(*) as incident2, bn_user_cre as operateur
from blocnote
where to_char(bn_date_cre, 'dd/mm/yyyy') =
to_char(sysdate, 'dd/mm/yyyy')
and bn_user_cre in
(select code_usr
from utilisateur
where code_dp = '0000000925')
and bn_field = 'ID_STATE'
and bn_newcode in (11, 19, 25, 74, 112)
group by bn_user_cre) x4
on x4.operateur = u.code_usr
full join (select count(*) as taches, a.INT_CODE_USER as operateur
from bpm_taskinst a
where to_char(DATE_CRE, 'dd/mm/yyyy') =
to_char(sysdate, 'dd/mm/yyyy')
and TSI_STATUT = 3
group by INT_CODE_USER) x5
on x5.operateur = u.code_usr
where (nvl(appel, 0) + nvl(incident, 0) + nvl(appel2, 0) +
nvl(incident2, 0) + nvl(taches, 0)) > 0
and (u.code_dp = '0000000925' or u.code_usr = '0000023374')
and u.code_fct not in ('0000000005', '0000000006')
order by x, operateur
Et voici mon PHP actuel, fonctionnel mais que je n'arrive pas à faire évoluer avec cette requête donc :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>statistiques</title>
<script src=".\js\jquery-ui-1.12.1\external/jquery/jquery.js"></script>
<script src=".\js\jquery-ui-1.12.1\jquery-ui.js"></script>
<link href=".\js\jquery-ui-1.12.1\jquery-ui.css" rel="stylesheet">
<link href=".\css\style.css" rel="stylesheet">
</head>
<body>
<?php
// echo"\n<body>\n";
// Connexion au service XE (i.e. la base de données)
$conn = oci_connect('JEVOUSMONTREPASLID', 'NILEMOTDEPASSEBANDEDEFILOUS', 'NILELIENDELABASENONMAISDITDONC');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
/*
SELECT [DISTINCT ou ALL] * ou liste de colonnes
FROM nom de table ou de la vue
[WHERE prédicats]
[GROUP BY ordre des groupes]
[HAVING condition]
[ORDER BY ] liste de colonnes
*/
$stid = oci_parse($conn, 'SELECT ID_STATE FROM csd_incident'); //all_objects (qui liste tous les objets, pas que les tables) - all_tables (toutes les tables, même systèmes) - all_tab_columns (toutes les colonnes de toutes les tables) - et en remplaçant 'all' par 'user', on voit les objets de l'utilisateur.
oci_execute($stid);
echo "<table border='2'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
echo "<tr>\n";
foreach ($row as $item) {
echo "<td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "") . "</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";
// echo"\n</body>\n\n";
// phpinfo();
?>
<!-- SCRIPTS ICI -->
<script src=".\js\scriptsjquery.js"></script>
<!-- SCRIPTS ICI -->
</body>
</html>
J'ai tout de configuré via Wamp 3.1.9.
PHP : 7.3.5
Donc l'idée c'est de virer ma requête test qui fonctionne et mettre la grosse du début à la place.
Merci de votre aide !
-Zakky
PS : Les couleurs du code en PJ