From 470939b2608b6ce6a1738d689e23239efcef1749 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 4 Sep 2005 01:48:09 +0000 Subject: [PATCH] Ajout fonction qdate qui fait l'inverse de pdate. La fonction pdate convertit une date via une fonction du sgbd, la fonction idate fait l'inverse mais via php. Si les timezone different, l'inversion n'est pas exacte. La fonction qdate est un eequivalent de idate php mais par le sgbd, ainsi elle remplace avantageusement idate car l'inversion est toujours exacte. --- htdocs/lib/mysql.lib.php | 29 +++++++++++------ htdocs/lib/pgsql.lib.php | 70 ++++++++++++++++++++++++++++++++++------ 2 files changed, 80 insertions(+), 19 deletions(-) diff --git a/htdocs/lib/mysql.lib.php b/htdocs/lib/mysql.lib.php index 3603812100f..8b93cd4f445 100644 --- a/htdocs/lib/mysql.lib.php +++ b/htdocs/lib/mysql.lib.php @@ -434,24 +434,35 @@ class DoliDb /** - \brief Formatage par la base de données d'un champ de la base au format Timestamp ou Date (YYYY-MM-DD HH:MM:SS) + \brief Formatage (par la base de données) d'un champ de la base au format tms ou Date (YYYY-MM-DD HH:MM:SS) afin de retourner une donnée toujours au format universel date tms unix. - \param fname - \return date + \param param + \return date date au format tms. */ - function pdate($fname) + function pdate($param) { - return "unix_timestamp($fname)"; + return "unix_timestamp(".$param.")"; } /** - \brief Formatage de la date en fonction des locales. - \param fname + \brief Formatage (par la base de données) d'un champ de la base au format tms + afin de retourner une donnée au format text YYYYMMDDHHMMSS. + \param param + \return string date au format text YYYYMMDDHHMMSS. + */ + function qdate($param) + { + return "from_unixtime(".$param.")"; + } + + /** + \brief Formatage (par PHP) de la date en texte. + \param param \return date */ - function idate($fname) + function idate($param) { - return strftime("%Y%m%d%H%M%S",$fname); + return strftime("%Y%m%d%H%M%S",$param); } diff --git a/htdocs/lib/pgsql.lib.php b/htdocs/lib/pgsql.lib.php index bc240ea9bb2..4c673c7a224 100644 --- a/htdocs/lib/pgsql.lib.php +++ b/htdocs/lib/pgsql.lib.php @@ -21,7 +21,6 @@ * * $Id$ * $Source$ - * */ /** @@ -35,6 +34,7 @@ \version $Revision$ */ + /** \class DoliDb \brief Classe permettant de gérér la database de dolibarr @@ -51,6 +51,7 @@ class DoliDb var $database_selected; // 1 si base sélectionné, 0 sinon var $database_name; // Nom base sélectionnée var $transaction_opened; // 1 si une transaction est en cours, 0 sinon + var $lastquery; var $ok; var $error; @@ -422,24 +423,35 @@ class DoliDb /** - \brief Formatage par la base de données d'un champ de la base au format Timestamp ou Date (YYYY-MM-DD HH:MM:SS) + \brief Formatage (par la base de données) d'un champ de la base au format tms ou Date (YYYY-MM-DD HH:MM:SS) afin de retourner une donnée toujours au format universel date tms unix. - \param fname - \return date + \param param + \return date date au format tms. */ - function pdate($fname) + function pdate($param) { - return "unix_timestamp($fname)"; + return "unix_timestamp(".$param.")"; + } + + /** + \brief Formatage (par la base de données) d'un champ de la base au format tms + afin de retourner une donnée au format text YYYYMMDDHHMMSS. + \param param + \return string date au format text YYYYMMDDHHMMSS. + */ + function qdate($param) + { + return "from_unixtime(".$param.")"; } /** - \brief Formatage de la date en fonction des locales. - \param fname + \brief Formatage (par PHP) de la date en texte. + \param param \return date */ - function idate($fname) + function idate($param) { - return strftime("%Y%m%d%H%M%S",$fname); + return strftime("%Y%m%d%H%M%S",$param); } @@ -543,6 +555,44 @@ class DoliDb return $this->results; } + + function setLastQuery($s) + { + $this->lastquery=$s; + } + + + /** + \brief Renvoie toutes les données comme un tableau. + \param sql Requete sql + \param datas Tableau de données pour retour + \return int >0 si ok, <0 si ko + */ + function fetch_all_rows($sql, &$datas) + { + $datas = array(); + + $resql = $this->query($sql); + if ($resql) + { + $i = 0; + $num = $this->num_rows($resql); + + while ($i < $num) + { + $row = $this->fetch_row($resql); + array_push($datas, $row[0]); + $i++; + } + } + else + { + print $this->error(); + return -1; + } + return 1; + } + } ?>