par
zeus » 10 juin 2005, 17:12
Ma table fait 109 champs !!!! Tu es encore sûr de vouloir la description de la table ?
Je te donne un bout de code :
Transfert pur avec LOAD DATA INFILE
$o_DB = mysql_connect("localhost", "root", "");
mysql_select_db("venus", $o_DB);
$debut = getMicroTime();
//Transfert depuis le fichier "venus013.txt" vers la table "Cabinets"
echo "Fichiers 'Venus013.txt' => table 'Cabinets'<br>";
//On extrait le contenu du fichier + vérification
if (!$a_file = file($racine."venus013.txt")) {
//Affichage d'un message d'erreur si problème à l'extraction du fichier
echo "<font color='#FF0000' size='+2'>Erreur lors de l'ouverture du fichier 'Venus013.txt'<br>L'opération est abandonnée</font>";
exit;
} else { //Extraction du fichier réussi
$message = "";
foreach ($a_file as $index => $val) {
//Ces 2 lignes permettent d'enlever le caractère ; de fin de
// chaine puis de découper la chaine selon le caractère ;
$ligne = preg_replace('#(.*);#', "\\1",$val);
$a_ligne = preg_split('#;#', $ligne);
$nb_champ = count($a_ligne);
//On vérifie que la ligne contient bien 35 champs
if ($nb_champ <> 109) {
$message .= "<br>La ligne n°".($index+1)." contient ".$nb_champ." champs";
}
}
if ($message <> "") {
//Affichage d'un message d'erreur si problème à l'extraction du fichier
echo "Le fichier 'venus013.txt' n'est pas valide:".$message;
} else {
$str_requete = "LOAD DATA INFILE '".$racine."venus013.txt'
INTO TABLE cabinets
FIELDS TERMINATED BY ';' ENCLOSED BY '\"' ESCAPED BY '\'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(NCODC, HEURES, ASSISTANCEMATERIELLE, FAX, DISPO1, REINFORMATISATION, DISPO2, DISPO3, BANQUE, ADRESSE_BANQUE,
NCODC_AUX_CP_BANQUE, CODE_BANQUE, NUMERO_COMPTE, CODE_GUICHET, CLE_BANQUE, PROFESSION_FACTURATION, MAINTENANCE_SUR_SITE,
TELEPHONE, NOM_FACTURATION, NOM_ETIQUETTE, PRENOM_ETIQUETTE, ADRESSE1_ETIQUETTE, ADRESSE2_ETIQUETTE, LIEN_CP_FACTURATION,
PROFESSION_ETIQUETTE, LIEN_POLITESSE_ETIQ, ADRESSE1_FACTURATION, ADRESSE2_FACTURATION, LIEN_CP_ETIQUETTE, LIEN_POLITESSE_FACT,
NB_LICENCES, NB_POSTES_RESEAU, FACONNIER, LIEN_LOG_TELETRANS, LIEN_CC_TELETRANS, LIEN_PROFESSION_DEF, LIEN_VERSIONEQUINOX,
ABREV_COMMUNE, CODE_POSTAL, COMMUNE, BUREAU_DISTRIBUTEUR, MEDECIN, FINESS_MEDECIN, ABREV_CAISSE, LIBELLE_CAISSE,
TYPE_DE_SOIN, LIB_SOIN, COEF_SOIN, COMMENTAIRE, POINTEUR_CLES_EQUINOX, LIEN_UTILISATEUR, ANNEE_ASSIST_DEP, INTERDIT,
UTILISE_PLUS, DATE_CREATION_CABINET, TELEPHONE_DOMICILE, LIEN_AGA, LIEN_LOG_REINFO, DATE_COMMANDE, HISTORIQUE, PRIX_LICENCE,
MONTANT_COMMANDE, MONTANT_ACOMPTE, TELETRANS, EXPLIC_COMMANDE, FINANCEMENT, LIEN_PARRAIN, DATE_LIMITE, LIEN_CADEAU_PARRAIN,
EXCLU, MONTANT_REMISE, DATE_DEMO, DATE_CNIL, NUMERO_CNIL, GROUPE, LIEN_JOINT, LIEN_ACTIONSAV, DATE_MATERIEL, LIEN_PROSPECT,
LIBELLE_RIB, PRELEVEMENT, DATE_CADEAU_PAR, DATE_INSTALLATION, TELEPHONE_BANQUE, PROVIDER, LECTEURCARTE, ONDULEUR,
ORDINATEUR, ECRAN, IMPRIMANTE, LIEN_COMMERCIAL, DATE_LIVRAISON, DATE_REVISION, LIEN_TECHNICIEN, FORMAT_LECTEUR,
TYPE_LECTEUR, REPERTOIRE_EQUINOX, ANNEE_SAUVEGARDE, TYPE_MODEM, DATE_DOC_TELETRANS, MICRO_FOURNI, ECRAN_FOURNI,
IMPRIM_FOURNI, MODEM_FOURNI, LECT_FOURNI, ONDUL_FOURNI, GARANTIE, LIEN_FORMATEUR, TLA)";
echo $str_requete;
mysql_query($str_requete) or die(mysql_error());
/*if($o_db->execute($str_requete, 1))
echo "<font color='#0000FF'>Transfert réussi</font>";
else
echo "<font color='#0000FF'>Transfert réussi</font>";*/
}
}
$duree = getMicroTime()-$debut;
printf("<br>Durée du traitement: %.3f secondes", $duree);
flush();
[/size]
Ma table fait 109 champs !!!! Tu es encore sûr de vouloir la description de la table ?
Je te donne un bout de code :
Transfert pur avec LOAD DATA INFILE
[size=75][php]$o_DB = mysql_connect("localhost", "root", "");
mysql_select_db("venus", $o_DB);
$debut = getMicroTime();
//Transfert depuis le fichier "venus013.txt" vers la table "Cabinets"
echo "Fichiers 'Venus013.txt' => table 'Cabinets'<br>";
//On extrait le contenu du fichier + vérification
if (!$a_file = file($racine."venus013.txt")) {
//Affichage d'un message d'erreur si problème à l'extraction du fichier
echo "<font color='#FF0000' size='+2'>Erreur lors de l'ouverture du fichier 'Venus013.txt'<br>L'opération est abandonnée</font>";
exit;
} else { //Extraction du fichier réussi
$message = "";
foreach ($a_file as $index => $val) {
//Ces 2 lignes permettent d'enlever le caractère ; de fin de
// chaine puis de découper la chaine selon le caractère ;
$ligne = preg_replace('#(.*);#', "\\1",$val);
$a_ligne = preg_split('#;#', $ligne);
$nb_champ = count($a_ligne);
//On vérifie que la ligne contient bien 35 champs
if ($nb_champ <> 109) {
$message .= "<br>La ligne n°".($index+1)." contient ".$nb_champ." champs";
}
}
if ($message <> "") {
//Affichage d'un message d'erreur si problème à l'extraction du fichier
echo "Le fichier 'venus013.txt' n'est pas valide:".$message;
} else {
$str_requete = "LOAD DATA INFILE '".$racine."venus013.txt'
INTO TABLE cabinets
FIELDS TERMINATED BY ';' ENCLOSED BY '\"' ESCAPED BY '\'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(NCODC, HEURES, ASSISTANCEMATERIELLE, FAX, DISPO1, REINFORMATISATION, DISPO2, DISPO3, BANQUE, ADRESSE_BANQUE,
NCODC_AUX_CP_BANQUE, CODE_BANQUE, NUMERO_COMPTE, CODE_GUICHET, CLE_BANQUE, PROFESSION_FACTURATION, MAINTENANCE_SUR_SITE,
TELEPHONE, NOM_FACTURATION, NOM_ETIQUETTE, PRENOM_ETIQUETTE, ADRESSE1_ETIQUETTE, ADRESSE2_ETIQUETTE, LIEN_CP_FACTURATION,
PROFESSION_ETIQUETTE, LIEN_POLITESSE_ETIQ, ADRESSE1_FACTURATION, ADRESSE2_FACTURATION, LIEN_CP_ETIQUETTE, LIEN_POLITESSE_FACT,
NB_LICENCES, NB_POSTES_RESEAU, FACONNIER, LIEN_LOG_TELETRANS, LIEN_CC_TELETRANS, LIEN_PROFESSION_DEF, LIEN_VERSIONEQUINOX,
ABREV_COMMUNE, CODE_POSTAL, COMMUNE, BUREAU_DISTRIBUTEUR, MEDECIN, FINESS_MEDECIN, ABREV_CAISSE, LIBELLE_CAISSE,
TYPE_DE_SOIN, LIB_SOIN, COEF_SOIN, COMMENTAIRE, POINTEUR_CLES_EQUINOX, LIEN_UTILISATEUR, ANNEE_ASSIST_DEP, INTERDIT,
UTILISE_PLUS, DATE_CREATION_CABINET, TELEPHONE_DOMICILE, LIEN_AGA, LIEN_LOG_REINFO, DATE_COMMANDE, HISTORIQUE, PRIX_LICENCE,
MONTANT_COMMANDE, MONTANT_ACOMPTE, TELETRANS, EXPLIC_COMMANDE, FINANCEMENT, LIEN_PARRAIN, DATE_LIMITE, LIEN_CADEAU_PARRAIN,
EXCLU, MONTANT_REMISE, DATE_DEMO, DATE_CNIL, NUMERO_CNIL, GROUPE, LIEN_JOINT, LIEN_ACTIONSAV, DATE_MATERIEL, LIEN_PROSPECT,
LIBELLE_RIB, PRELEVEMENT, DATE_CADEAU_PAR, DATE_INSTALLATION, TELEPHONE_BANQUE, PROVIDER, LECTEURCARTE, ONDULEUR,
ORDINATEUR, ECRAN, IMPRIMANTE, LIEN_COMMERCIAL, DATE_LIVRAISON, DATE_REVISION, LIEN_TECHNICIEN, FORMAT_LECTEUR,
TYPE_LECTEUR, REPERTOIRE_EQUINOX, ANNEE_SAUVEGARDE, TYPE_MODEM, DATE_DOC_TELETRANS, MICRO_FOURNI, ECRAN_FOURNI,
IMPRIM_FOURNI, MODEM_FOURNI, LECT_FOURNI, ONDUL_FOURNI, GARANTIE, LIEN_FORMATEUR, TLA)";
echo $str_requete;
mysql_query($str_requete) or die(mysql_error());
/*if($o_db->execute($str_requete, 1))
echo "<font color='#0000FF'>Transfert réussi</font>";
else
echo "<font color='#0000FF'>Transfert réussi</font>";*/
}
}
$duree = getMicroTime()-$debut;
printf("<br>Durée du traitement: %.3f secondes", $duree);
flush();[/php][/size]