mega base de données mysql par IP2NATION

Petit nouveau ! | 6 Messages

04 août 2007, 10:37

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 :-)
Modifié en dernier par dan4 le 05 août 2007, 09:11, modifié 1 fois.

ViPHP
ViPHP | 5924 Messages

04 août 2007, 11:45

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…

Petit nouveau ! | 6 Messages

04 août 2007, 19:50

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.

ViPHP
ViPHP | 5924 Messages

04 août 2007, 20:11

Tu rentres des infos dans ip2nationCountries ?
Et si oui, tu en as besoin ?

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

04 août 2007, 20:13

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).

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

04 août 2007, 21:22

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.

Petit nouveau ! | 6 Messages

05 août 2007, 08:14

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.