You are not logged in.
Pages: 1
Topic closed
Bonjour
Dans le script contract_item.class.php
Je me pose la question sur le fonctionnement de la requete Query
Initialement ainsi (format tableau?)
$query = ['SELECT' => 'glpi_contracts_items.*',
'FROM' => ['glpi_contracts_items', 'glpi_contracts'],
'LEFT JOIN' => ['glpi_entities'
=> ['FKEY' => ['glpi_contracts' => 'entities_id',
'glpi_entities' => 'id']]],
'WHERE' => ['glpi_contracts.id' => '`glpi_contracts_items`.`contracts_id`',
'glpi_contracts_items.items_id' => $ID ,
'glpi_contracts_items.itemtype' => $type]
+ $dbu->getEntitiesRestrictCriteria('glpi_contracts','','',true),
'ORDER' => 'glpi_contracts.name'];
$result = $DB->request($query);
-> cette requete ne donne rien, alors que j'ai des contrats sur des elements...
Je l'ai remplacé par ceci
$query = "SELECT *
FROM `glpi_contracts_items`, `glpi_contracts`
LEFT JOIN `glpi_entities`
on `glpi_contracts`.`entities_id` = `glpi_entities`.`id`
WHERE `glpi_contracts`.`id` = `glpi_contracts_items`.`contracts_id`
and `glpi_contracts_items`.`items_id` = $ID
and `glpi_contracts_items`.`itemtype` = '$type'".
//$dbu->getEntitiesRestrictCriteria(`glpi_contracts`,'','',true).
" ORDER by `glpi_contracts`.`name`";
cela fonctionne... hormis la notion de restriction ($dbu) resultat tableau... ?
Pouvez vous vérifier ?
Merci
Last edited by ec2311 (2021-11-02 12:55:46)
GLPI 10.0.10
GLPIinventory 1.3.4
Agents : FI (2.6, 2.5) et Glpiagents (1.7)
Offline
Vos éléments sont-il dans la même entité que vos contrats ? avez-vous le droit de voir les contrats ?
Dans la requête il y a la restriction sur la visibilité des contrats (celle que vous avez supprimée dans votre requête)
CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6 - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)
Offline
Bonjour
Je n'ai qu'une seule entité.
en réactivant la premiere commande et en mettant un echo($query)
$query = ['SELECT' => 'glpi_contracts_items.*',
'FROM' => ['glpi_contracts_items', 'glpi_contracts'],
'LEFT JOIN' => ['glpi_entities'
=> ['FKEY' => ['glpi_contracts' => 'entities_id',
'glpi_entities' => 'id']]],
'WHERE' => ['glpi_contracts.id' => '`glpi_contracts_items`.`contracts_id`',
'glpi_contracts_items.items_id' => $ID ,
'glpi_contracts_items.itemtype' => $type]
+ $dbu->getEntitiesRestrictCriteria('glpi_contracts','','',true),
'ORDER' => 'glpi_contracts.name'];
/*$query = "SELECT *
FROM `glpi_contracts_items`, `glpi_contracts`
LEFT JOIN `glpi_entities`
on `glpi_contracts`.`entities_id` = `glpi_entities`.`id`
WHERE `glpi_contracts`.`id` = `glpi_contracts_items`.`contracts_id`
and `glpi_contracts_items`.`items_id` = $ID
and `glpi_contracts_items`.`itemtype` = '$type'".
//$dbu->getEntitiesRestrictCriteria(`glpi_contracts`,'','',true).
" ORDER by `glpi_contracts`.`name`"; */
echo $query;
$result = $DB->request($query);
j'obtiens l'erreur :
ArrayTCPDF ERROR: Some data has already been output, can't send PDF file
Si je reprends la requete ecrite (sans les []), donc celle que j'ai ecrite ) le resultat est correct.
Si je retire le commentaire que sur la ligne restriction entité et que je laisse le echo $query :
SELECT * FROM `glpi_contracts_items`, `glpi_contracts` LEFT JOIN `glpi_entities` on `glpi_contracts`.`entities_id` = `glpi_entities`.`id` WHERE `glpi_contracts`.`id` = `glpi_contracts_items`.`contracts_id` and `glpi_contracts_items`.`items_id` = 603 and `glpi_contracts_items`.`itemtype` = 'Computer'Array ORDER by `glpi_contracts`.`name`TCPDF ERROR: Some data has already been output, can't send PDF file
avec une notion de Array, correspondant à la ligne $dbu->getentities... + l'erreur TCPDF ERROR...
> ne connaissant pas le php, je ne sais pas si la presence des crochets est necessaire dans l'élaboration de la requete.
Last edited by ec2311 (2021-10-25 13:28:08)
GLPI 10.0.10
GLPIinventory 1.3.4
Agents : FI (2.6, 2.5) et Glpiagents (1.7)
Offline
Problème reproduit et correction envoyée en MP.
Dès que j'auraéi de nouveau accès à la forge des plugins, je pourrai commiter cette correction.
Merci de votre retour
CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6 - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)
Offline
Bonjour
Correction ko
j'ai regardé de pres $query proposé vis à vis de ce que j'ai fait comme requete.
du coup voici ce que je mettrais :
$query = ['SELECT' => ['*'],
'FROM' => ['glpi_contracts_items','glpi_contracts'],
'LEFT JOIN' => ['glpi_entities'
=> ['FKEY' => ['glpi_contracts' => 'entities_id',
'glpi_entities' => 'id']]],
'WHERE' => ['glpi_contracts_items.items_id' => $ID ,
'glpi_contracts_items.itemtype' => $type,
'glpi_contracts.id' => 'glpi_contracts_items.contracts_id']
+ $dbu->getEntitiesRestrictCriteria($itemtable,'','',true),
'ORDER' => 'glpi_contracts.name'];
print_r($query);
$result = $DB->request($query);
$number = count($result);
echo($number);
Plus d'erreur sql
mais pas de sortie non plus
voici ce que j'ai :
Array ( [SELECT] => Array ( [0] => * ) [FROM] => Array ( [0] => glpi_contracts_items [1] => glpi_contracts ) [LEFT JOIN] => Array ( [glpi_entities] => Array ( [FKEY] => Array ( [glpi_contracts] => entities_id [glpi_entities] => id ) ) ) [WHERE] => Array ( [glpi_contracts_items.items_id] => 7336 [glpi_contracts_items.itemtype] => Computer [glpi_contracts.id] => glpi_contracts_items.contracts_id ) [ORDER] => glpi_contracts.name ) 0TCPDF ERROR: Some data has already been output, can't send PDF file
> la requete me renvoie un number à 0, alors qu'elle devrait retourner 2.
je me pose la question sur le lien entre contracts_id et id (juste avant le $dbu)
en effet dans le print_r je vois :
[glpi_contracts.id] => glpi_contracts_items.contracts_id, comme si lien entre la colonne glpi_contracts_id et une variable glpi_contracts_items.contracts_id , qui contiendrait 0 ?
> d'ou vient l'erreur TCPDF ERROR ??? (-> un coup de CTRL F5 sur le navigateur resout cette erreur : cache ?)
Ne reste alors que la jointure
Last edited by ec2311 (2021-10-26 10:11:30)
GLPI 10.0.10
GLPIinventory 1.3.4
Agents : FI (2.6, 2.5) et Glpiagents (1.7)
Offline
Votre bug a été créé dans la nouvelle forge : https://github.com/yllen/pdf/issues/1
Pouvez-vous confirmer la correction https://github.com/yllen/pdf/commit/dfb … 2d094d4213
et- me faire un retour que je puisse fermer le bug?
CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6 - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)
Offline
Bonjour Yllen,
Merci cela fonctionne
Super
GLPI 10.0.10
GLPIinventory 1.3.4
Agents : FI (2.6, 2.5) et Glpiagents (1.7)
Offline
Super. Je clos ce post
CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6 - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)
Offline
Pages: 1
Topic closed