PCFacile Index du Forum
PCFacile

 
PCFacile Index du ForumFAQRechercherS’enregistrerConnexion

:: HTML+PHP import de fichier en bdd ::

 
Poster un nouveau sujet   Répondre au sujet    PCFacile Index du Forum -> Programmation -> Création du HTML
Sujet précédent :: Sujet suivant  
Auteur Message
kirk
Invité

Hors ligne




MessagePosté le: Mer 10 Juin - 08:42 (2009)    Sujet du message: HTML+PHP import de fichier en bdd Répondre en citant

je crois que ce code est plus intéressant et j'attend hugo pour l'expliquer en détail :
Code:


<html>
<head>
<title></title>
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body BGCOLOR="#FFCC99" text="#66CCCC" link="#FF0000" vlink="#FF0033" alink="#FF0033">
<?php  include "head.php"; ?>
<br>

<?php
require "zvariable.php";
require "conf.inc.php3";
require "zreplace.php";
require "zread.php";

if(isset($_POST['bouton']))
{
   $table=$_POST['table'];
   $db=$_POST['base'];
   $db_link = mysql_connect($serveur,$user,$passwd);
   mysql_select_db( $db, $db_link );
   if (!$db_link) echo "Erreur connection serveur";
   $queryTri="SHOW COLUMNS FROM $table LIKE 'tri'";
   $retourTri=mysql_query($queryTri);
   $lignes=mysql_num_rows($retourTri);
   if($lignes==0)
   {
      $query1="ALTER TABLE $table ADD tri VARCHAR( 1 ) NOT NULL";
      $query2="UPDATE $table SET tri='-' ";
      $retour1=mysql_query($query1) or die (mysql_error()."<br /><br />".$query1);
      $retour2=mysql_query($query2) or die (mysql_error()."<br /><br />".$query2);
   }
   else
   {
      $query2="UPDATE $table SET tri='-' ";
      $retour2=mysql_query($query2) or die (mysql_error()."<br /><br />".$query2);
   }
?>
<table width="620" border="1" cellspacing="0" cellpadding="0" align="center">
  <tr>
    <td bordercolor="#99a7f6" bgcolor="#445291" align="center">
   Le champ a été ajouté</td></tr></table>
   <center><h1><a href="index.php">RETOUR</a></h1></center> <?php
   exit;

}

$i1=$_GET['i1'];
$i2=$_GET['i2'];
if ($nameexport != $db && $nameexport != "")
    $db=$nameexport;

if ($nameTable !="") $fichier=$nameTable;

$db_link = mysql_connect($serveur,$user,$passwd);
if (!$db_link) echo "Erreur connection serveur";

if ($i1==1)                        // suppression de la base de donnée si elle existe
{
   mysql_select_db( $db, $db_link );
   mysql_query( "DROP TABLE $fichier", $db_link );
}

