Agefoddx/classe/GestionBD/bdExterneTableGestion.php
2025-03-26 10:22:20 +01:00

78 lines
2.9 KiB
PHP

<?php
namespace Module\Agefoddx\Classe\GestionBD;
use Module\Agefoddx\Classe\GestionBD\bdExterneInteraction;
use PDO;
class bdExterneTableGestion {
/**
* @param bdExterneInteraction $bd bd externe qui permet le requêtage sql
* @return array renvoie la liste
*/
public static function getListeTables(bdExterneInteraction $bd) {
$pdo = $bd->getPdo();
$adresse = $bd->getNomBd();
$list = [];
$resql= $pdo->query("SELECT table_name FROM information_schema.tables WHERE table_schema = '$adresse';");
foreach ($resql as $value){
$list[] = $value["table_name"];
} return $list;
}
/**
* @param bdExterneInteraction $bd bd externe qui permet le requêtage sql
* @param $table string nom de la table
* @return string return le type de la clef primaire
*/
public static function getTypePk(bdExterneInteraction $bd, string $table) : string {
$pdo = $bd->getPdo();
$sql = "SELECT DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = '$table'
AND COLUMN_KEY = 'PRI';";
$resql= $pdo->query($sql);
return $resql->fetch()[0];
}
/**
* @param bdExterneInteraction $bd bd externe qui permet le requêtage sql
* @param $table string nom de la table
* @return string return le nom de la colonne de la clef primaire
*/
public static function getPk(bdExterneInteraction $bd, string $table) {
$pdo = $bd->getPdo();
$sql = "SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = '$table'
AND COLUMN_KEY = 'PRI';";
$nomClef = $pdo->query($sql);
$nomClef = $nomClef->fetch()["COLUMN_NAME"];
return $nomClef;
}
/**
* @param bdExterneInteraction $bd bd externe qui permet le requêtage sql
* @param $listeValue array liste des valeurs liée a récupéré
* @param $table string nom de la table
* @return array liste des valeurs récupérées
*/
public static function getValeurAExporter(bdExterneInteraction $bd, array $listeValue, string $table){
$pdo = $bd->getPdo();
$liste = [];
$parametreSelection = "";
foreach ($listeValue as $value){
if ($value["fixe"] == "false") $parametreSelection = $parametreSelection.", ".$value[key($value)];
}
$parametreSelection = substr($parametreSelection, 2);
$sql = "SELECT $parametreSelection FROM $table;";
$resql= $pdo->query($sql);
$ligne = [];
foreach ($resql as $row){
foreach ($listeValue as $value){
if ($value["fixe"] == "false") $ligne[key($value)] = $row[$value[key($value)]];
else $ligne[key($value)] = $value[key($value)];
}
$liste[] = $ligne;
}
return $liste;
}
}