Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3056 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4  5  6  7
Page Suivante
Auteur Sujet :

[Résolu] Export données en perl

n°2229903
gilou
Modérateur
Modzilla
Posté le 03-06-2014 à 17:49:56  profilanswer
 

Reprise du message précédent :
Il faut que tu regardes les codes de retour de ton appel a $sqlQuery->execute
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
mood
Publicité
Posté le 03-06-2014 à 17:49:56  profilanswer
 

n°2229917
clubber43
Posté le 04-06-2014 à 08:31:14  profilanswer
 

Salut  :hello:  
 
J'ai farfouillé dans le code cette nuit, et en metant le execute() en commentaire, j'ai le script qui compile bien,  
et j'ai comme message à l'écran : Content-type text/htlmnn Content-type text/htlmnn Content-type text/htlmnn
 
Et puis, j'ai trouvé cela en visitant 2 ou  3 sites :
 
 
 

Code :
  1. use Mysql;
  2. print "Content-type: text/html nn";
  3. # MYSQL CONFIG
  4. VARIABLES
  5. $host = "localhost";
  6. $database = "store";
  7. $tablename =
  8. "inventory";
  9. $user = "username";
  10. $pw = "password";
  11. # PERL MYSQL
  12. CONNECT()
  13. $connect = Mysql->connect($host, $database, $user,
  14. $pw);
  15. # SELECT DB
  16. $connect->selectdb($database);
  17. # DEFINE A
  18. MySQL QUERY
  19. $myquery = "SELECT * FROM $tablename";
  20. # EXECUTE THE QUERY FUNCTION
  21. $execute = $connect->query($myquery);


 
 
