Mully Posté 14 Décembre 2007 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Mully Posté 17 Décembre 2007 Auteur Partager 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 ). Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant