Da ich gerade anfange durch die overloads durchzusteigen und zu testen bräuchte ich Hilfe von den Profis. Bitte nicht gleich steinigen. Ich habe im Code der funktion get_download_by_orders_id folgendes geändert. PHP: $t_downloads_array[$i]['PRODUCTS_NAME'] = $t_downloads_data_array['orders_products_filename']; //geändert in orders_products_filename vorher products_name Ich hätte dort aber lieber die "products_options_values" stehen aus der Tabelle "ORDERS_PRODUCTS_ATTRIBUTES" wie kann ich die Abfrage der Tabelle in meinen Overload einbauen. Ich bin absoluter Neuling in php. Ich habe unten noch mal die komplette Datei angehängt. PHP: class value_AccountContentView extends value_AccountContentView_parent { protected function get_download_by_orders_id($p_orders_id) { $c_orders_id = (int)$p_orders_id; $t_downloads_array = array(); $t_sql = ' SELECT orders_status FROM ' . TABLE_ORDERS . ' WHERE orders_id = "' . $c_orders_id . '" '; $t_query = xtc_db_query($t_sql); if(xtc_db_num_rows($t_query)) { $t_order_array = xtc_db_fetch_array($t_query); $t_order_status = $t_order_array['orders_status']; $t_download_order_status_array = explode('|', DOWNLOAD_MIN_ORDERS_STATUS); if(is_array($t_download_order_status_array) && in_array($t_order_status, $t_download_order_status_array)) { $t_sql = "SELECT date_format(o.date_purchased, '%Y-%m-%d') AS date_purchased_day, op.products_name, opd.orders_products_download_id, opd.orders_products_filename, opd.download_count, opd.download_maxdays, o.abandonment_download, UNIX_TIMESTAMP(o.date_purchased) as date_purchased_unix FROM " . TABLE_ORDERS . " o, " . TABLE_ORDERS_PRODUCTS . " op, " . TABLE_ORDERS_PRODUCTS_DOWNLOAD . " opd WHERE o.customers_id = '" . $this->customer_id . "' AND o.orders_id = '" . $c_orders_id . "' AND o.orders_id = op.orders_id AND op.orders_products_id = opd.orders_products_id AND opd.orders_products_filename != '' "; $t_query = xtc_db_query($t_sql); if(xtc_db_num_rows($t_query) > 0) { $i = 0; while($t_downloads_data_array = xtc_db_fetch_array($t_query)) { list($t_year, $t_month, $t_day) = explode('-', $t_downloads_data_array['date_purchased_day']); $t_download_timestamp = mktime(23, 59, 59, $t_month, $t_day + $t_downloads_data_array['download_maxdays'], $t_year); $t_download_expiry = date('Y-m-d H:i:s', $t_download_timestamp); if(($t_downloads_data_array['download_count'] > 0) && empty($t_downloads_data_array['orders_products_filename']) == false && file_exists(DIR_FS_DOWNLOAD . basename($t_downloads_data_array['orders_products_filename'])) && ($t_downloads_data_array['download_maxdays'] == 0 || $t_download_timestamp > time()) && in_array($t_order_status, $t_download_order_status_array)) { $t_downloads_array[$i]['LINK'] = xtc_href_link(FILENAME_DOWNLOAD, 'order=' . $c_orders_id . '&id=' . $t_downloads_data_array['orders_products_download_id']); } $t_downloads_array[$i]['DELAY_MESSAGE'] = $this->get_download_delay_message($t_downloads_data_array['date_purchased_unix'], $t_downloads_data_array['abandonment_download']); $t_downloads_array[$i]['PRODUCTS_NAME'] = $t_downloads_data_array['orders_products_filename']; //geändert in orders_products_filename vorher products_name $t_downloads_array[$i]['DATE'] = xtc_date_long($t_download_expiry); $t_downloads_array[$i]['DATE_SHORT'] = xtc_date_short($t_download_expiry); $t_downloads_array[$i]['COUNT'] = $t_downloads_data_array['download_count']; $i++; } } } } return $t_downloads_array; } } ?> Vielen Dank
Um dein Datenfeld abzugreifen, musst du den SQL Statement erweitern. Nach einem kurzem Blick konnte ich jedoch keine Beziehung von products zu products_option finden, um den JOIN herzustellen. Falls du also den Tabellennamen findest, in dem der Schlüssel products_option_values_id eingesetzt ist, gibt es die Möglichkeit, deine Anforderung umzusetzen. Andernfalls sehe ich keine Möglichkeit, über die Order an deinen Wert dran zu kommen. Grundsätzlich wäre die Idee hier SELECT deine WERTE FROM orders, products, products_option_values WHERE join Bedingung