La synthèse en légérement différente de celle du script, juste la partie  ## $execute = $connect->query($myquery); ## qui me chiffonne.  
Car dans le script (celui que j'utilise) tout fonctionne jusqu'a execute(). N'y a t il pas un souci a ce niveau ?  
 
Merci
@+


Message édité par clubber43 le 04-06-2014 à 09:44:23

---------------
Merci
n°2229922
clubber43
Posté le 04-06-2014 à 10:03:45  profilanswer
 

Petit retour en arriere, j'ai trouvé sur cpan.org  
 
 

Code :
  1. my $query = sprintf("INSERT INTO foo VALUES (%d, %s)",                   
  2. $number, $dbh->quote("name" ));
  3. $dbh->do($query);


 
Et en rajoutant quelques lignes,  
 

Code :
  1. {
  2.  
  3.    my $query =
  4. sprintf
  5.    "INSERT INTO Puissance(Puissance_P, Puissance_Q,
  6. Dephasage, Puissance_S)
  7.     VALUES
  8.    
  9. (";
  10.        
  11.     foreach (keys %values)
  12.     {
  13.            $query .=
  14. $values{$_}.",";
  15.        } chop;
  16. chop;   # pour virer le  "," final;
  17.     $query .=
  18.      " )";
  19. my $sqlQuery  = $dbh->prepare($query) or die "Can't prepare
  20. $query: $dbh->errstrn";
  21. #print
  22. ($sqlQuery);
  23. ###essai
  24. $dbh->do($query);
  25. ###essai
  26. #$sqlQuery->execute()
  27. or die "Can't execute $query: $dbh->errstrn";
  28. #$query = "INSERT INTO Puissance(ID_Compteur VALUES ('".$fichier
  29. $_."'))"; 
  30.         #print
  31. ($query);
  32. #$sqlQuery  = $dbh->prepare($query) or die "Can't
  33. prepare $query: $dbh->errstrn";
  34. #$sqlQuery->execute();
  35. $query = sprintf "INSERT INTO Puissance(Date) VALUES ('".$time."')";
  36.         #print
  37. ($query);
  38. $sqlQuery  = $dbh->prepare($query) or die "Can't
  39. prepare $query: $dbh->errstrn";
  40. ###essai
  41. $dbh->do($query);
  42. ###essai
  43. #$sqlQuery->execute();
  44. $dbh->disconnect();


 
 
 
j'obtient cette erreur :  
 

Code :
  1. ##### ouverture session #####
  2. Content-type: text/htmlnnDBD::mysql::db do failed: You have an error in
  3. your SQL syntax; check the manual that corresponds to your MySQL server
  4. version for the right syntax to use near ')' at line 3 at F:/export_data_sql_V5.pl line 311.
  5. DBD::mysql::db do failed: Duplicate entry '' for key 'PRIMARY' at F:/export_data
  6. _sql_V5.pl line 329.
  7. DBD::mysql::db do failed: MySQL server has gone away at F:/export_data_sql_V5.pl
  8. line 311.
  9. DBD::mysql::db do failed: MySQL server has gone away at F:/export_data_sql_V5.pl
  10. line 329.
  11. DBD::mysql::db do failed: MySQL server has gone away at F:/export_data_sql_V5.pl
  12. line 311.
  13. DBD::mysql::db do failed: MySQL server has gone away at F:/export_data_sql_V5.pl
  14. line 329.
  15. Content-type:
  16. text/htmlnnContent-type: text/htmlnn
  17. ##### Fin session #####
  18. Press Enter to continue


 
Du coup, j'ai bien un problème dans mon execution je pense.
Parcontre, pourquoi alors avoir le souci avec do ?
 
Merci
@+


---------------
Merci
n°2230005
clubber43
Posté le 05-06-2014 à 10:35:21  profilanswer
 

Hello :)
 
J'ai travaillé sur le code hier soir à la maison et j'ai trouvé quelques trucs.  
Le code a bien évolué et il ne me reste qu'une erreur dans l'export, il me semble qu'il s'agit d'un souci de BdD :  
 

Code :
  1. ##### ouverture session #####
  2. Content-type: text/htmlnnINSERT INTO Puissance(Puissance_P, Puissance_Q, Dephasa
  3. ge, Puissance_S)
  4.                          VALUES
  5.                          ("38177368,47812188,813,24460544," )DBD::mysql::st execu
  6. te failed: Column count doesn't match value count at row 1 at F:/export_data_sql
  7. _V5.pl line 310.
  8. Content-type: text/htmlnnINSERT INTO Puissance(Puissance_P, Puissance_Q, Dephasa
  9. ge, Puissance_S)
  10.                          VALUES
  11.                          ("381520,0,65433,0," )DBD::mysql::st execute failed: Col
  12. umn count doesn't match value count at row 1 at F:/export_data_sql_V5.pl line 31
  13. 0.
  14. Content-type: text/htmlnnINSERT INTO Puissance(Puissance_P, Puissance_Q, Dephasa
  15. ge, Puissance_S)
  16.                          VALUES
  17.                          ("106660140,114972170,961,28582494," )DBD::mysql::st exe
  18. cute failed: Column count doesn't match value count at row 1 at F:/export_data_s
  19. ql_V5.pl line 310.
  20. ##### Fin session #####
  21. Press Enter to continue


 
Ce pourrait-il que ma base soit mal faite ou que les champs  soit pas accessible ?  
 
Merci
@+


---------------
Merci
n°2230008
clubber43
Posté le 05-06-2014 à 10:58:03  profilanswer
 

Juste une qustion, pour recuperer l'adresse IP du serveur en cours d'interogation, je peux rajouter cette ligne dans la requete ?  
 

Code :
  1. foreach (@servers)
  2.   {
  3.    my $connection =
  4. start_connection($_);
  5.    my $dbh =
  6. start_connection_sql($_);
  7.    next unless
  8. ($connection);
  9.    my %values = get_values($connection,
  10. %params);
  11.    #
  12. log_write(%values);
  13.    end_connection($connection);
  14.   #foreach (@servers)
  15.    {
  16.  
  17.    my $query =
  18. sprintf
  19.    'INSERT INTO Puissance(Adresse_IP, Puissance_P,
  20. Puissance_Q, Dephasage, Puissance_S)
  21.     VALUES
  22.     ("'.$servers{_$};
  23.        
  24.     foreach (keys %values)
  25.     {
  26.            $query .=
  27. $values{$_}.",";
  28.        } chop;
  29. chop;   # pour virer le  "," final;
  30.     $query .=
  31.      '" )';
  32. my $sqlQuery  = $dbh->prepare($query) or die "Can't prepare
  33. $query: $dbh->errstrn";
  34. print($query
  35. );
  36. #$sqlQuery->execute();
  37. $query = sprintf 'INSERT INTO Puissance(Date) VALUES
  38. ("'.$time.'" )';
  39. $sqlQuery  = $dbh->prepare($query) or die
  40. "Can't prepare $query: $dbh->errstrn";
  41. print($query
  42. );
  43. #$sqlQuery->execute();


 Et ainsi pouvoir recuperer l'adresse IP dans ma Bdd ?  
 
Merci
@+


---------------
Merci
n°2230009
gilou
Modérateur
Modzilla
Posté le 05-06-2014 à 10:58:16  profilanswer
 

Faudrait lire les messages d'erreurs, qui sont pourtant clairs:
>> Column count doesn't match value count
 
INSERT INTO Puissance(Puissance_P, Puissance_Q, Dephasage, Puissance_S)
Donc tu veux passer 4 valeurs de la table Puissance
VALUES ("38177368,47812188,813,24460544," )
et tu ne lui passes qu'une valeur, parce que "38177368,47812188,813,24460544," est considéré comme une seule valeur de type string
Ca devrait être soit
VALUES (38177368, 47812188, 813, 24460544)
soit
VALUES ("38177368", "47812188", "813", "24460544" )
selon que tes valeurs ont été déclarées comme numériques ou string à la création de la table
 
Au vu de ce que tu fait, au lieu de bosser directement avec la BDD, pour le moment, bosses plutôt sur tes queries, et fait des prints de leur contenu au lieu des do ou execute, pour vérifier que tes syntaxes sont bonnes, car pour le moment, c'est pas ça. Tu le ferais, tu verrais tout de suite si ça colle ou pas pour les IPs.
 
A+,


Message édité par gilou le 05-06-2014 à 11:02:34

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2230010
clubber43
Posté le 05-06-2014 à 11:00:44  profilanswer
 

Punaise, Oui,  
J'ai declaré tous les champs en int() ou varchar() du coup, il y a un bug la.  
mais l'export marche bien alors ^^
 Je travailel sa de suite.
 
 
Merci
@+


---------------
Merci
n°2230013
clubber43
Posté le 05-06-2014 à 11:22:56  profilanswer
 

C'est lié à la synthaxe de la requete du coup,  
 
Code :
 
{
   
   my $query = sprintf
   'INSERT INTO Puissance(Puissance_P, Puissance_Q, Dephasage, Puissance_S)  
    VALUES  
    ("';       ## Changement à faire ici  
         
    foreach (keys %values)  
    {  
           $query .= $values{$_}.",";  
       } chop; chop;   # pour virer le  "," final;  
    $query .=  
     '" )';     ## Changement à faire ici  
 
 
 
 
Car si j'enleve le ("'; au début, j'ai une erreur de synthaxe, aussi, on peut rajouter un ' dans le code $values{$_}." ',' ";  mais du  coup, on obtient  
("'38177368','47812188','813','24460544'," ) et si je mets  $values{$_}." "," ";  alors je nobtiens qu'un copier coller du script.
 
Merci
@+


---------------
Merci
n°2230021
clubber43
Posté le 05-06-2014 à 15:07:21  profilanswer
 

C'est ok, le esultat exporté est conforme aux attentes . . .  
J'ai codé la requete comme ça :
 

Code :
  1. my $query = 'INSERT INTO Puissance(Puissance_P,Dephasage)
  2.   VALUES
  3.    ("';
  4.       
  5.    foreach (keys %values)
  6.    {
  7.           $query .= $values{$_}.'",';
  8.       } chop; chop;    # pour supprimer le  "," de fin de ligne
  9.    $query .=
  10.     ')';


 
Mais le seul problème est le chp; chop à la fin, car j'ai toujours lors de l'export :  
 
("12456","45678",) et le chop ne m'enleve pas le , de trop.  
 
Du couplors de l'export, je risque d'avoir des surprises, non ?  
 
Meci
@+


---------------
Merci
n°2230028
Alci
Posté le 05-06-2014 à 16:36:48  profilanswer
 

Oui tu peux avoir des surprises, ça dépend comment c'est géré dans la BBD.
 
Je pense que c'est plus propre de faire :
 

Code :
  1. my $query = 'INSERT INTO Puissance(Puissance_P,Dephasage) VALUES ("' . join('","', values %values) . '" );';


---------------
BattleTag: Alci#2178 - C'est dans les vieux pots qu'on fait les meilleurs démos
mood
Publicité
Posté le 05-06-2014 à 16:36:48  profilanswer
 

n°2230032
gilou
Modérateur
Modzilla
Posté le 05-06-2014 à 17:04:33  profilanswer
 

clubber43 a écrit :

Mais le seul problème est le chp; chop à la fin, car j'ai toujours lors de l'export :  
("12456","45678",) et le chop ne m’enlève pas le , de trop.

Ben faut peut être réfléchir 2mn:
le chop marche pas, on va voir pourquoi dans la doc, et on se rend compte que c'est chop $query; chop $query; qu'il fallait écrire.
En plus, j'avais écrit '", '  avec un blanc après la virgule. si vous n'en mettez pas, il faut un seul chop $query; puisqu'on n’enlève plus qu'un caractère.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2230052
clubber43
Posté le 06-06-2014 à 08:24:21  profilanswer
 

Le chop $query en fait, supprime le dernier caractere de la ligne (ici le "," ).  
Mais on peut très bien aussi le mettre pour supprimer un caractere special dans une chaine de mots ou de caractere ?  
 
Meci pour le coup de main ^^
 
Merci
@+
 


---------------
Merci
n°2230058
clubber43
Posté le 06-06-2014 à 09:41:20  profilanswer
 

Juste une question,  
Pour sortir l'adresse IP du seveur en cours de requete, il est possible de rajouter une requete :  
 

Code :
  1. $query = sprintf 'INSERT INTO Puissance(ID_Compteur) VALUES ("'$fichier $_'" )';
  2. #$sqlQuery  = $dbh->prepare($query) or die "Can't prepare $query: $dbh->errstrn";
  3. #print("\n $query \n" );
  4. #$sqlQuery->execute();

 
 
J'ai rajoute la ligne  ("'$fichier $_'" )';  que l'on avait rajoute pour imprimer la même adresse lors de l'export sur le fichier CSV.
Cf. Page 5  
 
 

Code :
  1. gilou
  2. Modérateur
  3. Cybersoul stuck in fleshspace
  4. Posté le 11-04-2014 à 16:05:07 
  5. Le @ signifie que @servers est une liste.
  6. Et comme on a plus haut une boucle foreach (@servers)
  7. La valeur en cours de l'IP est dans la variable $_  (tant qu'on est pas rentré dans une autre boucle).
  8. Donc en remplaçant le printf($fichier "@servers" ); par un printf($fichier $_ ); ça devrait le faire.
  9.  
  10. A+,

 
 
 
Ici, elle peut aussi etre utilisée de la même façon ?  
Merci
@+


---------------
Merci
n°2230062
gilou
Modérateur
Modzilla
Posté le 06-06-2014 à 10:23:04  profilanswer
 

Seulement si $_ est toujours associée a la valeur de l'IP en cours ($_ est réassignée a chaque nouvelle boucle for ou foreach, et dans d'autres cas), sinon, il faut créer une variable spécifique pour conserver sa valeur et utiliser cette variable quand le besoin se présente.
A+,


Message édité par gilou le 06-06-2014 à 10:25:27

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2230064
clubber43
Posté le 06-06-2014 à 10:33:59  profilanswer
 

Du coup, je garde la même valeur pour _$ car je reste dans la même boucle :  
 

Code :
  1. foreach (@servers)
  2.  {
  3.   my $connection = start_connection($_);
  4.   my $dbh = start_connection_sql($_);
  5.   next unless ($connection);
  6.   my %values = get_values($connection, %params);
  7.   # log_write(%values);
  8.   end_connection($connection);
  9.  #foreach (@servers)
  10.   {
  11.   my $query = 'INSERT INTO Puissance(ID_Compteur, Puissance_P, Puissance_S, Dephasage)
  12.   VALUES
  13.    ( "' .join ('","', values %values) .'" );';
  14.      
  15.               #$query = sprintf 'INSERT INTO Puissance(ID_Compteur) VALUES ("'$fichier $_'" )';
  16. ...


 
Par contre pour la synthaxe de la requete SQL, j'ai un doute, je peux garder la même que pour $time ? c'est  à dire :
 

Code :
  1. #$query = sprintf 'INSERT INTO Puissance(Date) VALUES ("'.$time.'" )';

?  
Je teste cela mais j'ai un doute sur ma synthaxe ^^
 
Merci
@+


---------------
Merci
n°2230077
clubber43
Posté le 06-06-2014 à 11:41:36  profilanswer
 

C'est bon, en relisant mon script j'ai trouvé mon erreur.
 
J'avais mal recopié la variable. Du coup, maintenant sa marche avec :  
 

Code :
  1. my $query = sprintf 'INSERT INTO Puissance(Adresse_IP) VALUES ("'.$_.'" )';
  2. $sqlQuery  = $dbh->prepare($query) or die "Can't prepare $query: $dbh->errstrn";
  3. #print("\n $query \n" );
  4. $sqlQuery->execute();


 
Mais lors du lancement des equetes, j'ai l'erreur qui apparait :
 
 

Code :
  1. ##### ouverture session #####
  2. Content-type: text/htmlnnDBD::mysql::st execute failed: Duplicate entry '172.17.14.17' for key 'PRIMARY' at F:/export_data_sql_V7.pl line 297.
  3. DBD::mysql::st execute failed: Duplicate entry '' for key 'PRIMARY' at F:/export_data_sql_V7.pl line 310.
  4. DBD::mysql::st execute failed: Duplicate entry '' for key 'PRIMARY' at F:/export_data_sql_V7.pl line 317.


 
Je pense que  le souci vient du fait que j'envoie dans la base une valeur qui existe deja (ici l'adresse IP) mais je ne vois pas comment faire, car à chaque export, j'aurais l'adresse IP à envoyer => c'est ma clé primaire.
 
J'ai essayé avec un INSERT INTO, mais avec ADD, on peut arriver à la même chose ?  
 
Merci
@+


---------------
Merci
n°2230087
gilou
Modérateur
Modzilla
Posté le 06-06-2014 à 13:33:17  profilanswer
 

Ben non, ça peut absolument pas être une clé primaire de ta BDD, l'IP, ou alors tu ne sais pas ce qu'est une clé primaire (ça doit avoir une valeur unique pour chaque ligne)
Dans ton cas, il vaudrait mieux une clé primaire qui soit un numéro auto incrémenté (il y a une syntaxe pour en MySQL si mes souvenirs sont bons)
http://dev.mysql.com/doc/refman/5. [...] ement.html
A+,


Message édité par gilou le 06-06-2014 à 13:36:48

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2230089
clubber43
Posté le 06-06-2014 à 13:35:20  profilanswer
 

Il faut alors que je mette en place par exemple un compteur en clé primaire, comme sa une valeur unique à chaque relevé ?  
C'est donc la cause des mes erreur cette mauvaise gestion de la clé primaire ?  
 
Merci
@+


---------------
Merci
n°2230090
gilou
Modérateur
Modzilla
Posté le 06-06-2014 à 13:37:36  profilanswer
 

Oui, cf l'ajout en fin de mon post précédent.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2230094
clubber43
Posté le 06-06-2014 à 13:55:07  profilanswer
 

C'est parfait gilou,  
Je recommence et je pens ey ariver cette fois lol
 
@+ et merci pour tout
 
Merci
@+


---------------
Merci
n°2230103
clubber43
Posté le 06-06-2014 à 14:49:05  profilanswer
 

BON, c'est ok. L'export vers la BDD marche enfin
 
Après beaucoup de questions et de réponses (Merci encore Gilou), la base fonctionne mais il me reste une et une seule question,  
Lors de l'export, j'ai création de 2 lignes pour un compteur et j'obtient cela :
 

Code :
  1. +----+--------------+-------------+-------------+-----------+------+
  2. | id | Adresse_IP   | Puissance_P | Puissance_S | Dephasage | Date |
  3. +----+--------------+-------------+-------------+-----------+------+
  4. |  1 | NULL         |    39419992 |    49355728 |       798 | NULL |
  5. |  2 | 172.17.14.17 |        NULL |        NULL |      NULL | NULL |


 
Le probleme, je voudrais tout avoir sur une même ligne.
 
Un souci dans mon code de requete ou alors un souci dans ma Bdd ?
 
Après cela, le sujet sera RESOLU  :bounce:  
 
Merci
@+


---------------
Merci
n°2230105
gilou
Modérateur
Modzilla
Posté le 06-06-2014 à 14:54:16  profilanswer
 

> Le probleme, je voudrais tout avoir sur une même ligne.  
Faut tout faire avec un seul INSERT INTO
La tu en fais surement deux, un pour Puissance_P et Puissance_S et Dephasage et Date, et l'autre pour Adresse_IP
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2230107
clubber43
Posté le 06-06-2014 à 14:57:04  profilanswer
 

Oui, gagné.
Je viens de comprendre ma betise avec un essai sans une boucle de INSERT.
 
Mais vu que mes data proviennent de pluisuer fonctions, je ne peux pas faire qu'un seul insert ?  
 
 

Code :
  1. foreach (@servers)
  2.        {
  3.  
  4.    my $query2 = 'INSERT INTO
  5. Puissance(Puissance_P, Puissance_S, Dephasage)
  6.    
  7.    VALUES
  8.     ( "' .join ('","', values %values)
  9. .'" );';
  10.      
  11. my $query = sprintf 'INSERT INTO Puissance(Adresse_IP) VALUES ("'.$_.'" )';
  12. $sqlQuery  = $dbh->prepare($query) or die "Can't prepare
  13. $query: $dbh->errstrn";
  14. #print("n $queryn" );
  15. $sqlQuery->execute();
  16. $sqlQuery  = $dbh->prepare($query2) or die "Can't prepare
  17. $query2: $dbh->errstrn";
  18. #print("n $query2
  19. n" );
  20. $sqlQuery->execute();
  21.          
  22.   $query = sprintf 'INSERT INTO Puissance(Date) VALUES ("'.$time.'" )';
  23.   $sqlQuery  = $dbh->prepare($query) or die "Can't prepare
  24. $query: $dbh->errstrn";
  25. #print("n $query n" );
  26.  
  27. $sqlQuery->execute();
  28. $dbh->disconnect();


 
Je regarde ce que je peux faire.
 
Merci
@+


---------------
Merci
n°2230116
gilou
Modérateur
Modzilla
Posté le 06-06-2014 à 15:15:10  profilanswer
 

Je tape ça a vue, donc ça peut être imparfait, mais ça devrait ressembler à ceci:
foreach (@servers) {
    my $query = 'INSERT INTO Puissance(Adresse_IP, Puissance_P, Puissance_S, Dephasage, Date)';  
    $query .= ' VALUES ("' . $_ . '", "' . join ('", "', values %values) .  '", "' .$time. '" )';
    # print "$query\n"; # a décommenter, pour tester si la syntaxe est ok, avant de faire la query pour de bon
    my $sqlQuery  = $dbh->prepare($query) or die "Can't prepare $query: $dbh->errstrn";
    $sqlQuery->execute();
}
$dbh->disconnect();
 
Il reste un problème avec cette approche: l'ordre des éléments du hash %values, qui a de bonne chances de varier avec chaque appel (c'est dans les specs des versions récentes de Perl, afin d'éviter des attaques de programmes basées sur un ordre déterministe des clés des hashes). Ce qui fait que le  join ('", "', values %values) risque de donner des valeurs dans un autre ordre que Puissance_P, Puissance_S, Dephasage (c'est pour éviter cela que je n'utilisais pas un join dans mon code original)
il faudrait donc plutôt faire au début
my $query = 'INSERT INTO Puissance(Adresse_IP, ' . join(', ', keys %values) . ', Date)';  
pour avoir un ordre correct
 
A+,


Message édité par gilou le 06-06-2014 à 15:26:41

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2230119
clubber43
Posté le 06-06-2014 à 15:24:09  profilanswer
 

Punaise, tout fonctionne à merveille!
 
Je ne sais pas comment te dire merci Gilou, mais la je suis vraiment trop trop content ^^ :jap:  :jap:  
Mes connaissances ont énormement progresser grace a tes conseils et tes remarques !
 
Je te remercie pour toute l'aide apportée et pour la réussite de ce script pas évident pour moi, mais que je comprend de mieux en mieux !!
Par contre pour marquer RESOLU, je passe par où du cuop et se sera ma derniere question lol
 
 
Merci
@+


---------------
Merci
n°2230121
gilou
Modérateur
Modzilla
Posté le 06-06-2014 à 15:28:35  profilanswer
 

:)
Tu as bien pris en compte mon dernier paragraphe avec my $query = 'INSERT INTO Puissance(Adresse_IP, ' . join(', ', keys %values) . ', Date)';  ?
Sinon tu risque d'avoir des surprises.
 
Pour résolu, il suffit d'éditer ton premier post et de modifier le titre.
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2230122
gilou
Modérateur
Modzilla
Posté le 06-06-2014 à 15:31:11  profilanswer
 

Si tu as pas envie de poster ton code en intégralité ici, envoies le moi en MP, que j'y jette un œil à tête reposée (j'en suis a mon 10e jour de grippe et premier jour sans fièvre, alors ça devrait aller ;) )
 
A+,


Message édité par gilou le 06-06-2014 à 15:31:35

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2230230
clubber43
Posté le 09-06-2014 à 11:37:21  profilanswer
 

As tu reçu le script par mp Gilou ? je n'ai pas eu de retour d'accusé ^^
 
Merci
@+


---------------
Merci
n°2230231
clubber43
Posté le 09-06-2014 à 11:37:31  profilanswer
 

[resolu]


---------------
Merci
n°2230238
gilou
Modérateur
Modzilla
Posté le 09-06-2014 à 12:21:59  profilanswer
 

Normalement, l'indication non-lu disparaît lorsqu'il a été lu :)
J'ai pas encore eu le temps de le lire en détail, mais on a un WE de 3j ;)
Tu n'as pas mis ce que tu utilises comme code pour prendre les valeurs à intervalle régulier.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2231588
clubber43
Posté le 23-06-2014 à 09:30:19  profilanswer
 

Salut Gilou,  
 
Concernant la prise de mesure à intervalle régulier, j'utilise le plannificateur de tache pour le moment,  
Car je n'ai pas installé le nécessaire pour faire tourner le module Cron. Mais c'est à venir cette semaine.
 
@+


---------------
Merci
n°2231594
clubber43
Posté le 23-06-2014 à 10:14:58  profilanswer
 

clubber43 a écrit :

Ok,  Pour faire simple,  
J'ai un compteur energie qui possede une interface web via un mini serveur web intégré. Mon but est de rentrer dans sa base de données et d'en extraire 3 variables qdont j'ai besoin.
 
j'ai trouvé la fonction qui mer permet de rentrer dans la base de données avec mbtget -r3 -a 264 (adresse variable) et @IP
 
Quand je tape cette ligne dans ma fenetre de commande, le serveur me réponde <00264> values 19167. qui est ma consommation.  
maintenant, je voudrais intégré cette requette dans un programme qui me renvoie à intervalle régulier ces valeur dans un fichier .txt ou csv.
 
Voilà pour faire simple et rapide ^^
 
merci


mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  6  7
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
Copier données en ligne par colonneComment génerer un fichier csv à partir d'une base de données?
perl + xml[Perl] Créer un graph RRD avec RRDTool::OO
[Résolu][Perl] XML::DOM Comment avoir une belle indentation?Programmation Java lecture base de données
[VBA-Excel] Comment appeler un fichier pour récupérer des données ?extraction de donnees
Récupération données d'un site PHPRécupérer des données d'un fichier xml
Plus de sujets relatifs à : [Résolu] Export données en perl


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR