Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Pobieranie danych z mysql
Forum PHP.pl > Forum > Przedszkole
saviola15
Witam mam tutaj skryp który przerabia cenę po rabacie. Chciałbym żeby na początku wyciągnął samą cenę z tabeli product.price i można było ją wywołać w innym pliku naprzykład $pri;

  1. <?php
  2.  
  3.  
  4. $product.price = $pri;
  5.  
  6.  
  7. class GroupReductionCore extends ObjectModel
  8. {
  9. public $id_group;
  10. public $id_category;
  11. public $reduction;
  12.  
  13.  
  14.  
  15. protected $fieldsRequired = array('id_group', 'id_category', 'reduction');
  16. protected $fieldsValidate = array('id_group' => 'isUnsignedId', 'id_category' => 'isUnsignedId', 'reduction' => 'isPrice');
  17.  
  18. protected $table = 'group_reduction';
  19. protected $identifier = 'id_group_reduction';
  20.  
  21. protected static $reductionCache = array();
  22.  
  23. public function getFields()
  24. {
  25. parent::validateFields();
  26. $fields['id_group'] = (int)($this->id_group);
  27. $fields['id_category'] = (int)($this->id_category);
  28. $fields['reduction'] = (float)($this->reduction);
  29. return $fields;
  30. }
  31.  
  32. public function add($autodate = true, $nullValues = false)
  33. {
  34. return (parent::add($autodate, $nullValues) AND $this->_setCache());
  35. }
  36.  
  37. public function update($nullValues = false)
  38. {
  39. return (parent::update($nullValues) AND $this->_clearCache() AND $this->_setCache());
  40. }
  41.  
  42. public function delete()
  43. {
  44. return $this->_clearCache() AND parent::delete();
  45. }
  46.  
  47. protected function _clearCache()
  48. {
  49. return Db::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'product_group_reduction_cache` WHERE `id_group` = '.(int)($this->id_group));
  50. }
  51.  
  52. protected function _setCache()
  53. {
  54. $resource = Db::getInstance()->ExecuteS('
  55. SELECT cp.`id_product`
  56. FROM `'._DB_PREFIX_.'category_product` cp
  57. INNER JOIN `'._DB_PREFIX_.'product` p ON (p.`id_product` = cp.`id_product`)
  58. WHERE cp.`id_category` = '.(int)($this->id_category)
  59. , false);
  60. $query = 'INSERT INTO `'._DB_PREFIX_.'product_group_reduction_cache` (`id_product`, `id_group`, `reduction`) VALUES ';
  61. while ($row = Db::getInstance()->nextRow($resource))
  62. $query .= '('.(int)($row['id_product']).', '.(int)($this->id_group).', '.(float)($this->reduction).'), ';
  63. return Db::getInstance()->Execute(rtrim($query, ', '));
  64. }
  65.  
  66. public static function getGroupReductions($id_group, $id_lang)
  67. {
  68. return Db::getInstance()->ExecuteS('
  69. SELECT gr.`id_group_reduction`, gr.`id_group`, gr.`id_category`, gr.`reduction`, cl.`name` AS category_name
  70. FROM `'._DB_PREFIX_.'group_reduction` gr
  71. LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON (cl.`id_category` = gr.`id_category` AND cl.`id_lang` = '.(int)($id_lang).')
  72. WHERE `id_group` = '.(int)($id_group)
  73. );
  74. }
  75.  
  76. public static function getValueForProduct($id_product, $id_group)
  77. {
  78. if (!isset(self::$reductionCache[$id_product.'-'.$id_group]))
  79. self::$reductionCache[$id_product.'-'.$id_group] = Db::getInstance()->getValue('SELECT `reduction` FROM `'._DB_PREFIX_.'product_group_reduction_cache` WHERE `id_product` = '.(int)($id_product).' AND `id_group` = '.(int)($id_group));
  80. return self::$reductionCache[$id_product.'-'.$id_group];
  81. }
  82.  
  83. public static function doesExist($id_group, $id_category)
  84. {
  85. return (bool)Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('SELECT `id_group` FROM `'._DB_PREFIX_.'group_reduction` WHERE `id_group` = '.(int)($id_group).' AND `id_category` = '.(int)($id_category));
  86. }
  87. }


na początku kodu to dodałem:
$product.price = $pri; Jak to dodałem strona mi się wywaliła.. http://www.pneumaticon.pl/presta/ Plik : GroupReduction.php
jaslanin
w PHP do właściwości obiektów dostajemy się przez operator ->

  1. $product.price = $pri;


to nie wiem w ogóle skąd się wzięło.

Nie piszesz skąd dokładnie chcesz pobrać daną wartość. Ale np. jeżeli chcesz pobrać cenę konkretnego porduktu to w wersji 1.4 (teraz aktualna jest 1.5, ale nie mam z nią doświadczenia), to o ile pamiętam robiło się coś takiego:

  1. $Product = new Product($product_id);
  2. $Product->price;


Ale musisz się upewnić w kodzie jak to jest dokładnie.
saviola15
  1. $product.price = $pri;


To ja dodałem... Mam wersje 1.4 presty.
Chce poprostu pobrać cenę z bazy mysql product -> price przed rabatem i wczytać ją w templatce naprzykład w product.tpl naprzykład komendą {show pri}

Dodałem
  1. $Product = new Product($product_id);
  2. $pri = $Product->price;
w GroupReduction.php
i wywołałem to w pliku product-lis.tpl {product.pri} Niestety jak widać nic nie pokazuje się pod ceną : http://www.pneumaticon.pl/presta/category.php?id_category=14
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.