mettre le contenu d'un fichier(mot par mot) dans une bdd

Nouveau WRInaute
bonjour,

j'ai un fichier texte contenant tous les mots du dictionnaire word et j'aimerais les mettres dasn une base de données, de sorte que chaque mot soit un enregistrement et qu'il ne puissent y avoir de doublons(car je vais le faire pour plusiers fichiers).

Quelqu'un à une idée ?
 
WRInaute accro
Si c'est du php/mysql et que tous les mots dans le fichier texte sont séparés par le même "séparateur" (tiens donc :)), c'est jouable.

Exemple avec un fichier texte dont les données sont séparées par un espace.

fichier inc.php
Code:
<?
//A REMPLIR*********
  $utilisateur = "";
  $motdepasse  = "";
  $base        = "";
  $serveur     = "";
//******************

  function dbConnect(){
    global $utilisateur, $motdepasse, $serveur,$base;
    $connexion = @mysql_connect($serveur, $utilisateur, $motdepasse);
	@mysql_select_db($base,$connexion);
    return $connexion;
  }
?>

fichier word.php
Code:
<HTML><body>
<?php
include("inc.php");

// REMPLACER "nom_du_fichier_texte"
$fp=fopen("nom_du_fichier_texte.txt","r");// ouverture du fichier

while(!feof($fp)){ // tant que pas en fin de fichier
   $lecture=fgets($fp, 4096); // stockage dans $lecture
   $tab=explode(" ",$lecture); // on met dans un tableau les données séparées par un espace
   $nb_elem=count($tab)-1; // nbre d'éléments du tableau
   for($i=0;$i<$nb_elem;$i++){
      // enregistrement des éléments dans une base de données mysql
      // avec une table "word" contenant le champ "mot_word"
      // connexion à la base de données mysql
      $lien = dbConnect();
      // requête d'insertion
      $req = "INSERT INTO word (mot_word) VALUES \"".$tab[$i]."\"";
      //exécution de la requête
      mysql_query($lien,$req);      
      mysql_close();
   }
}
fclose($fp);// fermeture fichier
?>
</body></HTML>
 
WRInaute accro
@mr_go : instructions SQL à mettre dans PHPMyAdmin par exemple :

Code:
-- Structure de la table `word`
-- 

CREATE TABLE `word` (
  `id_word` int(20) NOT NULL auto_increment,
  `mot_word` text collate latin1_general_ci NOT NULL,
  PRIMARY KEY  (`id_word`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1 ;
 
WRInaute passionné
sur ton champ mot_word :
- remplace text par varchar(XX)
- supprimme le collate sur la colonne il ne sert à rien
- autorise les NULL dans le champ
- rajoute une clause UNIQUE
 
Discussions similaires
Haut