Mully Posté 14 Décembre 2007 Posté 14 Décembre 2007 Bonjour à tous, je souhaite intégrer mon flux xml dans une base de donnée. Pour cela, j'ai crée une table nommée 'item' avec 11 champs (id en auto-increment, title, description, size, time, format, date, category, categoryname, thumbs et order). Voici mon code pour alimenter depuis mon flux la base de donnée ( aucune erreur, aucun message n'est renvoyé ) : CODE <?phpmysql_connect("", "", "") or die("Impossible de se connecter"); mysql_select_db("") or die("pas possible de trouver la base"); mysql_query("TRUNCATE TABLE `item`"); $file = "l'adresse de mon flux"; if(isset($file)) { $title = ""; $order = ""; $curtag = ""; /** fonction startElement, déclenchée lorsque le parseur rencontre une balise XML du type **/ function startElement($parser, $name, $attrs) { global $curtag, $id, $title, $description, $size, $time, $format, $date, $category, $categoryname, $thumbs, $order ; $curtag = $name; if ($name == "ID") $id = ""; if ($name == "TITLE") $title = ""; if ($name == "DESCRIPTION") $description = ""; if ($name == "SIZE") $size = ""; if ($name == "TIME") $time = ""; if ($name == "FORMAT") $format = ""; if ($name == "DATE") $date = ""; if ($name == "CATEGORY") $category = ""; if ($name == "CATEGORYNAME") $categoryname = ""; if ($name == "THUMBS") $thumbs = ""; if ($name == "ORDER") $order = ""; } /** fonction endElement, déclenchée lorsque le parseur rencontre une balise XML du type **/ function endElement($parser, $name) { global $curtag, $id, $title, $description, $size, $time, $format, $date, $category, $categoryname, $thumbs, $order ; $curtag = ""; if ($name == "ORDER") { $title = addslashes ($title); $description = addslashes ($description); $size = addslashes($size); $time = addslashes ($time); $format = addslashes ($format); $date = addslashes($date); $category = addslashes($category); $categoryname = addslashes($categoryname); $thumbs = addslashes($thumbs); $order = addslashes($order); $query = "INSERT INTO item(id,title,description,size,time,format,date,category,categoryname,thumbs,ord er) VALUES('".$id."','".$title."','".$description."','".$size."','".$time."','".$format."','".$date."','".$category."','".$categoryname."','".$thumbs."','".$order."')"; $result = mysql_query($query); } } /** fonction characterData, déclenchée lorsque le parseur rencontre des caractères, à l'intérieur d'un noeud XML **/ function characterData($parser, $data) { global $curtag, $id, $title, $description, $size, $time, $format, $date, $category, $categoryname, $thumbs, $order ; if ($curtag == "ID") $id .= $data; if ($curtag == "TITLE") $title .= $data; if ($curtag == "DESCRIPTION") $description .= $data; if ($curtag == "SIZE") $size .= $data; if ($curtag == "TIME") $time .= $data; if ($curtag == "FORMAT") $format .= $data; if ($curtag == "DATE") $date .= $data; if ($curtag == "CATEGORY") $category .= $data; if ($curtag == "CATEGORYNAME") $categoryname .= $data; if ($curtag == "THUMBS") $thumbs .= $data; if ($curtag == "ORDER") $order .= $data; } /** crée un nouveau parseur **/ $xml_parser = xml_parser_create(); xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true); /** enregistre les trois fonctions ci dessus **/ xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "characterData"); if (!($fp = fopen($file, "r"))) { die("Impossible d'ouvrir l'URL..."); } while ($data = fread($fp, 50)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("erreur XML: %s à la ligne %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } xml_parser_free($xml_parser); mysql_close(); } ?> Merci de votre aide car je suis en train de craquer fortement
Mully Posté 17 Décembre 2007 Auteur Posté 17 Décembre 2007 Bonjour à tous, mon problème est résolu, les droits de lecture du fichier xml n'étaient pas ouverts ( chmod du fichier xml ).
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant