ballhogjoni Posted October 10, 2007 Share Posted October 10, 2007 Is it possible to store results that are parsed from an xml file and then use them on a different web page? Basically I want to store the data within the nodes and then use that data on another web page. Kinda like adding pagination but instead of gettign the info from a db I am getting it from a xml file. Is it possible with the script I have written? <?php $g_books = array(); $g_elem = null; function startElement( $parser, $name, $attrs ) { global $g_books, $g_elem; if ( $name == 'CARD' ) $g_books []= array(); $g_elem = $name; } function endElement( $parser, $name ) { global $g_elem; $g_elem = null; } function textData( $parser, $text ) { global $g_books, $g_elem; if ( $g_elem == 'CREDITCARD' || $g_elem == 'ISSUER' || $g_elem == 'LINK' || $g_elem == 'PICTUREHTMLCARD' || $g_elem == 'BA' || $g_elem == 'BB' || $g_elem == 'BC' || $g_elem == 'BD' || $g_elem == 'BE' || $g_elem == 'BF' || $g_elem == 'BG' || $g_elem == 'BH' || $g_elem == 'CARDTYPE' || $g_elem == 'INTRODUCTORYRATE' || $g_elem == 'TIMEPERIOD' || $g_elem == 'APPLIEDTO' || $g_elem == 'INTRODETAILS' || $g_elem == 'APRPURCHNUM' || $g_elem == 'ANNUAL') { $g_books[ count( $g_books ) - 1 ][ $g_elem ] = $text; } } $parser = xml_parser_create(); xml_set_element_handler( $parser, "startElement", "endElement" ); xml_set_character_data_handler( $parser, "textData" ); $f = fopen( 'xml.xml', 'r' ); while( $data = fread( $f, 4096 ) ) { xml_parse( $parser, $data ); } xml_parser_free( $parser ); foreach( $g_books as $book ) { if (trim($book['ISSUER'],'"') == 'Capital One'){ echo "<table width=\"500\" border=\"3\" style=\"border-collapse:collapse;\" bordercolor=\"#999999\"> <TR> <TD style=\"border-collapse:collapse; background:#999999; font-size:14px;\" valign=\"top\"> <div style=\"padding-left:5px;\"><a href=".$book['LINK'].">".trim($book['CREDITCARD'],'"')."</a></div> <table width=\"500\" border=\"1\" style=\"border-collapse:collapse; font-size:12px;\" bordercolor=\"#FFFFFF\"> <tr> <td bgcolor=\"#FFFFFF\" style=\"padding-top:5px; padding-left:10px;\" valign=\"top\"> <a href=".$book['LINK']."><IMG border=\"0\" SRC=".trim($book['PICTUREHTMLCARD'],'"')."><br><br><img src=\"https://www.cardoffers.com/images/buttons/apply_black.gif\" border=\"0\"></a> </TD> <TD bgcolor=\"#FFFFFF\" style=\"padding-top:5px;\" valign=\"middle\"><ul>"; if (!empty($book['BA'])) { echo "<li>".$book['BA']."</li>"; } if (!empty($book['BB'])) { echo "<li>".$book['BB']."</li>"; } if (!empty($book['BC'])) { echo "<li>".$book['BC']."</li>"; } if (!empty($book['BD'])) { echo "<li>".$book['BD']."</li>"; } if (!empty($book['BE'])) { echo "<li>".$book['BE']."</li>"; } if (!empty($book['BF'])) { echo "<li>".$book['BF']."</li>"; } if (!empty($book['BG'])) { echo "<li>".$book['BG']."</li>"; } if (!empty($book['BH'])) { echo "<li>".$book['BH']."</li>"; } echo "</ul> </TD> </TR> </TABLE> <table width=\"500\" border=\"1\" style=\"border-collapse:collapse; font-size:11px;\" bordercolor=\"#FFFFFF\"> <tr> <td bgcolor=\"#999999\" align=\"center\">Intro APR</td> <td bgcolor=\"#999999\" align=\"center\">Intro APR Period</td> <td bgcolor=\"#999999\" align=\"center\">Regular APR</td> <td bgcolor=\"#999999\" align=\"center\">Annual Fee</td> <td bgcolor=\"#999999\" align=\"center\">Balance Transfers</td> <td bgcolor=\"#999999\" align=\"center\">Credit Needed</td> </tr> <tr>"; if (!empty($book['INTRODUCTORYRATE'])) { echo "<td bgcolor=\"#CCCCCC\" align=\"center\">".$book['INTRODUCTORYRATE']."%</td>"; } else { echo "<td bgcolor=\"#CCCCCC\" align=\"center\">Unknown</td>"; } if (!empty($book['TIMEPERIOD'])) { echo "<td bgcolor=\"#CCCCCC\" align=\"center\">".$book['TIMEPERIOD']."</td>"; } else { echo "<td bgcolor=\"#CCCCCC\" align=\"center\">Unknown</td>"; } if (!empty($book['APRPURCHNUM'])) { echo "<td bgcolor=\"#CCCCCC\" align=\"center\">".$book['APRPURCHNUM']."%</td>"; } else { echo "<td bgcolor=\"#CCCCCC\" align=\"center\">Unknown</td>"; } if (!empty($book['ANNUAL'])) { echo "<td bgcolor=\"#CCCCCC\" align=\"center\">".$book['ANNUAL']."</td>"; } else { echo "<td bgcolor=\"#CCCCCC\" align=\"center\">Unknown</td>"; } if (!empty($book['BALANCETRANSFER'])) { echo "<td bgcolor=\"#CCCCCC\" align=\"center\">".$book['BALANCETRANSFER']."</td>"; } else { echo "<td bgcolor=\"#CCCCCC\" align=\"center\">Unknown</td>"; } if (!empty($book['CREDITNEEDED'])) { echo "<td bgcolor=\"#CCCCCC\" align=\"center\">".$book['CREDITNEEDED']."</td>"; } else { echo "<td bgcolor=\"#CCCCCC\" align=\"center\">Unknown</td>"; } echo "</tr> </table> </td> </tr> </table><br>"; } } ?> Link to comment https://forums.phpfreaks.com/topic/72676-storing-results-for-later-use/ Share on other sites More sharing options...
Barand Posted October 10, 2007 Share Posted October 10, 2007 Depending on the size of the xml file I see a couple of options small ) parse whole file and store in session array large ) parse whole file and store in database Link to comment https://forums.phpfreaks.com/topic/72676-storing-results-for-later-use/#findComment-366549 Share on other sites More sharing options...
ballhogjoni Posted October 11, 2007 Author Share Posted October 11, 2007 Its a large XML file, so I guess I would be storing data in a db. To do that would I just use a foreach loop? Also this xml file is updated on a daily basis by a third party, how would I go about updating the data from the xml file to my db? This is what I believe should work, correct me where I am wrong: <?php //xml parsed foreach( $g_books as $book ) { $query = mysql_query("SELECT issuer FROM tablename WHERE issuer = trim($book['ISSUER'],'\"')"); //checking if it exists $doesitexist = mysql_num_rows($query); if ($doesitexist > 0) { //do some updating } else { //do some inserting } } ?> Link to comment https://forums.phpfreaks.com/topic/72676-storing-results-for-later-use/#findComment-367079 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.