phpcompta-contrib
[Top][All Lists]
Advanced

[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.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]