2010-08-13 5 views
0

J'ai une colonne avec des données sérialisées dans la table mysql.PHP MYSQL import exc excellentes données sérialisées

Comment importer le fichier Excell où je colonne comme les couleurs où sont stockées les données serilized pour checboxes dans mysql

et doivent importer à partir d'Excel colonne fichier

couleurs couleurs couleurs

bleu blanc jaune -> sérialisé en 1 colonne dans mysql

la structure du fichier excell peut être différente.

grâce

table mysql
id | nom | couleurs
1 | maison | sérialisé (jaune, bleu ...)

fichier excell
nom | couleur | couleur
maison | jaune | bleu

Je ne suis pas sûr est la bonne façon de gérer le fichier Excell peut-être quelque chose comme ceci:

nom

| couleur
maison | (Jaune, bleu)

+0

Est-ce xls ou xlsx fichiers? Voulez-vous faire cela sur Windows avec Excel installé, ou sur Linux? – Mchl

+0

il n'y a pas encore de fichiers pourrait être tout xls ou csv j'ai php/flash télécharger la classe sur le serveur que je dois lire le fichier et c'est amusant commencer. – user419503

Répondre

0

Essayez d'utiliser Spreadsheet_Excel_Writer: link text

+0

ne peut pas utiliser pear avec joomla – user419503

+1

Joomla est mauvais. Il ne convient pas à OOP. – pltvs

0

Convertir la feuille de calcul au format CSV. Vous pouvez lire le contenu du fichier avec fgetcsv() et l'enregistrer dans la db sérialisée.

Certains code:

$dbh = new PDO($connectionstring, $username, $password); 
$handle = fopen('foo.csv', 'r'); 
fgetcsv($handle); // omit the first line 
while($row = fgetcsv($handle)) { 
    $name = array_shift($row); 
    $stmt = $dbh 
    ->prepare('INSERT INTO table(name, data) VALUES(:name, :data);'); 
    $stmt->bindParam(':name', $name, PDO::PARAM_STR); 
    $stmt->bindParam(':data', serialize($row), PDO::PARAM_STR); 
    $stmt->execute(); 
} 
+0

question est de savoir comment trouver la colonne à sérialiser? pourriez-vous s'il vous plaît donner un exemple? – user419503

+0

Je dois identifier en quelque sorte l'en-tête avec les données à sérialiser – user419503

+0

pouvez-vous me donner un exemple? – tamasd

Questions connexes