[eluser]rei[/eluser]
It works! Thank you sir...
Here is my new code:
Code:
function get_all_products()
{
$query = $this->db->query('SELECT * FROM products');
$option_keys_query = $this->db->query(' SELECT *
FROM option_keys
WHERE prod_id
IN ( 5, 6 ) ');
$option_values_query = $this->db->query(' SELECT *
FROM option_values
WHERE option_id
IN ( 1, 3, 4, 6, 7 ) ');
$products_array = array(); // array the will hold all the products
// option values
foreach ($option_values_query->result() as $option_value)
{
$option_values[ $option_value->option_id ][] = $option_value;
}
// print_r($option_values);
// option keys
foreach ($option_keys_query->result() as $option_key)
{
// associate the option values to their corresponding option_keys
$option_key->option_values = isset($option_values[$option_key->id]) ? $option_values[$option_key->id] : '';
$option_keys[ $option_key->prod_id ][] = $option_key;
}
// print_r($option_keys);
// products
foreach ($query->result() as $product) {
// check if there are available option keys related to this product id
// if there is none, do not assign a option_key to the product
if (isset($option_keys[$product->id]))
{
$product->option_keys = isset($option_keys[$product->id]) ? $option_keys[$product->id] : '';
}
// print_r($product);
$products_array[] = $product;
}
print_r($products_array);
}
This is the output of the products array for 1 product:
Code:
Array
(
[0] => stdClass Object
(
[id] => 5
[name] => nike tshirt
[price] => 10
[option_keys] => Array
(
[0] => stdClass Object
(
[id] => 1
[prod_id] => 5
[option_key] => size
[option_values] => Array
(
[0] => stdClass Object
(
[id] => 1
[option_id] => 1
[option_value] => small
[price] => 2
)
[1] => stdClass Object
(
[id] => 2
[option_id] => 1
[option_value] => medium
[price] => 3
)
)
)
[1] => stdClass Object
(
[id] => 3
[prod_id] => 5
[option_key] => color
[option_values] => Array
(
[0] => stdClass Object
(
[id] => 3
[option_id] => 3
[option_value] => red
[price] => 6
)
[1] => stdClass Object
(
[id] => 4
[option_id] => 3
[option_value] => blue
[price] => 4
)
)
)
[2] => stdClass Object
(
[id] => 7
[prod_id] => 5
[option_key] => font
[option_values] => Array
(
[0] => stdClass Object
(
[id] => 9
[option_id] => 7
[option_value] => italic
[price] => 3
)
[1] => stdClass Object
(
[id] => 10
[option_id] => 7
[option_value] => bold
[price] => 250
)
)
)
)
)
Now the problem is how can I display the contents of that array.hmmm