Aller au contenu

Sujets conseillés

Posté

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
<?php

mysql_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 :mad2:

:smartass:

Posté

Bonjour à tous,

mon problème est résolu, les droits de lecture du fichier xml n'étaient pas ouverts ( chmod du fichier xml ).

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...