Import de données csv universel

le script db_import_func (appel : index.php?popup=db_import_func.php) permet l'import universel de données csv (séparées par virgule, point-virgule, tabulation).

Avantages :
  • autodétection du séparateur
  • outils de répartition des informations des colonnes (import dans plusieurs tables, éléments liés, sur un unique tableau) : import en une opération dans plusieurs tables liées.
Définition d'un format

dans votre fichier perso.php, définissez la variable :
$perso_import["NOM_UNIQUE"]["NOM affiché"]["NOM table principale"][translate]="
"LIGNE1
LIGNE2"
";

la ligne 1 contient les noms à affecter aux colonnes, séparées par tabulation.
la ligne 2 contient l'action à effectuer sur ces colonnes, séparées par tabulation.

Définition des actions :

syntaxe générale : nom_col,action,options
nom_col : affecte la valeur au champ nom_col de la table principale

actions :

 >

place la donnée de la colonne nom_col dans un classeur langue ou une table liée.

si nom_col est vide : ne pas tenir compte du contenu de cette colonne pour l'insertion dans la table principale.

options : 

  • 0-9999 : val_cat classeur langue. prend pour val_nb langue le contenu de CETTE colonne.
  • nom_table,nom_champ [,nom_col,nom_champ ...] : affecte les valeurs à la table liée nom_table, dans nom_champ. La clé unique est celle présente dans la colonne nom_col. le contenu de cette colonne va dans nom_champ. si autres valeurs déclarées, affecte les autres valeurs dans ce même enregistrement sur la table liée.
    exemples : 
    • idaccount,>,accounts,name : met la valeur de cette colonne dans le champ name de la base accounts avec la clé définie dans la colonne idaccount
    • idaccount,>,accounts,name,idgens,idgens,actype,type : met la valeur de cette colonne dans le champ name de la base accounts avec la clé définie dans la colonne idaccount, ainsi que la valeur de la colonne idgens pour le champ idgens et de la colonne actype pour le champ type.
  • vide (ex: actype,> ) : ne pas tenir compte du contenu de cette colonne pour l'insertion dans la table principale.

Exemples :

type,>,6
insère le contenu de la colonne type dans le classeur 6 avec val_nb = (contenu de cette colonne)


idaccount,>,accounts,name,idgens,idgens,actype,type

 +

ajoute la donnée de cette colonne à la colonne nom_col.

options : à mettre entre les valeurs, si existantes.

variantes :
+? remplace si contenu non vide
+! ajout si contenu non vide

 precisions,+,
 dmy format de date jj/mm/aaaa (dd/mm/yyyy) 
 0-9999 raccourci pour >,0-9999 
 contact   recherche contact par nom (limité au classeur dans options si précisé)  
 vide  (c'est à dire nom_col seul) : affecte le contenu de la colonne au champ nom_col.  

 

exemple de ligne (les tabulations sont ici remplacées par des espaces) :

$perso_import["gens_compte_bank3"]["bank 4"]["gens_compte"][translate]=
"actype actid a1 a2 a3 nom a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22
actype,> ,>,36,actype idaccount idaccount,>,accounts,name,idgens,idgens,actype,type idgens idgens,>,gens,nom idaccount,>,accounts,balance,a9,lastbalance_date       date date_etat1 type type,>,6 valeur precisions precisions,+, precisions,+,
";

()
https://www.oxywork.com/?langc=en&news=246 Home > Projects > Help

Oen