Merge pull request #22518 from hregis/fix_avoid_error_with_postgresql

FIX remove db object for avoid error with postgresql
This commit is contained in:
Laurent Destailleur 2022-10-13 10:24:50 +02:00 committed by GitHub
commit 2ba4993666
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 22 additions and 11 deletions

View File

@ -75,7 +75,7 @@ if ($prodattr->fetch($id) < 0) {
$prodattrval = new ProductAttributeValue($db); $prodattrval = new ProductAttributeValue($db);
$res = $prodattrval->fetchAllByProductAttribute($id); $res = $prodattrval->fetchAllByProductAttribute($id, false, 1);
if ($res == -1) { if ($res == -1) {
print json_encode(array( print json_encode(array(

View File

@ -107,9 +107,10 @@ class ProductAttribute extends CommonObject
/** /**
* Returns an array of all product variants * Returns an array of all product variants
* *
* @return ProductAttribute[] * @param int $returnonlydata 0: return object, 1: return only data
* @return ProductAttribute[]
*/ */
public function fetchAll() public function fetchAll($returnonlydata = 0)
{ {
$return = array(); $return = array();
@ -118,7 +119,12 @@ class ProductAttribute extends CommonObject
$query = $this->db->query($sql); $query = $this->db->query($sql);
if ($query) { if ($query) {
while ($result = $this->db->fetch_object($query)) { while ($result = $this->db->fetch_object($query)) {
$tmp = new ProductAttribute($this->db); if (empty($returnonlydata)) {
$tmp = new ProductAttribute($this->db);
} else {
$tmp = new stdClass();
}
$tmp->id = $result->rowid; $tmp->id = $result->rowid;
$tmp->ref = $result->ref; $tmp->ref = $result->ref;
$tmp->ref_ext = $result->ref_ext; $tmp->ref_ext = $result->ref_ext;

View File

@ -99,11 +99,12 @@ class ProductAttributeValue extends CommonObject
/** /**
* Returns all product attribute values of a product attribute * Returns all product attribute values of a product attribute
* *
* @param int $prodattr_id Product attribute id * @param int $prodattr_id Product attribute id
* @param bool $only_used Fetch only used attribute values * @param bool $only_used Fetch only used attribute values
* @return ProductAttributeValue[] * @param int $returnonlydata 0: return object, 1: return only data
* @return ProductAttributeValue[]
*/ */
public function fetchAllByProductAttribute($prodattr_id, $only_used = false) public function fetchAllByProductAttribute($prodattr_id, $only_used = false, $returnonlydata = 0)
{ {
$return = array(); $return = array();
@ -130,7 +131,12 @@ class ProductAttributeValue extends CommonObject
$query = $this->db->query($sql); $query = $this->db->query($sql);
while ($result = $this->db->fetch_object($query)) { while ($result = $this->db->fetch_object($query)) {
$tmp = new ProductAttributeValue($this->db); if (empty($returnonlydata)) {
$tmp = new ProductAttributeValue($this->db);
} else {
$tmp = new stdClass();
}
$tmp->fk_product_attribute = $result->fk_product_attribute; $tmp->fk_product_attribute = $result->fk_product_attribute;
$tmp->id = $result->rowid; $tmp->id = $result->rowid;
$tmp->ref = $result->ref; $tmp->ref = $result->ref;

View File

@ -467,7 +467,7 @@ if (!empty($id) || !empty($ref)) {
} }
if ($action == 'add') { if ($action == 'add') {
$prodattr_all = $prodattr->fetchAll(); $prodattr_all = $prodattr->fetchAll(1);
if (!$selected) { if (!$selected) {
$selected = $prodattr_all[key($prodattr_all)]->id; $selected = $prodattr_all[key($prodattr_all)]->id;
@ -478,7 +478,6 @@ if (!empty($id) || !empty($ref)) {
foreach ($prodattr_all as $each) { foreach ($prodattr_all as $each) {
$prodattr_alljson[$each->id] = $each; $prodattr_alljson[$each->id] = $each;
} }
?> ?>
<script type="text/javascript"> <script type="text/javascript">