Importation fichier texte dynamique sous MySQL
:yaisse2:
Salut,
Je cherche à importer le contenu d’un fichier texte dans ma table Utilisateur sous MySQL.
Mon fichier texte se présente comme ci-dessous.
,Nasbe, 192.168.1.2,
,Jean, 192.168.1.3,
,Marc, 192.168.1.5,
,Jacques, 192.168.1.6,
,Louis, 192.168.2.5,
,Marcel, 192.168.3.5,
Il est dynamique, c'est-à-dire qu'il se modifie tout le temps. C'est pourquoi je ne fais pas un bête import mais que je cherche à l'importer de cette manière.
J'ai d'abord créer ce petit bout de script, qui fonctionne sans problème. Simplement j'aimerai pouvoir y rajouter la deuxième partie du code ci-dessous. A quelle niveau dois-je le faire. A chaque fois que j'essaie j'ai des erreurs parse error. Quelqu'un aurait-il une piste??
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| <?php
$Fichier = "C:\\Users\\Nasbe\\Desktop\\AdressageIP.txt";
if (file_exists($Fichier)) {
$fp = fopen($Fichier, "r");
flock ($fp, LOCK_SH); // Bloquer le fichier en écriture
$ligne = fgets($fp, 1000);
$resultat = $ligne;
while (!feof($fp)){
$ligne = fgets ($fp,1000);
$resultat .= $ligne;
}
echo $resultat;
flock ($fp, LOCK_UN); // Bloquer le fichier en lecture
fclose ($fp);
}
?>
/*
$bd ='gestionacces';
$lien = mysql_pconnect ('localhost', 'root', '');
mysql_select_db($bd);
$table = 'utilisateurs';
if ($lien == FALSE){
echo "connexion impossible à la base $bd";
} else {
foreach ($resultat) {
$champs = explode(",", $resultat);
$query = "INSERT INTO utilisateurs";
$query .= "(IdUtilisateur, NomUtilisateur, IP)";
$query .= "VALUES";
$query .= "(".$champs[0].", '".$champs[1]."', '".$champs[2]."')";
mysql_query($query);
mysql_close($lien);
}
?> |
Merci en tout cas d'avoir pris le temps de me lire.
Problème parse error ligne33
Oui effectivement, erreur de fatigue. Voilà maintenant que j'ai corrigé, j'ai toujours un problème de parse error. Je comprends pas, si tu pouvais me débloquer, ca serait vraiment cool.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| $Fichier = "C:\\Users\\Nasbe\\Desktop\\AdressageIP.txt";
if (file_exists($Fichier)) {
$fp = fopen($Fichier, "r");
flock ($fp, LOCK_SH); // Bloquer le fichier en écriture
$ligne = fgets($fp, 1000);
$resultat=array();
$resultat = $ligne;
while (!feof($fp)){
$ligne = fgets ($fp,1000);
$resultat.= $ligne;
}
flock ($fp, LOCK_UN); // Bloquer le fichier en lecture
fclose ($fp);
}
$bd ='gestionacces';
$lien = mysql_pconnect ('localhost', 'root', '');
mysql_select_db($bd);
$table = 'utilisateurs';
if ($lien == FALSE){
echo "connexion impossible à la base $bd";
} else {
foreach ($resultat) {
$champs = explode(",", $resultat);
$query = "INSERT INTO utilisateurs";
$query .= "(IdUtilisateur, NomUtilisateur, IP)";
$query .= "VALUES";
$query .= "(".$champs[0].", '".$champs[1]."', '".$champs[2]."')";
mysql_query($query);
}
}
mysql_close($lien);
?> |
Chargement base pas terrible
Ok c'est nickel, ca fonctionne en partie.
Ce que j'aimerai c'est qu'il m'incrémente automatiquement l'ID. Je m'explique, ma table est composée de trois champs
ID, NomUtilisateur, IP.
Mon fichier texte est présenté comme ci-dessous.
,Nasbe, 192.168.1.2,
,Jean, 192.168.1.3,
,Marc, 192.168.1.5,
,Jacques, 192.168.1.6,
,Louis, 192.168.2.5,
,Marcel, 192.168.3.5,
hors si je le laisse comme ca, il ne va pas faire d'insertion dans la table. Je suis obligé de rentrer les numéros moi-même à la main de cette manière. Alors que si je fais un importation manuelle avec le fichier ci-dessus., il m'incrémente automatiquement les numéros. Aurait-tu une piste à ce niveau.
1 ,Nasbe, 192.168.1.2,
2,Jean, 192.168.1.3,
3,Marc, 192.168.1.5,
4,Jacques, 192.168.1.6,
5,Louis, 192.168.2.5,
6,Marcel, 192.168.3.5,
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| <?php
$Fichier = "C:\\Users\\Nasbe\\Desktop\\AdressageIP.txt";
if (file_exists($Fichier)) {
$resultat=file($Fichier);
}
$bd ='gestionacces';
$lien = mysql_pconnect ('localhost', 'root', '');
mysql_select_db($bd);
$table = 'utilisateurs';
if ($lien == FALSE){
echo "connexion impossible à la base $bd";
} else {
foreach ($resultat as $res) {
$champs = explode(",", $res);
$query = "INSERT INTO utilisateurs";
$query .= "(IdUtilisateur, NomUtilisateur, IP)";
$query .= "VALUES";
$query .= "(".$champs[0].", '".$champs[1]."', '".$champs[2]."')";
mysql_query($query);
}
}
mysql_close($lien);
?> |