Insertion de données
rv1962
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
rv1962 Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
rv1962 Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai besoin d'un peu d'aide pour compléter mon script d'insertion de données :D :
Pour exemple voici mon fichier txt ou csv:
Voici ma table :
Script shell :
Pourriez-vous m'aider à gérer les cas suivants pour bien remplir la table?
- les sauts de ligne (même s'il y en a plusieurs)
- les % (comme cela doit être des INT)
- et les répétitions de la date
Je vous remercie par avance pour votre aide.
J'ai besoin d'un peu d'aide pour compléter mon script d'insertion de données :D :
Pour exemple voici mon fichier txt ou csv:
01/12/2013 (format date donc toujours le même format nov-12 etc...) 12 0 42% n/a (un ou plusieurs saut de ligne parfois) 01/12/2013 4 5 01/12/2013 2 etc..
Voici ma table :
Field | Type | Null | Key | Default | Extra | +------------------------+---------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | date | date | YES | | NULL | | | valeur | int(10) | YES | | NULL | |
Script shell :
#!/bin/sh count=1 while read ligne do if [ $count -eq 1 ] then date=$ligne "let count += 1" else mysql -uuser -ppassword base -e "INSERT INTO table (date,valeur) VALUE ($date,$ligne)" fi done < fichier
Pourriez-vous m'aider à gérer les cas suivants pour bien remplir la table?
- les sauts de ligne (même s'il y en a plusieurs)
- les % (comme cela doit être des INT)
- et les répétitions de la date
Je vous remercie par avance pour votre aide.
A voir également:
- Insertion de données
- Fuite données maif - Guide
- Supprimer les données de navigation - Guide
- Touche insertion clavier - Guide
- Insertion sommaire word - Guide
- Insertion filigrane word - Guide
1 réponse
Bonsoir,
Pour les sauts de ligne, vérifie simplement via un if que ta ligne n'est pas vide, sinon => continue
Pour la date, si tes formats sont bon, fais une regex, ou un test sur l'existence du caractère /, si tu le trouve, tu change ta variable $date (et tu fais un continue pour zapper l'insert), sinon tu le laisse comme il est (Il gardera donc celle de la précédente date)
Et enfin, pour tes valeurs, tu ne peut pas sauvegarder ton % dans un int, vu que texte et virgule sont interdit, soit tu intval ta variable (42% se transformera donc en 42) soit tu change le type de ton champ.
Pour les sauts de ligne, vérifie simplement via un if que ta ligne n'est pas vide, sinon => continue
Pour la date, si tes formats sont bon, fais une regex, ou un test sur l'existence du caractère /, si tu le trouve, tu change ta variable $date (et tu fais un continue pour zapper l'insert), sinon tu le laisse comme il est (Il gardera donc celle de la précédente date)
Et enfin, pour tes valeurs, tu ne peut pas sauvegarder ton % dans un int, vu que texte et virgule sont interdit, soit tu intval ta variable (42% se transformera donc en 42) soit tu change le type de ton champ.
rv1962
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
Merci pour ta réponse. En fait j'ai réussi assez rapidement, faudrait que je poste le script au cas ou ça intéresse quelqu un.