nyroBlog
Ban NyroBlog, by Nyro
Image by Nyro - ?

Tag: Libre


Grosse requête MySQL, comment faire

Il arrive parfois qu'on est besoin de transférer énormément de données d'une base de donnée MySQL vers une autre (passage en production, changement de serveur...)

Or, ce qui arrive quelques fois dans ces cas-là, c'est que le fichier sql soit tellement gros qu'on ne peut pas l'envoyer via phpMyAdmin ou bien que le php mette trop de temps et arrive au timeout de la page... Bref, on n'y arrive pas. La solution utilisé quelques fois et le tranchage en parties du fichier sql et l'envoi par petits morceux : très laborieux.

La solution que je vous propose marche du tonnerre, mais uniquement si vous avez un accès SSH au serveur. Le principe est simple : vous allez envoyer votre fichier sql sur le serveur par FTP, puis l'exécuter directement avec la commande mysql. Et donc, voici ce que vous attendez tous, la commande à utiliser :

# mysql -h HOTE -u LOGIN --password=PASSE BASE < fichier.sql

Bien sûr, à vous de modifier HOTE, LOGIN, PASSE, BASE et fichier.sql selon ce que vous faites, mais ça, vous saurez le faire. J'ai déjà utiliser ce système sur Client Roi dans un script bash qui fait la mise à jour des données journalières. Et puis hier soir, c'était pour transférer la base de données des régions, départements, cantons et villes de France de mon EasyPhp vers le serveur de production.

Et si vous n'avez pas d'accès SSH, vous pouvez toujours créer un script PHP qui vous lira votre fichier.sql et vous exécutera N requêtes pas appel, mais c'est déjà plus contraignant...

Thèmes Mini FireFox et ThunderBird + actus

Ce soir, J'ai eu droit à une mise à jour de mon thème de FireFox. Et jeme suis dit : "Tiens, pourquoi ne pas changer ?"

Et comme j'adore ce qui prend le mons de place possible, pour laisser un maximum de place au contenu, j'ai cherché des thèmes Mini. Et j'ai trouvé mon bonheur !

Donc, pour FireFox, c'est celui-ci :MiniFoxFlat, le même que celui de base, mais tout en plus petit. J'adore.

Et dans la lancée, j'ai cherché la même chose pour Thunderbird : MiniBird, même idée. Seul hic, je n'ai pas trouvé pour enlever le texte sous les icônes.

Et au passage, un peu d'actus sur ces 2 logiciels :

Peu de temps après la mise en ligne de sa version 2, Firefox sort déjà la version alpha de FireFox3. La version finale est prévue pour le printemps normalement.

Et pour Tunderbird, la version 1.5.0.9 corrige quelques bugs, et la beta de la version 2 est sortie il y a un peu plus d'une semaine. La version finale est prévue aussi pour leprintemps 2007.

Donc, encore plein de changements et de nouveautés nous sont réservé pour les beaux jours qui arrivent (bientôt).

Ils sont arrivés !

Je vous en parlais ici, Firefox 2.0 et IE 7 sont sortis en version finale, à quelques jours d'intervalle.

Pour IE 7, on a déjà parlé d'une faille, moins de 24h après sa sortie. Mais on apprend qu'il s'agit en fait d'une faille qui n'est pas propre à IE, mais qui vient de Outlook Express (encore du Microsoft, il est vrai...).

Pour Firefox 2, ça se passe plus en douceur, sans trop de bruit pour le moment, la sortie officielle (en français) devant se faire dans le journée. En effet, toujours pas de changement sur la page du projet. Mais vous pouvez quand même le télécharger en français (à vous de choisir votre distribution et votre langue...)

Personnelement, j'attends les mises à jours aussi bien pour IE7 que pour Firefox2, par simple fainéantise (et par habitude).

Ceux qui ont testé ou testent, quels sont vos premières impressions ?

Forum PHP Paris 2006

Les 9 et 10 novembre 2006 prochain se tiendra le forum PHP à Paris.

La 1ère journée se destinera à la fonctionnalité de PHP :

  • Tour d'horizon de l'univers de PHP (dont PHP6) par l'inventeur de PHP Rasmus LERDORF
  • Ajax et Web Services en PHP avec les API Google AdWords
  • PHP au sein du Service Public Fédéral Finances de Belgique

La 2nde journée sera quant à elle orientée sur la technique :

  • Unicode : une révolution en marche pour PHP6
  • Design Patterns & PHP
  • Sécurité des applications PHP

JavaScript : Faire une infobulle

Pour un site en construction, j'ai du mettre en place une infobulle sur des images.

J'ai d'abord commencé par chercher à droite à gauche ce qui se faisait, pour voir si je ne pouvais pas trouver un script à réutiliser tout simplement.

Après bien des tests, aucun ne fonctionnait dans mon cas, dans un site tout en Div/CSS.

Donc, j'ai commencé par rechercher comment déplacer une div par rapport à la souris. J'ai trouvé ce dont j'avais besoin sur Tout Javascript. Enfin presque : le seul soucis de ce code, c'est qu'il ne tient pas compte des barres de défilement; autrement dit, si vous descendez dans votre page, votre 'infobulle' changera de place, mais en haut, et donc vous ne la verrez pas. Voici donc le code modifié :

function mouseMove (evt) {
	var x = 0;
	var y = 0;
	var plusX = 0;
	var plusY = 0;
	if (document.layers) {
		x = evt.x;
		y = evt.y;
		plusX = window.pageXOffset;
		plusY = window.pageYOffset;
	} else	if (document.all) {
		x = event.clientX;
		y = event.clientY;
		plusX = document.body.scrollLeft;
		plusY = document.body.scrollTop;
	} else if (document.getElementById) {
		x = evt.clientX;
		y = evt.clientY;
		plusX = window.pageXOffset;
		plusY = window.pageYOffset;
	}
	document.getElementById("popBox").style.left = (x+plusX+15)+"px";
	document.getElementById("popBox").style.top = (y+plusY+5)+"px";
} 
if (document.layers)
	document.captureEvents(Event.MOUSEMOVE); 
if (document.layers || document.all) 
	document.onmousemove = mouseMove; 
if (document.addEventListener) 
	document.addEventListener('mousemove', mouseMove, true);

Vous l'aurez compris, j'ai placé juste derrière mon une div vide avec comme id popBox, qui a comme attribut CSS position: absolute (et d'autres si vous en avez besoin...)

C'est quasiment fini. En effet, j'ai à ma disposition une div qui suit la souris tout le temps. Il ne me reste plus qu'à la cacher par défaut, et à l'afficher au survol des éléments qui doivent avoir une infobulle, et à y insérer le contenu que je veux. Dans mon cas, il s'agissait d'afficher un zoom sur une image au survol de sa vignette. J'ai donc décider d'afficher cette image dans une div invisible; de cette façon, le chargement de l'image commence avant que la personne passe dessus l'image. Et lorsque je dois afficher le contenu, je copie simplement le contenu de la div cachée dans ma div popbox. Le code :

function montre(id) {
 var elt = document.getElementById('popBox');
 elt.style.display = "block";
 elt.innerHTML = document.getElementById(id).innerHTML;
}
function cache() {
 var elt = document.getElementById('popBox');
 elt.style.display = "none";
}

La fonction montre est appellée sur le onMouseOver de l'image, avec en paramètre l'id de la div à recopier. La fonction cache est quant à elle appelée sur le onMouseOut de la même image.

Et voilà, une belle infobulle qui fonctionne super bien avec IE et FireFox.