banneer2

Réducteur d'URL tinad:

Collez l'adresse du site:

Rechercher sur le blog du grouik:

Il s'agit d'un billet juste pour moi. ^^ UN truc qui faisait partie de ma dernière To Do List [1]. Je ne suis pas très adroit en PHP (je lutte même pour déclarer des variables), je mets ce mémo sur le blog pour pouvoir le retrouver, mais c'est tellement spécifique, que je doutte que ça intéresse un visiteur régulier (si, si vous n'êtes pas nombreux, mais google analitycs me dit que vous existez). Ça me servira dès que j'aurai besoin de refaire un truc similaire.

Il s'agit d'une passerelle entre deux bases de données... sauf que faire des requêtes sur le serveur informix (à part avec le couple MS QUERY / Tun SQL ou en java, je n'ai pas trouvé). Je fais donc un truc un peu crado: je télécharge le fichier qui contient la table.

Le script en tâche CRON:

(j'ai évidemment masqué les mots de passe, même si ça reste dans le réseau local)

#!/bin/sh
# By gnieark septembre 2009 http://blog-du-grouik.tinad.fr
#Se placer dans le repertoire de l'user (root)
cd ~
# Télécharger la base de données
wget ftp://root:THEMOTDEPASSE@IPDuServeur/u/DIS/paidis/salar1
#Exécuter le script PHP de mise à jour des bases
php ~/scripts/majtablepersonnels.php
#Supprimmer le fichier salar1 (il y a plein de données bien confidentielles dedans, autant qu'il ne traine pas)
rm salar1

Et le script PHP qui me fait mes requêtes:

<?php
//SCRIPT PHP MISE à jour de la liste du personnel et de leurs numéros à partir 
//du fichier de base de données salar1 de paidis.
//
//by Gnieark http://blog-du-grouik.tinad.fr Septembre 2009
$dbname = 'tinai';
 
if (!mysql_connect('localhost', 'root', 'THEMOTDEPASSE')) {
   echo 'Impossible de se connecter à MySQL';
   exit;
}
mysql_query("USE tinai");
mysql_query("DELETE * FROM table_temp;");
mysql_query("LOAD DATA INFILE '~/salar1' REPLACE INTO TABLE `table_temp` FIELDS TERMINATED BY '|';");
 
$sql1 = "SELECT champ1, champ3, champ4, champ6, champ2, champ51, champ56  FROM table_temp";
 
$result1 = mysql_query($sql1);
 
if (!$result1) {
   echo "Erreur DB, impossible de lister les tables\n";
   echo 'Erreur MySQL : ' . mysql_error();
   exit;
}
 
while ($row1 = mysql_fetch_row($result1)) {
   $result2 = mysql_query("SELECT COUNT(*) FROM table_utilisateurs WHERE cde_paidis='${row1[0]}'");
   //echo "SELECT COUNT(*) FROM table_utilisateurs WHERE cde_paidis='${row1[0]}'";
   $row2 = mysql_fetch_row($result2);
   if ($row2[0]>0) {
     mysql_query("UPDATE table_utilisateurs SET nom_usuel='${row1[1]}',nom_de_jeune_fille='${row1[2]}', prenom='${row1[3]}', cde_etat='${row1[4]}',telephone='${row1[5]}',portable='${row1[6]}' WHERE cde_paidis='${row1[0]}'");
   }
   if ($row2[0]=0) {
     mysql_query("INSERT INTO table_utilisateurs(nom_usuel, nom_de_jeune_fille, prenom, cde_etat, telephone, portable) VALUES ('${row1[1]}','${row1[2]}','${row1[3]}','${row1[4]}','${row1[5]}','${row1[6]}')");
   }
}
mysql_query("DELETE * FROM table_temp;");
?>

Notes

[1] Enfin, il reste aussi la petite interface de consultation de la base de données à créer.

Commentaires

1. Le vendredi, décembre 10 2010, 14:56 par begooden-it
gravatar

Bonjour,

je te recommande, dans ta to-do list, de regarder sur le site ibm-informix. Informix Dynamic Server existe maintenant en version libre, avec des limites suffisamment hautes pour gérer des Teras de données pour des centaines d'utilisateurs...
Pourquoi s'embêter avec un moteur de bases de données rudimentaire, alors que tu peux utiliser un subtil mélange de RollsRoyce et F1, sans pour autant passer des journées homme sur l'administration. fais un tour sur cette URL:
http://www-01.ibm.com/software/data...

Cordialement
Eric

Ajouter un commentaire

Nom ou pseudo:
Adresse email:
Site web (facultatif):
Commentaire:

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

La discussion continue ailleurs

URL de rétrolien : http://blog-du-grouik.tinad.fr/trackback/344

Fil des commentaires de ce billet

Dans la même catégorie:
scripts shell bash


Faire lire les pages de wikipedia par espeak

espeak001.png
Grand moment de procrastinage et de solitude sur le PC. J'ai repris l'article Wikipedia text to speech Voici mon script pour que ça lise direct en français: #!/bin/bashecho "What do you want me to lookup for you on Wikipedia ?"; \read line; \wget -q

Lire la suite...



Windows batch Automatiser le transfert par FTP

scriptFTP.jpeg
Ce mémo a pour objectif d'expliquer comment automatiser le transfert d'un fichier par FTP. Pratique lors de la création de passerelles. Prérequis: un serveur FTP. Le compte FTP utilisé est chrooté dans le dossier dans lequel doivent être déposés les fichiers. Pour créer le serveur FTP, ce billet

Lire la suite...


Algorithme à la con, manipulation de chaines de caracteres

EDIT dans les commentaires, Ben propose une solution en une ligne de code avec une regex:D J'ai une base de donnée mal foutue (spamoi qui l'ai conçue) dans laquelle les noms et prénoms sont dans le même champs. Une typographie est respectée, toutes les lettres du nom sont en majuscules tandis que

Lire la suite...


Entetes HPRIM

Il y a déjà un an ou deux, j'avais fait une passerelle avec notre logiciel de dossier de soins. J'avais utilisé comme point d'entrée l'interface de laboratoire (format HPRIM). Oui avec un logiciel propriétaire et fermé, plus que bancal, il faut bien trouver des moyens de faire des interfaces (sans

Lire la suite...


Purger un dossier avec un script .bat

cmd.jpg
Nous allons voir comment purger un dossier avec un script .bat (pour windaube quoi) Bon okie, j'ai honte d'écrire ce billet. Mais faut me comprendre, cette semaine, j'ai installé des PC, modifié le script dpetites annonces à notre intranet. Ce code est sans grand intéret aussi, juste un appel mysql

Lire la suite...


Propulsé par Dotclear