Charger une table mysql à patir de fichiers

Fermé
chaffar - 23 avril 2009 à 11:55
221285 Messages postés 2 Date d'inscription jeudi 23 avril 2009 Statut Membre Dernière intervention 23 avril 2009 - 23 avril 2009 à 15:21
Bonjour,
je suis en galère. je suis en pfe et il ne me reste plus beaucoup de temps
je veux charger une table mysql à partir des fichiers textes et excels qui se situent sur mon disque.
voici le code que j'ai récupé mais ça ne marche pas, j'ai un problème avec le SELF_PHP, je ne sais pas à quoi sert cette foncion.
merci pour l'aide

le code :


<html>
<head>
<title>Importer un fichier texte dans une bdd MySQL</title>
</head>
<body>
<h2>Importer un fichier texte dans une bdd MySQL</h2>

<?
switch($action)
{
/* LECTURE ET AJOUT DES DONNEES DANS LA TABLE */
case "ajouter":

/* Variables */
$bdd = "base"; /* Base de données */
$host= "localhost"; /* Hote (localhost en principe) */
$user= "user; /* Utilisateur */
$pass= "motpasse; /* Mot de passe */

/* Connexion bdd */
@mysql_connect($host,$user,$pass) or die("Impossible de se connecter à la base de données");
@mysql_select_db($bdd);

/* On cree la table */
if ($creertable)
{
$query = "CREATE TABLE $table( nom varchar(24),prenom varchar(24) )";
$result= MYSQL_QUERY($query);
}

/* On ouvre le fichier à importer en lecture seulement */
if (file_exists($fichier))
$fp = fopen("$fichier", "r");
else
{ /* le fichier n'existe pas */
echo "Fichier introuvable !<br>Importation stoppée.";
exit();
}

while (!feof($fp)) /* Et Hop on importe */
{ /* Tant qu'on n'atteint pas la fin du fichier */
$ligne = fgets($fp,4096); /* On lit une ligne */

/* On récupère les champs séparés par ; dans liste*/
$liste = explode( ";",$ligne);

/* On assigne les variables */
$nom = $liste[0];
$prenom = $liste[1];

/* Ajouter un nouvel enregistrement dans la table */
$query = "INSERT INTO $table VALUES('$nom','$prenom')";
$result= MYSQL_QUERY($query);

if(mysql_error())
{ /* Erreur dans la base de donnees, sûrement la table qu'il faut créer */
print "Erreur dans la base de données : ".mysql_error();
print "<br>Importation stoppée.";
exit();
}
else /* Tout va bien */
print "$nom $prenom <br>";
}

echo "<br>Importation terminée, avec succès.";

/* Fermeture */
fclose($fp);
MYSQL_CLOSE();

break;


/* FORMULAIRE DE CHOIX D'IMPORTATION */

default:
?>
<? echo "<form method=\"post\" action=\"$PHP_SELF\">"; ?>
Pour ajouter ton serveur il suffit de remplir ce formulaire
<table border="0" cellspacing="0" cellpadding="3">
<tr>
<td>Table :</td>
<td> <input type="text" name="table"> </td>
</tr>
<tr>
<td>Fichier :</td>
<td> <input type="text" name="fichier"> </td>
</tr>
<tr>
<td>Créer table ? :</td>
<td> <input type="checkbox" name="creertable" checked> </td>
</tr>
<tr>
<td></td>
<td> <input type="submit" name="submit" value="Et HoP !"> </td>
</tr>
</table>
<input type="hidden" name="action" value="ajouter">
</form>
<?
break;

}

?>

</body>
</html>
A voir également:

1 réponse

221285 Messages postés 2 Date d'inscription jeudi 23 avril 2009 Statut Membre Dernière intervention 23 avril 2009
23 avril 2009 à 15:21
Bonjour,
je suis en galère. je suis en pfe et il ne me reste plus beaucoup de temps
je veux charger une table mysql à partir des fichiers textes et excels qui se situent sur mon disque.
voici le code que j'ai récupé mais ça ne marche pas, j'ai un problème avec le SELF_PHP, je ne sais pas à quoi sert cette foncion.
merci pour l'aide

le code :


<html>
<head>
<title>Importer un fichier texte dans une bdd MySQL</title>
</head>
<body>
<h2>Importer un fichier texte dans une bdd MySQL</h2>

<?
switch($action)
{
/* LECTURE ET AJOUT DES DONNEES DANS LA TABLE */
case "ajouter":

/* Variables */
$bdd = "base"; /* Base de données */
$host= "localhost"; /* Hote (localhost en principe) */
$user= "user; /* Utilisateur */
$pass= "motpasse; /* Mot de passe */

/* Connexion bdd */
@mysql_connect($host,$user,$pass) or die("Impossible de se connecter à la base de données");
@mysql_select_db($bdd);

/* On cree la table */
if ($creertable)
{
$query = "CREATE TABLE $table( nom varchar(24),prenom varchar(24) )";
$result= MYSQL_QUERY($query);
}

/* On ouvre le fichier à importer en lecture seulement */
if (file_exists($fichier))
$fp = fopen("$fichier", "r");
else
{ /* le fichier n'existe pas */
echo "Fichier introuvable !<br>Importation stoppée.";
exit();
}

while (!feof($fp)) /* Et Hop on importe */
{ /* Tant qu'on n'atteint pas la fin du fichier */
$ligne = fgets($fp,4096); /* On lit une ligne */

/* On récupère les champs séparés par ; dans liste*/
$liste = explode( ";",$ligne);

/* On assigne les variables */
$nom = $liste[0];
$prenom = $liste[1];

/* Ajouter un nouvel enregistrement dans la table */
$query = "INSERT INTO $table VALUES('$nom','$prenom')";
$result= MYSQL_QUERY($query);

if(mysql_error())
{ /* Erreur dans la base de donnees, sûrement la table qu'il faut créer */
print "Erreur dans la base de données : ".mysql_error();
print "<br>Importation stoppée.";
exit();
}
else /* Tout va bien */
print "$nom $prenom <br>";
}

echo "<br>Importation terminée, avec succès.";

/* Fermeture */
fclose($fp);
MYSQL_CLOSE();

break;


/* FORMULAIRE DE CHOIX D'IMPORTATION */

default:
?>
<? echo "<form method=\"post\" action=\"$PHP_SELF\">"; ?>
Pour ajouter ton serveur il suffit de remplir ce formulaire
<table border="0" cellspacing="0" cellpadding="3">
<tr>
<td>Table :</td>
<td> <input type="text" name="table"> </td>
</tr>
<tr>
<td>Fichier :</td>
<td> <input type="text" name="fichier"> </td>
</tr>
<tr>
<td>Créer table ? :</td>
<td> <input type="checkbox" name="creertable" checked> </td>
</tr>
<tr>
<td></td>
<td> <input type="submit" name="submit" value="Et HoP !"> </td>
</tr>
</table>
<input type="hidden" name="action" value="ajouter">
</form>
<?
break;

}

?>

</body>
</html>
0