php: Gestion de fichier txt a la base mysql - PHP - Programmation
Marsh Posté le 21-02-2012 à 00:33:10
Hello,
1. Pourquoi un $_POST?
2. Il ne manquerait pas une fonction dans ton code là? parce que prepareChaine() n'est défini nul part...
3. Ta condition else l.20 s'ouvre mais ne se ferme pas.
4. Tu mets dans $req une chaine à la l.25, puis à la ligne suivante tu y mets directement une nouvelle chaine, il y a un problème net ici.
Sinon pour vérifier ici simplement que ton $var_id n'est pas déjà présent dans ta base, après ta requete l.14, tu peux appliquer la fonction mysql_num_rows() à ta ressource $sql, si le résultat est superieur à 0 alors l'id_eleve est déjà existant.
Marsh Posté le 21-02-2012 à 10:52:44
Si c'est possible, tu ferais mieux de travailler avec un fichier au format csv avec un séparateur style ;. Ca évitera de supposer que ton ID fait forcément 11 caractères. Quid de ton script si l'ID fait plus ou moins.
En plus, php a déjà une fonction native permettant de lire un fichier csv. Ton script sera donc plus sûr.
Ensuite, ben une simple boucle sur chaque ligne lue, avec explode(";", $Ligne), t'auras dans un tableau ton ID et ton prénom et ensuite, tu fais le traitement approprié
Marsh Posté le 21-02-2012 à 11:32:35
xaeon a écrit : Hello, |
bonjour;
pour $_POST j'ai deja une fonction dans un fichier qui contient que les fonction juste en copiant j'ai pas mis le require (....)
j'ai changer mon code comme ceci mais je trouve aussi le problème :
en executant le scirpt il n' y pas une insertion dans la table et en plus un msg apparait :Column count doesn't match value count at row 1
voila mon script:
Code :
|
???
Marsh Posté le 21-02-2012 à 11:35:01
ben forcément, après VALUES, tu mets entre les ( ) que l'ID au lie des 2 valeurs ...
Tu lis un peu la doc de temps en temps?
Marsh Posté le 21-02-2012 à 11:35:20
rufo a écrit : Si c'est possible, tu ferais mieux de travailler avec un fichier au format csv avec un séparateur style ;. Ca évitera de supposer que ton ID fait forcément 11 caractères. Quid de ton script si l'ID fait plus ou moins. |
bonjour,
En faite je n'est aucune idée sur un fichier au format csv
Pouriez-vous m'aidez à changer mon code ???
Marsh Posté le 21-02-2012 à 11:36:40
Ca serait aussi mieux de mettre des binds dans les requêtes (+ de perfs) et de quoter ce qui sort du fichier (sécurité).
Bref c'est plus propre et dans les règles de l'art.
Marsh Posté le 21-02-2012 à 11:37:50
MEI a écrit : Ca serait aussi mieux de mettre des binds dans les requêtes (+ de perfs) et de quoter ce qui sort du fichier (sécurité). |
merci de me répondre et commet ca??
Marsh Posté le 21-02-2012 à 11:43:45
rufo a écrit : ben forcément, après VALUES, tu mets entre les ( ) que l'ID au lie des 2 valeurs ... |
les deux valeur se trouvent dans le fichier donc je doit mettre le $var_id et le $var_titre_archt
j'ai bien changer ma requête
Code :
|
mais l'insertion n'est pas faite??
Marsh Posté le 21-02-2012 à 12:56:41
Déjà, les ( ) en début et fin de la requête sql sont inutiles. Ensuite, faut penser à échapper les ' si y'en a dans le titre.
Marsh Posté le 21-02-2012 à 12:57:42
manoula a écrit : |
ben tu cherches dans google ce qu'est un fichier csv (même si dans mon post, j'ai donné déjà une petite indication sur ce que c'était)...
Marsh Posté le 22-02-2012 à 09:24:14
rufo a écrit : Déjà, les ( ) en début et fin de la requête sql sont inutiles. Ensuite, faut penser à échapper les ' si y'en a dans le titre. |
bonjour voila mon code complet après modification :
Code :
|
alors maintenant quand j’exécute l'erreur est : Duplicata du champ '0' pour la clef 1 !!
mon fichier contient les id et les nom en arabe :
0 ???? ????
2 ???
4 ????
5 ???? ?? ????
...
en faite il fait l'insertion que du premier enregistrement mais si seulement si je change le 1er(enregistrement) et le 2eme par des nom en français il insère les 2 avec le 3eme en arabe !!!
Et si les 3 premier enregistrement en français il insère les 3 avec le 4eme en arabe !!!
Marsh Posté le 22-02-2012 à 10:10:47
T'as sans doute aussi un pb de charset. Et je ne vois toujours pas dans ton code où tu échappes les caractères pouvant poser des pbs lors de l'insertion concernant le nom de la personne
Marsh Posté le 20-02-2012 à 16:31:44
Bonjour,
j'ai un fichier txt que je doit insérer son contenu dans la base mysql, ce fichier contient:
1) l'identificateur de l'élevé (id_eleve)
2) le nom de l'élevé
mon script doit ouvrir le fichier lire le contenu et insérer dans la table élevé avec des condition:
- si l' id_eleve existe dans la table
on va supprimer l'ancien et ajouter le nouveau id_eleve
si non on va ajouter tous simplement
voila mon script
mon problème que se script ne fonctionne pas !!!
Aidez moi a le corriger
merci a vous tous