Witam tak wygląda kod generujący plik xml a moja prośba dotyczy poprawienia go w taki sposób aby wyświetlał tylko produkty które mają ustawiony atrybut promocja na 1

  1. <?php
  2. // Wy��czenie kontroli czasu wykonywania skryptu
  3.  
  4. include ('../../_config/conf/baza.inc.php');
  5. include ('../../_config/tabele.inc.php');
  6. include ('../../_config/general_config.inc');
  7.  
  8. // Po��czenie z baz� danych
  9. $host_port = (defined('DB_PORT') ? DB_HOST . ':' . DB_PORT : DB_HOST);
  10. $connection = mysql_connect($host_port, DB_USER, DB_PASS) or die(mysql_error());
  11. mysql_select_db(DB_NAME, $connection) or die(mysql_error());
  12. $sql = "SET NAMES 'utf8'"; // wskazane przy MySQL >= 4.1, w tym przypadku zak�adamy, �e baza danych zawiera teksty w ISO-8859-2, natomiast mo�e to by� te� np. UTF-8
  13.  
  14.  
  15. // Nag��wek
  16. header('Content-Type: text/xml');
  17.  
  18. $ShopName = CONF_SHOP_NAME;
  19. $ShopSkapiecID = CONF_SHOP_SKAPIEC_ID;
  20. $ShopURL = CONF_SHOP_URL;
  21. $DateA = date("Y-m-d");
  22.  
  23. $xmlForHeader = <<< XML
  24. <?xml version="1.0" encoding="UTF-8"?>
  25. <!DOCTYPE pasaz:Envelope SYSTEM "loadOffers.dtd">
  26. <pasaz:Envelope xmlns:pasaz="http://schemas.xmlsoap.org/soap/envelope/">
  27. <pasaz:Body>
  28. <loadOffers xmlns="urn:ExportB2B">
  29. <offers>
  30. XML;
  31. print ($xmlForHeader);
  32.  
  33.  
  34. // Pobieranie i budowa drzewa kategorii
  35. // (przy ka�dej ofercie powinna by� wy�wietlana kategoria wraz z kategoriami nadrz�dnymi)
  36. $sql = "SELECT *
  37. FROM " . TABLE_CATEGORIES . "," . TABLE_CATEGORY_TRANSLATIONS . "
  38. WHERE " . TABLE_CATEGORY_TRANSLATIONS . ".lang = 'pl'
  39. AND " . TABLE_CATEGORY_TRANSLATIONS . ".cid = " . TABLE_CATEGORIES .
  40. ".category_id
  41. ";
  42. $results = mysql_query($sql) or die(mysql_error());
  43. $categoryArray = array();
  44. while ($category = mysql_fetch_assoc($results))
  45. {
  46.  
  47. $categoryArray[$category['category_id']] = $category;
  48. }
  49. foreach ($categoryArray as $category)
  50. {
  51.  
  52. if (ereg('\.', $categoryArray[$category['category_id']]['level']))
  53. {
  54. $rodzice = explode(".", $categoryArray[$category['category_id']]['level']);
  55. $ileR = count($rodzice);
  56. $categoryArray[$category['category_id']]['level'] = $rodzice[$ileR - 1];
  57. }
  58. $categoryParent = $categoryArray[$category['category_id']]['level'];
  59. $categoryPatch = $categoryArray[$category['category_id']]['cat_name'];
  60. $counter = 0;
  61. while ($categoryParent)
  62. {
  63. $counter++;
  64. if ($counter > 100)
  65. break;
  66. if ($categoryParent != $categoryArray[$categoryParent]['level'])
  67. {
  68. $categoryPatch = $categoryArray[$categoryParent]['cat_name'] . " / " . $categoryPatch;
  69. $categoryParent = $categoryArray[$categoryParent]['level'];
  70. } else
  71. {
  72. $categoryParent = 0;
  73. }
  74. }
  75. $categoryArray[$category['category_id']]['patch'] = $categoryPatch;
  76. }
  77.  
  78.  
  79. // Pobranie ofert z bazy danych oraz zapis ich do pliku
  80. $sql = "
  81. SELECT
  82. " . TABLE_PRODUCTS . " .product_id,
  83. IF( " . TABLE_PROMOTIONS . ".special_price, " . TABLE_PROMOTIONS .
  84. ".special_price, " . TABLE_PRODUCTS . ".price ) as price,
  85. " . TABLE_PRODUCTS . " .category_id as id_category,
  86. " . TABLE_PRODUCTS . " .producer_id,
  87. " . TABLE_PRODUCTS . " .in_stock,
  88. " . TABLE_MANUFACTURER . ".name,
  89. product_name,
  90. description,
  91. unic_name,
  92. " . TABLE_PRODUCTS . " .product_code
  93. FROM
  94. " . TABLE_PRODUCTS . "
  95. LEFT JOIN " . TABLE_GFX . " ON (" . TABLE_PRODUCTS . ".product_id = " .
  96. TABLE_GFX . ".prod_id AND " . TABLE_GFX . ".main_gfx = 1 )
  97. LEFT JOIN " . TABLE_PROMOTIONS . " ON (" . TABLE_PRODUCTS . ".product_id = " .
  98. TABLE_PROMOTIONS . ".pid AND date_from < UNIX_TIMESTAMP() AND date_to > UNIX_TIMESTAMP() )
  99. INNER JOIN " . TABLE_MANUFACTURER . " ON (" . TABLE_PRODUCTS .
  100. ".producer_id = " . TABLE_MANUFACTURER . ".producent_id)
  101. INNER JOIN " . TABLE_PRODUCT_TRANSLATIONS . " ON (" . TABLE_PRODUCTS .
  102. ".product_id = " . TABLE_PRODUCT_TRANSLATIONS . ".pid AND " .
  103. TABLE_PRODUCT_TRANSLATIONS . ".lang = 'pl' AND " . TABLE_PRODUCT_TRANSLATIONS .
  104. ".active = 1)
  105. ";
  106. $results = mysql_query($sql) or die(mysql_error() . $sql);
  107. while ($offer = mysql_fetch_assoc($results))
  108. {
  109.  
  110. if($offer['in_stock'] > 0){
  111. $offer['dostepnosc'] = 1;
  112. }else{
  113. $offer['dostepnosc'] = 7;
  114. }
  115.  
  116.  
  117. $offer['category'] = $categoryArray[$offer['id_category']]['patch'];
  118.  
  119. $offer['url'] = CONF_SHOP_URL . "/index.php?products=product&prod_id=" . $offer['product_id'];
  120.  
  121.  
  122. foreach ($offer as $k => $v)
  123. {
  124. // dodajemy CDATA dla wi�kszo�ci p�l, poza kilkoma wymienionymi
  125. // pozwala to na u�ycie dowolnych znak�w w XML-u
  126. if (false == in_array($k, array('product_id', 'price', 'in_stock', 'code',
  127. 'shipping', 'category', 'unic_name', 'dostepnosc')))
  128. {
  129. $offer[$k] = '<![CDATA[' . $v . ']]>';
  130. }
  131. }
  132.  
  133.  
  134. if (isset($offer['unic_name']))
  135. {
  136. $offer['image'] = CONF_SHOP_URL . '/_var/gfx/' . $offer['unic_name'] . '.jpg';
  137. }
  138.  
  139.  
  140. $xmlForOffer = <<< XML
  141.  
  142. <offer>
  143. <id>{$offer['product_id']}</id>
  144. <name>{$offer['product_name']}</name>
  145. <price>{$offer['price']}</price>
  146. <url>{$offer['url']}</url>
  147. <categoryId>{$offer['category']}</categoryId>
  148. <image>{$offer['image']}</image>
  149. <attributes>
  150. <name>Kod_producenta</name>
  151. <value>{$offer['product_code']}</value>
  152. </attributes>
  153. <attributes>
  154. <name>Producent</name>
  155. <value>{$offer['name']}</value>
  156. </attributes>
  157. <availability>{$offer['dostepnosc']}</availability>
  158. </offer>
  159.  
  160. XML;
  161. print ($xmlForOffer);
  162. }
  163.  
  164. // Zapisanie stopki
  165. $xmlForFooter = <<< XML
  166.  
  167. </offers>
  168. </loadOffers>
  169. </pasaz:Body>
  170. </pasaz:Envelope>
  171. XML;
  172.  
  173. print ($xmlForFooter);
  174.  
  175. ?>