Cep Posted December 21, 2006 Share Posted December 21, 2006 Hello,I am using a modified XML parser to read in some custom XML data. The script should then take this data and output it into an HTML file displayed on the users screen.The problem I am having is that I am getting no record data at all, just a repeat of the template that the code should produce.I know this must have something to do with my two for loops but I am unsure why, logically for each key in the first array $record there will be another array $arr as its value and then the second loop will loop through $arr to get the record information.Here is my code,[code=php:0]<?php$arr = array();$record = array();$flag = "";$count = 0;$pagestart= "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'><head><title>Professional Development Courses Introductory</title><style type='text/css'><!--body, table {font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10pt}.ctext {font-family: Verdana, Arial, Helvetica, sans-serif;text-align: center;}.str {font-weight: bold;}.sml {font-size: 8pt;}.lrg {font-size: 12pt;}.red {color: red;}.white {color: #FFFFFF;}// --></style></head><body><div align='center'>";function opening_element($parser, $element) { global $flag; $flag = $element;}function character_data($parser, $data) { global $flag; global $arr; global $count; global $record; switch($flag) { case "record": $count = 1; break; case "/record": case "myData": case "/myData": case "": break; default: $arr[$count] = $flag."~".$data; $count++; if ($count==13) { $record[] = $arr; $arr = array(); } break; }}function closing_element($parser, $element) { global $flag; $flag = "";}$parser = xml_parser_create();xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, false);xml_set_element_handler($parser, "opening_element", "closing_element");xml_set_character_data_handler($parser, "character_data");$document = file("default.xml");foreach ($document as $line) { xml_parse($parser, $line);}xml_parser_free($parser);echo $pagestart;foreach ($record as $arr) { for ($z = 1; $z <= 12; $z++) { $value = $arr[$z]; $from_date = ""; $title = ""; $start_time = ""; $speaker = ""; $group = ""; $v_address = ""; $objectives = ""; $content = ""; $attend = ""; $speaker = ""; $fees = ""; if($value!="~") { //echo "line {$count}: {$value}<br />"; //$count++; $split = explode("~", $value); switch ($split[0]) { case "from_date": $from_date = $split[1]; break; case "title": $title = $split[1]; break; case "start_time": $start_time = $split[1]; break; case "end_time": $end_time = $split[1]; break; case "speaker": $speaker = $split[1]; break; case "group": $group = $split[1]; break; case "v_address": $venue = $split[1]; break; case "objectives": $objectives = $split[1]; break; case "content": $content = $split[1]; break; case "attend": $attend = $split[1]; break; case "speaker": $speaker = $split[1]; break; case "fees": $fees = $split[1]; break; } // Check content for hash breaks $hashes = substr_count($content, "#"); if ($hashes > 0) { $fragments = explode("#", $content); for ($i = 0; $i <= $hashes; $i++) { switch ($i) { case 0: $content = $fragments[$i]."<ul>"; break; case $hashes: $content .= "</ul>".$fragments[$i]; break; default: $content .= "<li>".$fragments[$i]."</li>"; break; } } } } $row = "<table> <tr> <td> <table border='1' align='center'> <tr> <td> <span class='str lrg'>PROFESSIONAL DEVELOPMENT COURSES INTRODUCTORY</span> </td> </tr> </table> <br /> <table border='1'align='center'> <tr> <td> <span class='str'>{$title}</span> </td> </tr> </table> <br /> <table border='1'align='center'> <tr> <td> <span class='str lrg'>WHO SHOULD ATTEND</span> {$attend} <br /> <br /> </td> </tr> </table> <br /> <br /> <br /> <br /> <span class='str'>OBJECTIVES</span> <br /> {$objectives} <br /> <br /> <br /> <br /> <span class='str'>COURSE PROGRAMME</span> <br /> {$content} <br /> <br /> <br /> <br /> <br /> <span class='str'>CPD HOURS - ?</span> <hr /> </td> </tr> </table>"; echo $row; }}$pageend = "</div></body></html>";echo $pageend;?>[/code]And here is a sample of my XML.[code]<?xml version="1.0"?><myData><record><from_date>20/02/2007</from_date><title>mongo</title><start_time>2.00pm</start_time><end_time>5.00pm</end_time><speaker>BT</speaker><group>ATS</group><v_address>home</v_address><objectives>The course will aim to make participants aware of pidgeons.</objectives><content>The course will review developments and planning points under the following headings:#moo#cow#jumpers#no more detials.</content><attend>everyone.</attend><speaker>boom town</speaker><fees>Full Members No Charge Non Members 80 plus VAT</fees></record><record><from_date>07/03/2007</from_date><title>har har</title><start_time>2.00pm</start_time><end_time>5.00pm</end_time><speaker>AGU</speaker><group>ATS</group><v_address>mars</v_address><objectives>The course will aim to make participants aware of pidgeons.</objectives><content>The course will review developments and planning points under the following headings:#moo#cow#jumpers#no more detials.</content><attend>everyone.</attend><speaker>lady penelope.</speaker><fees>Full Members No Charge Non Members 80 plus VAT</fees></record><record><from_date>15/03/2007</from_date><title>ja ja gabor</title><start_time>2.00pm</start_time><end_time>5.00pm</end_time><speaker>AGU</speaker><group>ATS</group><v_address>loony</v_address><objectives>The course will aim to make participants aware of pidgeons.</objectives><content>The course will review developments and planning points under the following headings:#moo#cow#jumpers#no more detials.</content><attend>everyone.</attend><speaker>the white rabbit.</speaker><fees>Full Members No Charge Non Members 80 plus VAT</fees></record></myData>[/code] Link to comment https://forums.phpfreaks.com/topic/31499-solved-not-receiving-data-from-array/ Share on other sites More sharing options...
Cep Posted December 21, 2006 Author Share Posted December 21, 2006 Its ok I have spotted that the echo for pagemid is in the wrong loop and the variables for each record data are also on the wrong loop. Solved it! Link to comment https://forums.phpfreaks.com/topic/31499-solved-not-receiving-data-from-array/#findComment-145919 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.