injection donnée xls à partir d'une colone précise ? - PHP - Programmation
Marsh Posté le 21-02-2018 à 11:02:03
un truc dans le genre.
attention : si une de tes lignes fait plus de 1024 caractères, ou si tes données contiennent des apostrophes, ton script va merder gentillement.
Code :
|
Marsh Posté le 21-02-2018 à 14:26:10
Cela fait bien longtemps que je n'ai pas fait de PHP mais ça me semble complètement faux comme code.
Déjà pour débuter :
Code :
|
Il faudrait déjà commencer par lire une ligne pour voir si on est à la fin. Ce test est donc fait dans le mauvais ordre. Actuellement le test est fait a posteriori et donc on effectue un tour de boucle en trop.
Puis :
Code :
|
Donc si on simule on commence à $i=0, on entre dans la boucle en passant l'évaluation de fin de fichier, ok, on teste $i, on est inférieur à la valeur $start donc on retourne à l'évaluation de la boucle sans avoir bougé le pointeur et sans avoir incrémenté $i. Du coup on part dans une boucle infinie ou j'ai raté un truc ?
Ceci me semblerait plus correct :
Code :
|
Marsh Posté le 21-02-2018 à 14:28:57
Merci pour vos réponse je teste et vous tiens au courants
Marsh Posté le 21-02-2018 à 21:56:17
Sinon tu intègres tout dans une table temporaire de ta bdd et tu extraits les données qui t’intéressent de cette table temporaire.
Marsh Posté le 28-02-2018 à 14:58:06
Grace à votre aide j'avance mais une idée de si on peux partir directement à partir d'un fichier xlsm , pour le txt je mets comme séparateur (\t) pour csv ; mais pour le xlsm ???? c'est possible ?
Marsh Posté le 28-02-2018 à 15:28:28
Pour lire un .xlsm avec PHP il faut utiliser une library, je pense qu'il en existe une mais je doute qu'elle prend en charge les macros.
Marsh Posté le 02-03-2018 à 19:22:05
Bonsoir, j'avance petit à petit en fait ce qui résoudrais un grande partie mon probleme c'est de pouvoir effacer les lignes du fichier qui ne contienne pas de donnée car les fichiers que je doit importer comportes à des milliers de ligne vide !!!! mais le script lui les vérifies et les injectes (pour le csv les lignes n'ont que le séparateur
Marsh Posté le 03-03-2018 à 15:10:36
MaybeEijOrNot a écrit : Cela fait bien longtemps que je n'ai pas fait de PHP mais ça me semble complètement faux comme code.
|
Bonjour, j'ai testé ta solution mais si par exemple je met 2 en start & 5 en end il insere les ligne 2,4,6 ...
Marsh Posté le 03-03-2018 à 16:43:12
Oups petite erreur, remplacer par :
Code :
|
Néanmoins ça n'explique pas pourquoi ça n'insère qu'une ligne sur deux. Quel est le code exactement ?
Marsh Posté le 03-03-2018 à 17:03:31
MaybeEijOrNot a écrit : Oups petite erreur, remplacer par :
|
voici le code j'ai peut être mal placé ton code ?
Code :
|
la par exemple j'ai mis start 2 & end 5 il m'a ajouter les ligne 3-5-7-9
Marsh Posté le 03-03-2018 à 17:12:04
Ah ben oui c'est normal :
Code :
|
La ligne est déjà récupérée par mon code, à remplacer par :
Code :
|
Marsh Posté le 03-03-2018 à 17:37:19
MaybeEijOrNot a écrit : Ah ben oui c'est normal :
|
Alors çà avance là il commence bien l'insertion à la bonne ligne mais ne tiens pas compte de la fin ..il insere jusqu'au bout .. je vais devenir fous
Marsh Posté le 03-03-2018 à 17:40:46
n'aurais je pas pas mis le bout du code
}
$i++;
}
à la mauvaise place ? voir plus haut
Marsh Posté le 03-03-2018 à 18:37:12
Non, je prends de la drogue je crois :
Code :
|
par :
Code :
|
Marsh Posté le 03-03-2018 à 18:53:16
OUIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII çà fonctionne je le mets sur la bonne version et je te dit quoi.... un grand grand merci
Marsh Posté le 03-03-2018 à 18:55:18
Tu es en France ? si tu est de passage en Belgique contacte moi et je t'offre une bonne bière belge évidement
Marsh Posté le 05-03-2018 à 10:32:10
Allez j'ose ????
et en spécifiant une colonne de départ c'est possible ?
Marsh Posté le 07-03-2018 à 19:49:29
Pas compris la question...
Les colonnes sont déjà gérées ici :
Code :
|
Marsh Posté le 20-02-2018 à 10:37:08
Bonjour,
j'utilise ce genre de script (qui fonctionne bien) pour importer des fichier xls dans un bd mysql mais j'aimerais pourvoir lui spécifier à partir de quelle ligne il doit commencer l'injection et à partir de quelle ligne celle-ci ce termine, pouvez vous m'aider ? merci d'avance :
voici le script :
//Le chemin d'acces a ton fichier sur le serveur
$fichier = fopen("nom_du_fichier.text_ou_.csv", "r" );
//tant qu'on est pas a la fin du fichier :
while (!feof($fichier))
{
// On recupere toute la ligne
$uneLigne = fgets($fichier, 1024);
//On met dans un tableau les differentes valeurs trouvés (ici séparées par un ';')
$tableauValeurs = explode(';', $uneLigne);
// On crée la requete pour inserer les donner (ici il y a 12 champs donc de [0] a [11])
$sql="INSERT INTO Balance VALUES ('".$tableauValeurs[0]."', '".$tableauValeurs[1]."', '".$tableauValeurs[2]."', '".$tableauValeurs[3]."', '".$tableauValeurs[4]."', '".$tableauValeurs[5]."', '".$tableauValeurs[6]."', '".$tableauValeurs[7]."', '".$tableauValeurs[8]."', '".$tableauValeurs[9]."', '".$tableauValeurs[10]."', '".$tableauValeurs[11]."')";
$req=mysql_query($sql)or die (mysql_error());
// la ligne est finie donc on passe a la ligne suivante (boucle)
}
//vérification et envoi d'une réponse à l'utilisateur
if ($req)
{
echo"Ajout dans la base de données effectué avec succès";
}
else
{
echo"Echec dans l'ajout dans la base de données";
}
Message édité par cyberpilou1410 le 05-03-2018 à 10:31:19