Hilfe beim Overload

Thema wurde von Anonymous, 21. September 2015 erstellt.

  1. Anonymous

    Anonymous Beta-Held

    Registriert seit:
    22. März 2015
    Beiträge:
    2.381
    Danke erhalten:
    640
    Danke vergeben:
    414
    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(235959$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'] == || $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
     
  2. Anonymous

    Anonymous Beta-Held

    Registriert seit:
    22. März 2015
    Beiträge:
    2.381
    Danke erhalten:
    640
    Danke vergeben:
    414
    Hat keiner eine Idee?
     
  3. Dennis (MotivMonster.de)

    Dennis (MotivMonster.de) G-WARD 2013/14/15/16

    Registriert seit:
    22. September 2011
    Beiträge:
    30.984
    Danke erhalten:
    6.096
    Danke vergeben:
    1.079
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    Habs mal in die entwickler Ecke verschoben.
     
  4. soprao

    soprao Erfahrener Benutzer

    Registriert seit:
    26. Februar 2015
    Beiträge:
    160
    Danke erhalten:
    18
    Danke vergeben:
    28
    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