FORUM Tom's Hardware » Programmation » PHP & MySQL & ASP » Insertion fichier xls dans base SQL
 

Insertion fichier xls dans base SQL

Il y a 230 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici



Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : Insertion fichier xls dans base SQL
 
JRB
Plus d'informations

bonjour.
Je viens chercher, grace à une <input file > nommé "xls" un fichier xls (excel) qui se compose de 2 colonnes.
Je veux transférer celui-ci dans une table nommé referencecompo.

voici mon script :
if($xls && $xls != "none" )
{ $nom_fichier="$xls"; // nom du fichier a convertir
$separateur="|"; // sigle de séparateur

$requete=mysql_query("SELECT * FROM referencecompo" )

if (file_exists($xls))
{
$fp = fopen($xls, "r" );
}
else
echo "Fichier introuvable <br>";
exit();


while (!feof($fp)) // On parcours le fichier
{
$ligne = fgets($fp,4096); // On se déplace d'une ligne
$liste = explode($separateur,$ligne); // Champs séparés par |


$col1 = $liste[0];
$col2 = $liste[1];


if (trim($col1)!= '') // si fin fichier


// INSERTION dans la base SQL "referencecompo"
$query="INSERT INTO referencecompo (nref,nomref,prix) values (' ','$col1','$col2')";

}
fclose($fp); // ferme fichier XLS
}

donc ça c un script que jsui aller chercher sur le net.
mais ya un truc que jcomprend pas du genre la ligne:
$ligne = fgets($fp,4096);

mais de toute façon ce script marche pas
Voilà donc si quelqu'un peut m'aider ça serait cool merci !


---------------
Jean-René futur web développeur(perso.normandnet.fr/berrenger)

Profil : Pointeur
Plus d'informations

si c'est pour le faire en local, tu peux utiliser phpmyadmin qui gere ca tres bien...

et puis au lieu de poser des betes questions sur des fonctions de php va d'abord te documenter :o ( http://www.php.net )


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
JRB
Plus d'informations

Je sais bien que phpmyadmin le fait très bien !
jfais un site web pour une boite jvais pas leur dire d'aller ds phpmyadmin pour transférer leur fichier excel !
Nan sérieusement si quelqu'un peut m'aider sur ce code ça serait cool merci.


---------------
Jean-René futur web développeur(perso.normandnet.fr/berrenger)
Webmaster Media-Lan
Plus d'informations

KangOl a écrit :



va d'abord te documenter :o ( http://www.php.net )



en effet, la réponse sur le fgets se trouve dans la doc du PHP...

Allez, je suis sympa:
"string fgets ( resource handle [, int length])"

fgets() retourne la chaîne lue jusqu'à la longueur length - 1 octet depuis le pointeur de fichier handle, ou bien la fin du fichier, ou une nouvelle ligne (qui inclue la valeur retournée), ou encore un EOF (celui qui arrive en premier). Si aucune longueur n'est fournie, la longueur par défaut est de 1 ko ou 1024 octets.

-----------

Quand tu dis "ça marche pas", tu peux détailler (ça fait rien du tout, ça prend que les 1ere lignes, ça affiche une erreur !!!)


---------------
- Xav - // :jap: ZEN du matin au soir, et du soir au matin... :jap: // Vice-Président Media-Lan --- Forum
JRB
Plus d'informations

bonjour
ouais nan en fait ce script marche impec à condition que le fichier excel soit enregistré en .csv. et je voudrais savoir pourkoi on est obligé de respecter cette condition.
pourkoi devoir absolument l'enregistrer en .csv et pourkoi ne peut-on pas le laisser en .xls
merci beaucoup !

Webmaster Media-Lan
Plus d'informations

paske CSV, veut dire que ce n'est plus un fichier Excel mais un fichier texte avec les séparation par "|" dans ton cas...

A la base c'est meme du "Comma Separated...", donc le séparateur était standardisé avec un ";", aujourd'hui Excel te propose d'importer ou exporter du CSV avec le séparateur de ton choix...

Si tu veux comprendre, tu ouvre ton ficheir xls avec un éditeur de texte, et tu ouvre ton fichier CSV dans la fenetre d'a coté avec ce meme editeur de texte (un truc du genre bloc-note)... ;)


---------------
- Xav - // :jap: ZEN du matin au soir, et du soir au matin... :jap: // Vice-Président Media-Lan --- Forum
Webmaster Media-Lan
Plus d'informations

maintenant si le coté CSV te gène paske tu a peur que tes utilisateur sache pas faire, tu leur rajoute un joli bouton tout fait sur ta page excel avec le code qui va bien derriere pour que ça enregistre le CSV avec le bon séparateur, le bon nom, et au bon endroit.. :)


---------------
- Xav - // :jap: ZEN du matin au soir, et du soir au matin... :jap: // Vice-Président Media-Lan --- Forum
JRB
Plus d'informations

ok donc en gros transférer directement du .xls est impossible...
merci

Webmaster Media-Lan
Plus d'informations

à ma connaissance , c'est impossible en effet...
de rien :D


---------------
- Xav - // :jap: ZEN du matin au soir, et du soir au matin... :jap: // Vice-Président Media-Lan --- Forum
Profil : Pointeur
Plus d'informations

il y a plus simple pour les CSV...
http://be.php.net/manual/fr/function.fgetcsv.php


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
Profil : Pointeur
Plus d'informations

---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
Webmaster Media-Lan
Plus d'informations

connaissai po celle-là, merci du conseil KangOl... ;)

Plus d'informations

JRB a écrit :

jfais un site web pour une boite jvais pas leur dire d'aller ds phpmyadmin pour transférer leur fichier excel !

T'es stagiaire j'éspère :sweat:


---------------
Hôtel** Restaurant Le Grillon | Ax-les-thermes

 

Profil : Pointeur
Plus d'informations

RiderCrazy a écrit :

T'es stagiaire j'éspère :sweat:

il y a de fortes chances..


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
JRB
Plus d'informations

ouais je suis stagiaire pourkoi ? c chokant à ce point d'utiliser EASYPHP ?


---------------
Jean-René futur web développeur(perso.normandnet.fr/berrenger)
Webmaster Media-Lan
Plus d'informations
n°7409
25-08-2004 à 14:36:03
Masquer