[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Phpcompta-contrib] contributeur...
From: |
Dany De Bontridder |
Subject: |
Re: [Phpcompta-contrib] contributeur... |
Date: |
Thu, 11 May 2006 22:37:36 +0200 |
User-agent: |
KMail/1.8.2 |
On Thursday 11 May 2006 20:54, herve couvelard wrote:
> bonsoir,
>
> je reviend à la charge, au rapport, sur mes activités de la journée.
>
> mysql_constant.php
> define ("MYSQL_USER","debian-user");
> define ("MYSQL_DB","compta");
> define ("MYSQL_HOST","localhost");
> define ("MYSQL_CONF","account_repository");
> (.....)__________________________
>
> pgsql_constant.php
> define ("phpcompta_password","dany");
> define ("domaine","");//prefixe des tables ?
C'est le préfix des nouvelles bases de données, PhpCompta fonctionne avec
plusieurs base de données.
Une domaine phpcompta comprend
* une db repository
* des bases de données contenant des comptabilité (domainedossierX)
* des bases de données contenant de modèles de compta (domainemodX)
> posgres.php------------
> function ExecSql($p_connection, $p_string) {
> $ret=pg_query($p_connection,$p_string);
> return $ret;}
>
> fichier---------------------
> include('posgres.php');
> $Res=ExecSql($this->db,"select * chose");
> $Max=pg_NumRows($Res);
> if ( $Max == 0 ) return null;
> for ($i=0;$i<$Max;$i++) {
> $array[]=pg_fetch_array($Res,$i);
> $tot_cred+=$array[$i]['cred_montant'] ;}
> (.....................)--------------
>
>
>
> test_actuel (version simplifiée)
>
> pgsql_base.php
> include('postgres.php')
> function Exec_Sql($p_connection, $p_string) {
> $ret=pg_query($p_connection,$p_string);
> $res=pg_NumRows($ret);
> for ($i=0;$i<$res;$i++) {
> $row[$i]=pg_fetch_assoc($ret,$i);
> }
> return (array($res,$row));
> }
Il vaut mieux l'appeler autrement, parfois j'envoie des appels à des fonctions
à travers ExecSql ;-)
Donc function FetchArray($p_connection, $p_string) {
$ret=pg_fetch_all($p_connection,$p_string);
/* http://be.php.net/manual/en/function.pg-fetch-all.php */
return pg_fetch_array($ret);
}
>
> fichier-------------------------
> include(_DB_TYPE_.'_base.php');<- mysql/pgsql
> $Res=Exec_Sql($this->db,"select * chose");
> if ( $Res[0] == 0 ) return null;
Plutôt if ( sizeof ($Res) == 0 ) return null;
En recevant un array, un sizeof dessus nous donne le nombre de lignes
> for ($i=0;$i<$Res[0];$i++) {
> $tot_cred+=$Res[1][$i]['cred_montant'] ;}
> (.....................)--------------------
>
> L'objectif était de ne plus se prendre la tête avec les pg_ et mysql_.
Ok c'est la bonne voie :-)
> 3 - au niveau graphique, rien de nouveau, juste 2 pictos en plus.,
> revoila le lien mis a jour:
> http://www.patrimoine-pour-demain.com/php_compta.png
Ahhhh je me disais bien qu'il manquait des choses ;-)
>
> 4 - j'aurais tendance à proposer de passer certaines bases de données en
> fichier textes plats, par exemple les préférences, tout ce qui n'est pas
> sensible et qui ne justifie pas un BDD. Je n'ai encore rien fait de la
> sorte, mais un bon filegetcvs ()... et hop directement un formulaire et
> hop directement un fputs... cela allègerait pas mal la bdd et
> simplifierais le code.
J'essaie d'éviter de drop sortir des choses de la DB, sinon cela complique un
peu la stratégie de backup, et puis une db au moins c'est un fichier qu'on
accède avec des commandes SQL ;-) On peut en discuter au cas par cas, mais il
faudrait vraiment être convainquant ;-)
>
>
> 5 - pour le fun la modif pour le débug par file dans le fichier debug.php
> ---------------------------------------------------
> if ( DEBUG=='true' ) {
>
> > JUSTE ICI
> > if (DEBUG_TYPE=='file'){ << celui dans constant.php
> > $fdebug=fopen(ERROR_LOG,"a+");
> > fwrite($fdebug,date("Ymd H:i:s").$file.' : '.$line.' _ >'.$msg."\n");
> > fclose($fdebug);}
> > else{
> >=====
De plus on aurait été obligé d'en faire une en MySQL ;-)
Seul truc que j'aimerais c'est que le nom de fichier fonctionne sous windows
et sous Unix donc voir l'utilisation de "PATH_SEPARATOR"
> donc voila, j'attend avec impatience des critiques bonnes ou mauvaises
> et des idées......
>
> je n'ai a priori pas de question sauf : pourquoi 2 bases de données
> modèles existantes,au lieu de créer la base de donné à la demande
> suivant un modèle script ? est-ce pour utiliser la fonction d'héritage
> de pgsql ? (si si je me documente).
Facile : mod1 = comptabilité Belge
mod2 = comptabilité Française
Comme on peut adapter complètement un dossier, et après en faire un modèle,
pratique ;-) Les épiciers n'ont pas les mêmes postes comptables que ceux
vendant du matériel informatiques cela concerne les prestations et la
vente/achat de marchandises :)
@+,
D.
Re: [Phpcompta-contrib] contributeur..., herve couvelard, 2006/05/10
Re: [Phpcompta-contrib] contributeur..., herve couvelard, 2006/05/10