pourquoi t'a deux boucles ... tu fais des explode sur ; mais le fgetcsv sur ,, le require_once dans la boucle, le $i qui sert a rien, les paramètres de requete même pas échappés, c'est franchement du grand nawak ...
pourquoi t'a deux boucles ... tu fais des explode sur ; mais le fgetcsv sur ,, le require_once dans la boucle, le $i qui sert a rien, les paramètres de requete même pas échappés, c'est franchement du grand nawak ...
Comme tu as fait avec les séparateurs utilisés
Ou en plus élégant celle d'Ericd69, je connaissais pas avec les {}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 //$date2=explode("/",$donnee[2]); //$donnee[2]=$date2[2].'-'.$date2[1].'-'.$date2[0];
Meuuh en AI à l'INRA
Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)
disons que tu peux mettre un seul indice directement, php est permissif, mais si tu veux en mettre plusieurs c'est une écriture possible pour ne pas écrire de multiple "." partout... ça ne marche que pour des variables avec ou sans indices pas pour des calculs...
le problème c'est qu'amandine tripatouille son code plutot que de copié/collé le code corrigé...
du coup ça induit d'autres problèmes...
soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...
Oui j'ai vu Eric mais sa ne fonctionne pas. Sa me met tout dans la variable $nom!! Alors je cherche alors arreté de dire que je bidouille.
Oui je le comprend car c'est moi qui les fait.
Moi, je trouve pas forcement que c de la bidouille ... et puis ici c pas date que nous utilisons donc pas de maniement de format. Mais je respecte ...
Par contre $i c pour l'affichage du n° de ligne, les deux boucles c aussi en fonction du format Csv utilisé ...
Pour l'échappement, c qd même du à l'utilisation de mysql_query ... ya du progrès maintenant sur d'autre fonctions.
Pour un débutant comme moi, je trouve pas ça si pourri (en plus faut pas décourager les gens non !)
Meuuh en AI à l'INRA
Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)
Mais mon explode ne marche pas. Cela ne me l'incère pas dans la base. Peut-tu m'aider French s'il te plait? Merci
Voir message:
Format de ton fichier Csv, les ';' entre champs les ',' entre ligne ?
Merci
Meuuh en AI à l'INRA
Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 <?php ini_set('display_errors', 1); error_reporting(-1); require_once 'connexion.php'; $fichier = fopen('pers.csv', 'rb'); $requete = "INSERT INTO equipements.sapeurs (matriculesp, nomsp, prenomsp, daterecrutementsp, numcs) VALUES ('%s','%s','%s','%s','%s')"; while (($donnee = fgetcsv($fichier, 0, ';')) !== false) { $date = date_parse_from_format('d/m/Y', $donnee[2]); $donnee[2] = $date->format('Y-m-d'); $donnee = array_map('mysql_real_escape_string', $donnee); $sql = vsprintf($requete, $donnee); $query = mysql_query($sql); if (false === $query) { echo mysql_error(), ' : ', $sql; } } fclose($fichier);
amandine, dans le code que tu avais refais à partir du mien tu as viré la taille de ligne à lire (paramètre n°2 de fgetcsv), que tu as oublié aussi stealth35, en mettant le paramètre 3 (le délimiteur de colonne): ";"
et mon code était juste basé sur le tien que tu avais fait presque toute seule hors quelques erreurs qu'on a corrigé ensemble...
soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...
Même en changeant ca, sa me met tout dans ma variable $nom!
y a rien
envoi en mp avec l'attachement de fichier surtout s c'est des données réelles et pas de test...
soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...
Donc au final, reste ton changement de format de date (puisque le reste marche d'après ton dernier code)
Fait attention à $date_finale dans l'insert
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 <?php require_once('connexion.php'); // Bien que require_once le fait qu'une fois, c mieux ici $i = 1; if (($fichier = fopen("pers.csv", "r")) !== FALSE) { while (($ligne = fgetcsv($fichier,",")) !== FALSE) { $num = count($ligne); echo "<p> ligne numero $i: <br /></p>\n"; $i++; for ($j=0; $j < $num; $j++) { $donnee=explode(";",$ligne[$j]); echo $donnee[0] ."<br />"; //nom echo $donnee[1] ."<br />";//prenom echo $donnee[2] ."<br />"; //date echo $donnee[3] ."<br />"; //matricule echo $donnee[4] ."<br />"; //centre // Modif format date $date2=explode("/",$donnee[2]); $date_final=$date2[2].'-'.$date2[1].'-'.$date2[0]; $requete = "INSERT INTO EQUIPEMENTS.SAPEURS (MATRICULESP,NOMSP,PRENOMSP,DATERECRUTEMENTSP,NUMCS) VALUES ('$donnee[3]','$donnee[0]','$donnee[1]','$date_final','$donnee[4]')"; mysql_query($requete); } } fclose($fichier); } ?>
Meuuh en AI à l'INRA
Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)
vous refaites les même erreurs ...
Bein non puisque ça marche avec tous les champs sauf la date
Je pense qu'elle a un fichier avec des champs distincts par des ";" et pour chaque ligne une ',' sinon il y aurait des erreurs
Donc pour la date, c peut être pas terrible mais ça devrait être Ok ()
par contre j'aurais escapé les chaines qd même c sûr (comme ton code ou avec AddSlashes) à cause du mysql_query (que j'utilise plus d'ailleurs)
Meuuh en AI à l'INRA
Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager