le 26/02/2014 à 08:58
nguim
Bonsoir à tous !
Je suis nouveau dans le Forum.
Je suis débutant en PHP, et j'ai écrit un petit code pour pouvoir mettre à jour les données de ma BDD.
En fait ces informations sont contenues dans un fichier texte (de nom fichab.txt), la première colonne du fichier texte correspond à l'IMSI et la seconde colonne correspond à MEID. Et le but est de:
Pour chaque IMSI du fichier texte (même IMSI qui se trouve dans la BDD) remplacer son MED de la BDD par celui qui est contenu dans le ficher texte. Bref l'IMSI et MEID se trouvent dans une même table de la BDD et c'est la colonne MEID que l'on veut modifier.
Voici la structure de mon fichier texte.
(------IMSI---------------MEID)
624030743830000 1100001D7DEE6D
624030743830001 CC00001D7DEE6E
624030743830002 3100001D7DEE6F
624030743830003 4100001D7DEE70
624030743830004 CC00001D7DEE71
Voici mon script:
Lorsque je l'exécute, il fait la mise à jour mais en prenant beaucoup de temps (plus de 20 minutes) le fichier contient 9999 lignes.
Je voudrais que vous m'aidiez à optimiser mon code pour pouvoir réduire le temps d'exécution de ce script.
Voici la structure de ma table coordab:
Aidez moi s'il vous plait.
Merci d'avance.
Je suis nouveau dans le Forum.
Je suis débutant en PHP, et j'ai écrit un petit code pour pouvoir mettre à jour les données de ma BDD.
En fait ces informations sont contenues dans un fichier texte (de nom fichab.txt), la première colonne du fichier texte correspond à l'IMSI et la seconde colonne correspond à MEID. Et le but est de:
Pour chaque IMSI du fichier texte (même IMSI qui se trouve dans la BDD) remplacer son MED de la BDD par celui qui est contenu dans le ficher texte. Bref l'IMSI et MEID se trouvent dans une même table de la BDD et c'est la colonne MEID que l'on veut modifier.
Voici la structure de mon fichier texte.
(------IMSI---------------MEID)
624030743830000 1100001D7DEE6D
624030743830001 CC00001D7DEE6E
624030743830002 3100001D7DEE6F
624030743830003 4100001D7DEE70
624030743830004 CC00001D7DEE71
Voici mon script:
<?php
<?php
set_time_limit(0);
error_reporting(E_ALL ^ E_NOTICE);
mysql_connect('localhost','root','');
mysql_select_db('gestnum');
/On ouvre le fichier en question (en lecture seule)
$handle = fopen("fichab.txt", "r");
//on parcours tout le fichier (en faisant croire qu'il s'agit d'un csv pour faciliter le traitement)
//$i = 0;
while (($data = fgetcsv($handle, 0, " ")) !== FALSE) {
$queryBase = 'UPDATE coordab SET MEID="'.$data[1].'", WHERE IMSI="'.$data[0].'"';
mysql_query($queryBase);
}
//on ferme le fichier
fclose($handle);
?> php ?>
Lorsque je l'exécute, il fait la mise à jour mais en prenant beaucoup de temps (plus de 20 minutes) le fichier contient 9999 lignes.
Je voudrais que vous m'aidiez à optimiser mon code pour pouvoir réduire le temps d'exécution de ce script.
Voici la structure de ma table coordab:
<?php -- phpMyAdmin SQL Dump
-- version 4.0.4
-- http://www.phpmyadmin.net
--
-- Client: localhost
-- Généré le: Mer 26 Février 2014 à 07:33
-- Version du serveur: 5.6.12-log
-- Version de PHP: 5.4.12
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Base de données: `gestnum`
--
CREATE DATABASE IF NOT EXISTS `gestnum` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `gestnum`;
-- --------------------------------------------------------
--
-- Structure de la table `coordab`
--
CREATE TABLE IF NOT EXISTS `coordab` (
`ida` int(60) NOT NULL AUTO_INCREMENT,
`IMSI` varchar(255) NOT NULL,
`MEID` varchar(255) NOT NULL,
`ESN1` varchar(255) NOT NULL,
`PUK1` varchar(255) NOT NULL,
`AKY` varchar(255) NOT NULL,
`MDN` varchar(255) NOT NULL,
PRIMARY KEY (`ida`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
--
-- Contenu de la table `coordab`
--
INSERT INTO `coordab` (`ida`, `IMSI`, `MEID`, `ESN1`, `PUK1`, `AKY`, `MDN`) VALUES
(1, '624030743830000', 'A100001D7DEE6D', '80E5FA73', '37312379', '0E47EA7A6F444640', '33830000'),
(2, '624030743830001', 'A100001D7DEE6E', '80AE089F', '91944192', 'F9052B04E3969977', '33830001'),
(3, '624030743830002', 'A100001D7DEE6F', '809A1A9F', '29861661', '4617481A74D864B5', '33830002'),
(4, '624030743830003', 'A100001D7DEE70', '80E68950', '20303707', '1C45F0418B552C45', '33830003'),
(5, '624030743830004', 'A100001D7DEE71', '80C275C6', '70591541', 'EA26D0523114FFF2', '33830004');
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
php ?>
Aidez moi s'il vous plait.
Merci d'avance.