if($i2==0)
{
mysql_query( "CREATE DATABASE $db", $db_link );

// Creation de la base de donnée
$ARRAY=read_csv_entete("$dossier$nom_fichier",$separateur);      // lit le fichier
$heigh=sizeof($ARRAY);
$width=sizeof($ARRAY[0]);
$query = "CREATE TABLE $fichier (";            // prepare creation table
for($j=0;$j<$width;$j++)
{
$champ=$_GET['c'.$j];
   $souschaine="{$ARRAY[0][$j]{0}}";   
   switch($souschaine)                        // si c'est une chaine numerique
   {
      case "0":
      case "1":
      case "2":
      case "3":
      case "4":
      case "5":
      case "6":
      case "7":
      case "8":
      case "9":
         $ARRAY[0][$j]="_".$ARRAY[0][$j];
      break;

      case "":                  // si nom colonne vide
         $ARRAY[0][$j]="col".$j;
      break;
   }

 $ARRAY[0][$j]=correction_accents($ARRAY[0][$j]);
 
 $query .= "{$ARRAY[0][$j]}";
 $pos=str_pad("c", strlen($j) + 1, $j, STR_PAD_RIGHT);

 if ($champ==1)
 $query .= " date NOT NULL";
 else
 $query .= " text NOT NULL";


 if ($j != $width-1) $query .= ", ";
}
$query .= ");";

mysql_select_db( $db, $db_link );                        // selectionne la base
$rep=mysql_query( $query, $db_link );                         // execute creation Table
if (!$rep)    
   $infotable="Impossible de crée la table (Probleme Structure ou Déjà existante)";
else
   $infotable="creation correcte";
}
//------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------
$requete=mysql_select_db($db,$db_link);                  // selectionne la table
if ( $fp=fopen("$dossier$nom_fichier","r") )
{
      set_time_limit($maxtimephp);

   $time_debut = time(); // Stockage de l'heure de début d'execution

   $cpt_import=0;
   //-----

   $DATA[]=$ARRAY[0];                        // garde en memoire
  //   $ARRAY[0]=fgetcsv($FILE,1024,$separateur);      // saute la 1ere ligne

$nbre_ligne=0;

//support des dates
//utilisation d'un fichier temporaire pour stocker le fichier d'imporation avec dates converties
if (!($fichier_temp = fopen("liste/fichier.csv","w")))
   echo "Echec de l'ouverture du fichier";
else
{
   //format des dates à trouver dans le fichier
   $pattern ="#([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})#";
   //tant que le fichier n'est pas fini
   while(!feof($fp))
   {
      //extraction de chaque ligne du fichier csv    
      $ligne=fgets($fp, 10000);
      //remplacement de chaque date trouvée par le bon format de date grâce aux blocs parenthésé
      $nouvelle = preg_replace($pattern, '$3-$2-$1', $ligne);
      //écriture de la nouvelle ligne dans le fichier temporaire
      fwrite($fichier_temp, $nouvelle);
   }
}

//si création=>case mise à jour non cochée
if($i2==0)
{   
//si une clé primaire est renseignée
if($cle1!="")
{
   //ajout d'une clé primaire
   $queryPrimaire="ALTER TABLE $nameTable ADD PRIMARY KEY ( $cle1 ( 40 ) )  ";
    $retour=mysql_query($queryPrimaire) or die (mysql_error()."<br /><br />".$queryPrimaire);
}
//chargement du fichier csv
$chemin_fichier=$_SERVER['DOCUMENT_ROOT'] . "/xlsmagique/liste/fichier.csv";                              // Ajouter les données a la table
 $query="LOAD DATA INFILE '$chemin_fichier'
  REPLACE INTO TABLE $nameTable
   FIELDS TERMINATED BY ';'
   LINES TERMINATED BY '\n'
   IGNORE 1 LINES ";
$retour1=mysql_query($query) or die (mysql_error()."<br /><br />".$query);

}

//si mise à jour
if($i2==1)
{
   
//vérification sur l'existence d'une clé primaire
//description de la structure
$query1="DESCRIBE $nameTable";
$retour = mysql_query($query1) or die (mysql_error()."<br /><br />".$query1);
$cle_primaire = '';
//parcours des champs de la structure
while($donnees = mysql_fetch_array($retour))
{
   //si le champ clé est défini en tant que clé primaire
    if($donnees['Key'] == 'PRI')
   {   
      //récupération du nom du champ défini en clé primaire
          $cle_primaire = $donnees['Field']; //Nom de la colonne
        break;
    }
}
//si une clé primaire est déjà définie
if($cle_primaire!="")
{
   //on efface l'ancienne et on ajoute la nouvelle
   $queryPrimaire="ALTER TABLE $nameTable DROP PRIMARY KEY, ADD PRIMARY KEY ( $cle1 ( 40 ) )  ";
    $retour=mysql_query($queryPrimaire) or die (mysql_error()."<br /><br />".$queryPrimaire);
}
//si pas de clé primaire
else
{
   //on ajoute la nouvelle clé primaire
   $queryPrimaire="ALTER TABLE $nameTable ADD PRIMARY KEY ( $cle1 ( 40 ) )  ";
    $retour=mysql_query($queryPrimaire) or die (mysql_error()."<br /><br />".$queryPrimaire);
}

//chargement du ficheir csv
$chemin_fichier=$_SERVER['DOCUMENT_ROOT'] . "/xlsmagique/liste/fichier.csv";                         
  $query="LOAD DATA LOCAL INFILE '$chemin_fichier'
  REPLACE INTO TABLE $nameTable
   FIELDS TERMINATED BY ';'
   LINES TERMINATED BY '\n'
   IGNORE 1 LINES";
$retour1=mysql_query($query) or die (mysql_error()."<br /><br />".$query);
if(retour1)
   $infotable="Mise à jour correcte";
else $infotable="Impossible de mettre à jour";

}
}

fclose($fichier_temp);
//effacement du fichier temporaire
unlink($_SERVER['DOCUMENT_ROOT']."/xlsmagique/liste/fichier.csv");
mysql_close( $db_link);                        // ferme la connection SQL
?>

<table width="620" border="1" cellspacing="0" cellpadding="0" align="center">
  <tr>
    <td bordercolor="#99a7f6" bgcolor="#445291" align="center"><br>

      Nom du fichier : <?php  echo $nom_fichier; ?><br><br>
      Table <?php  echo "$fichier : $infotable"; ?><br><br>
      <span class="stitre">Importation SQL terminé</span> <br>
      <br>
    </td>
  </tr>
  <tr>
  <td bordercolor="#99a7f6" bgcolor="#445291" align="center">
  <form action="import_execution.php" method="post" >
  <input type="hidden" name="table" value="<?php echo $fichier;?>" />
   <input type="hidden" name="base" value="<?php echo $db;?>" />
  <input type="submit" name="bouton" value="Ajouter le champ pour les tris" /></form>
</table><br>


<br>
<?php  include "footer.php"; ?>
<br>
<br>
<center><h1><a href="index.php">RETOUR</a></h1></center>   <br>

</body>
</html>

en gros c'est pour faire l'import d'un fichier au format excel en base de données ça vous plait?


Revenir en haut
Publicité






MessagePosté le: Mer 10 Juin - 08:42 (2009)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    PCFacile Index du Forum -> Programmation -> Création du HTML Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers:  

Index | Creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
onyx © theme by larme d'ange 2006
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com