|
||
| Développement Web > PHP > Ip2Country | ||
![]() |
|
| C'est un fichier CSV qu'il faut importer dans sa propre base de données, ensuite une requête simple permet de récupérer le code du pays ainsi que son libellé. |
|
|
|
CREATE TABLE `i2c` ( `IP_FROM` double NOT NULL default '0', `IP_TO` double NOT NULL default '0', `COUNTRY_CODE` char(2) NOT NULL default '', `COUNTRY_CODE2` char(3) NOT NULL default '', `COUNTRY_NAME` varchar(64) NOT NULL default '', PRIMARY KEY (`IP_FROM`,`IP_TO`) ) |
|
|
|
- Cliquer sur la table i2c (ou le nom que vous lui avez donné) |
| - Sélectionner le fichier (extrait précédemment) - Cocher la case " Remplacer " - Champs terminés par : mettre une virgule " , " au lieu du point-virgule - Lignes terminées par : mettre " \n " au lieu de " \r\n " |
| - Cliquer sur Exécuter : phpMyAdmin télécharge le fichier et insère les éléments dans la table. |
The used command is not allowed with this MySQL version C'est que les administrateurs de phpMyAdmin ont bloqué cette fonctionnalité... |
|
|
|
| "33996344","33996351","GB","GBR","UNITED KINGDOM" | |
| en ajoutant la commande SQL " INSERT INTO table VALUES... " | |
| INSERT INTO i2c VALUES ("33996344","33996351","GB","GBR","UNITED KINGDOM") | |
| Si votre éditeur gère le chercher/remplacer avec des multi lignes : | |
| Chercher (les " de la fin et du début) : | " " |
| Remplacer : | ") INSERT INTO i2c VALUES (" |
| S'il votre éditeur gère les macros, il faut : | |
| Insérer au début : | INSERT INTO i2c VALUES (" |
| Aller à la fin, ajouter : | ) |
| Revenir au début et descendre d'une ligne. | |
| Et répéter la macro jusqu'en bas. | |
| TRUNCATE i2c | |
- cliquer sur le lien SQL |
|
Expiration de délai CGI |
|
| C'est que le script met trop de temps à s'éxécuter (il contient plus de 57000 lignes, donc 57000 requètes sql...) Il suffit de diviser en fichiers de 20000 lignes environ et de les éxécuter les uns après les autres. | |
| On ne s'est pas cassé la tête pour ne pas s'en servir : |
|
|
| $ip1 = $_ENV["REMOTE_ADDR"]; $row = @mysql_fetch_array(mysql_query("SELECT `COUNTRY_NAME`,COUNTRY_CODE $CC = $row['COUNTRY_CODE']; |
| Les variables $CC et $CN contiennent alors le Code du Pays et le Libellé. |
|
|
| http://d1.a.free.fr/en/how_to.php#ip2country |
| |
|||||||
| |