Page 1 sur 1

mega base de données mysql par IP2NATION

Posté : 04 août 2007, 10:37
par dan4
Solution trouvée :
J'ai séparé mon fichier de 1.8Mo en 4 et compresser en GZ puis importé.
résultat : mon fournisseur limite le upload ou le import à 52k mais ça semble pas limiter la base en tant que tel. Il faut que chaque fichier soit à moins de 52k compressé ou pas. Donc, je vais opté pour la base de donnée. La solution fichiers ça m'a semblé un peu compliqué. Merci à tous et à toutes.



Comment convertir une base de données pour qu'on puisse l'utiliser. Le site http://ip2nation.com/ offre une base de tous les pays gratuitement mais le poids de la base est de 1.8 megs et aucun hébergeur accepte qu'on fasse une table de 1.8 mo.

Donc, je cherche à convertir la base de donnée pour quelle soit exploitable sous forme de fichier plutot qu'en base de données. Genre convertir sql en bin

Si vous avez une solution, je suis tout oui.

Mon founisseur d'hébergement n'accepte pas ce poids là.

J'ai beau chercher, je n'arrive pas à une solution.

Merci d'avance et après :-)

Posté : 04 août 2007, 11:45
par Sékiltoyai
Si tu transformes la base de données dans une autre forme, comme un fichier texte, l'accès sera beaucoup plus long. Et si tu la transformes en autre chose qu'un fichier texte comme par exemple en un programme binaire qui te sortirais les pays en fonction des ip, tu ne pourras pas forcément l'exécuter…

en réponse

Posté : 04 août 2007, 19:50
par dan4
Si tu transformes la base de données dans une autre forme, comme un fichier texte, l'accès sera beaucoup plus long. Et si tu la transformes en autre chose qu'un fichier texte comme par exemple en un programme binaire qui te sortirais les pays en fonction des ip, tu ne pourras pas forcément l'exécuter…
Merci.

Voici le code qui m'est fourni pour exploiter la base de données sql.

Code : Tout sélectionner

<?php $server = ''; // MySQL hostname $username = ''; // MySQL username $password = ''; // MySQL password $dbname = ''; // MySQL db name $db = mysql_connect($server, $username, $password) or die(mysql_error()); mysql_select_db($dbname) or die(mysql_error()); $sql = 'SELECT country FROM ip2nation WHERE ip < INET_ATON("'.$_SERVER['REMOTE_ADDR'].'") ORDER BY ip DESC LIMIT 0,1'; list($country) = mysql_fetch_row(mysql_query($sql)); switch ($country) { case 'se': // Get the swedish to a swedish newssite header('Location: http://www.thelocal.se/'); exit; case 'us': // And let the folks from american go to CNN header('Location: http://www.cnn.com/'); exit; default: // The rest can go to BBC header('Location: http://www.bbc.co.uk/'); exit; } ?>
Peut-être y'a t-il un moyen d'exploiter au moins en format fichier.txt sur le serveur. Et d'adapter le script en conséquence? Je souhaiterai en être capable même si la requete est longue. J'ai essayé d'importer le SQL dans un serveur maison et ça pas été possible.

Merci.

un extrait de mon fichier sql :

Code : Tout sélectionner

DROP TABLE IF EXISTS ip2nation; CREATE TABLE ip2nation ( ip int(11) unsigned NOT NULL default '0', country char(2) NOT NULL default '', KEY ip (ip) ); DROP TABLE IF EXISTS ip2nationCountries; CREATE TABLE ip2nationCountries ( code varchar(4) NOT NULL default '', country varchar(255) NOT NULL default '', lat float NOT NULL default '0', lon float NOT NULL default '0', PRIMARY KEY (code), KEY code (code) ); INSERT INTO ip2nation (ip, country) VALUES(0, 'us'); INSERT INTO ip2nation (ip, country) VALUES(698089472, 'za');
Comment le script peut lire le ip et savoir que c'est le pays?

Merci.

Posté : 04 août 2007, 20:11
par Sékiltoyai
Tu rentres des infos dans ip2nationCountries ?
Et si oui, tu en as besoin ?

Re: mega base de données mysql par IP2NATION

Posté : 04 août 2007, 20:13
par Hubert Roksor
Mon founisseur d'hébergement n'accepte pas ce poids là
1.8 MiB c'est minuscule, t'es sûr que ton hébergeur a une si basse limite ? Même chez les hébergeurs gratuits je n'ai jamais vu de limite en dessous de 20-30 MiB...

Il serait possible de sauvegarder les données dans un fichier, mais l'opération est compliquée, plus compliquée que de changer d'hébergeur, et les performances seraient entre 10 et 1000 fois plus lentes qu'une base de données (selon que tu optimises énormément ou juste un peu).

Posté : 04 août 2007, 21:22
par Hubert Roksor
Pour info, j'ai testé une solution à base de fichiers et j'ai posté le résultat dans ce sujet. C'est plutôt rapide, mais à toi de te débrouiller pour générer les fichiers dont tu as besoins. Au pire, génère-les en local avec WAMP ou autre.

Attention, je ne fais pas de support sur ce script.

Votre solution - merci. je vais tester.

Posté : 05 août 2007, 08:14
par dan4
Pour info, j'ai testé une solution à base de fichiers et j'ai posté le résultat dans ce sujet. C'est plutôt rapide, mais à toi de te débrouiller pour générer les fichiers dont tu as besoins. Au pire, génère-les en local avec WAMP ou autre.

Attention, je ne fais pas de support sur ce script.
Merci, je vais essayer votre solution. Encore merci.

Merci aussi aux précédentes réponses. C'est apprécié.

Je vous en donne des nouvelles dès que j'aurai réussi ou trouver une solution.