MySql, génération de XML sur modification

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : MySql, génération de XML sur modification

par zeus » 31 août 2006, 09:23

Si tu as mySQL en version 5, tu pourras avoir accès aux triggers, pas dans une version inférieure. :?

Est-ce qu'il est vraiment vital de regénérer ce fichier à chaque modification ou est-ce que tu te peut te permettre une latence ? Dans ce cas là, tu peux lancer un cron régulier qui regénérera ce fichier

Sinon, si tu passes par une classe pour gérer ta classe cinema, il te suffit de placer le script qui génere le XML après chaque requete UPDATE ou INSERT

par Cyrano » 31 août 2006, 09:23

Si tu utilises MySQL 5, il serait possible d'utiliser une série de triggers qui retournerait une valeur spécifique lorsque tu effectues une mise à jour des données dans la base, valeur que tu devrais récupérer pour déclencher la mise à jour de tes fichiers. J'ajoute en outre que, si ce fichiers sont une sauvegarde, tu pourrais peut-être, si tes accès sont suffisants, envisager à la place de créer une réplication sur un autre serveur ?

par Invité » 31 août 2006, 09:14

En fait mon souci c'est pas le l'écrire, maintenant ca c'est réglé vaec ca:

$fp = fopen("truc.xml", 'w+');
fputs($fp, $_xml);
fclose($fp);

La ce que je voulais c'est executer ce code que si la BDD a changée ...

par Truc » 30 août 2006, 22:47

Salut,

Je pense qu'une écriture simple d'un fichier à l'aide de fwrite() ou file_put_contents() si tu dispose de php5 devrait suffir puisque tu le crée déjà le xml avec ce script. :-k

MySql, génération de XML sur modification

par zalex » 30 août 2006, 09:32

Bonjour,

J'ai un souci sur ma BDD Mysql. J'ai des scripts php qui me génèrent du Xml à partir d'une base de donnée :
<?php
	
    require_once('db_config.inc.php'); // connect mysql db through $dbh
    $query = "SELECT * FROM cinema";
    $result = mysql_query($query,$dbh);
   	$_xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n";
	$_xml .= "<cine>\r\n";
	
	while ($row = mysql_fetch_array($result)) {
		$_xml .= "\t<type value=\"" . $row['c_id'] . "\"> ".$row['c_nom']." </type>\r\n";
	}
	
	$_xml .= "</cine>\r\n";
	echo $_xml;
	
	mysql_free_result($result);
 	mysql_close($dbh) or die ("Could not close connection to database!");
?>

A partir de ça j'ai deux questions, une simple :
Comment je l'enregistre dans un fichier ?
Et une compliquée :
Comment puis-je regénérer ce fichier en cas de modification de la base de donnée ?
Je sais qu'en Postgre il existe des triggers qui le détectent mais ceux ci ne peuvent de toute façon pas générer de xml il me semble mais de toute façon je suis sous mysql. ?



ps: une dernière pour la route, y a t il un logiciel ou un sciprt qui a partir d'une BDD peut générer automatiquement le schéma UML ou relationnel ?