Jeg har følgende jeg har lavet/blandet sammen, og har brug for hjælp. Den skal danne en csv.output fil til integration med Summa Summarum kunde databasen.
Helt optimalt ville være en mulighed for at afgrænse via datoer, så man undgår dobbelt import af kunder.
Koden:
class obb_packages_test extends obb_packages {
/** * Class constructor * * @param mixed XML or array */ function obb_packages_test ($data = '<root></root>'){ $this->_data = $data; $this->pckg_key = 'test'; $this->charset = $this->_get_local('charset') ? $this->_get_local('charset') : 'iso-8859-1'; $this->httpOutputFormat = 'csv'; // can be name of method in the package or any of the following 'direct', 'csv', 'tsv' or 'xml' parent::init();
/** * Export data into an array of rows with arrays of data */ function exportDataCSV() { $this->httpOutputFormat = 'csv'; // can be name of method in the package or any of the following 'direct', 'csv', 'tsv' or 'xml' $result = $this->_sql_query("SELECT * FROM " . TABLE_CUSTOMERS); for ($c=0; $c<mysql_num_fields($result); $c++) { $fields[] = mysql_field_name($result, $c); } $this->_result[] = $fields; while($row = tep_db_fetch_array($result)){ $this->_result[] = $row; } }
/** * Export data into an array of rows with arrays of data */ function exportDataTSV() { $this->httpOutputFormat = 'tsv'; // can be name of method in the package or any of the following 'direct', 'csv', 'tsv' or 'xml' $result = $this->_sql_query("SELECT * FROM " . TABLE_CUSTOMERS); for ($c=0; $c<mysql_num_fields($result); $c++) { $fields[] = mysql_field_name($result, $c); } $this->_result[] = $fields; while($row = tep_db_fetch_array($result)){ $this->_result[] = $row; } }
/** * XML export from database of customers */ /** * Elements added for testing - the 02.03.2009 - KEC */ function exportDataXML (){ $this->httpOutputFormat = 'xml'; // can be name of method in the package or any of the following 'direct', 'csv', 'tsv' or 'xml' $this->_debugNode->appendChild($this->_createElement('function', 'showCustomers')); $result = $this->_sql_query("SELECT * FROM " . TABLE_CUSTOMERS); $user_query = tep_db_query('select c.*,ab.* from address_book ab, customers c where c.customers_id=ab.customers_id and c.customers_default_address_id=ab.address_book_id'); while($row = tep_db_fetch_array($user_query)){ $customer = $this->_createElementAttrs('customers','',array('id' => $row['customers_id'])); $customer->appendChild($this->_createElement('firstname', $row['customers_firstname'])); $customer->appendChild($this->_createElement('lastname', $row['customers_lastname'])); $customer->appendChild($this->_createElement('street', $row['entry_street_address'])); $customer->appendChild($this->_createElement('suburb', $row['entry_suburb'])); $customer->appendChild($this->_createElement('postcode', $row['entry_postcode'])); $customer->appendChild($this->_createElement('city', $row['entry_city'])); $customer->appendChild($this->_createElement('company', $row['entry_company'])); $customer->appendChild($this->_createElement('cvr', $row['entry_vat'])); $customer->appendChild($this->_createElement('type', $row['entry_country_id'])); $customer->appendChild($this->_createElement('email_address', $row['customers_email_address'])); $customer->appendChild($this->_createElement('telephone', $row['customers_telephone'])); $customer->appendChild($this->_createElement('fax', $row['customers_fax'])); $this->_responseRoot->appendChild($customer); } }
Kan du fortælle mig hvad jeg kan slette/tage væk, for at kun have muligheden for at eksportere en csv.fil ? Jeg er newbie og måske en for stor mundfuld at være gået igang med
Et output i csv format til Summa Summarum. Dette skal genereres på baggrund af kundedatabasen. Dato mener jeg fx. 01.01.2009-31.01.2009, og næste gang jeg laver output er den 01.02.2009 til fx. den 05.02.2009, altså for at undgå dobbelt import af kunder.
På sigt vil jeg gerne kunne trække en output også på ordrer, leveringsadresser, til integration med Post Danmark Webpack.
navn, adresse, postnr, by, cvr, firma, dato for oprettelse, kundenr, telefonnr findes. Dog er navn+efternavn og dato for oprettelse i start billedet på kundedelen og alle info igen når jeg går ind på den enkelte kunde, dog ikke datoen for oprettelsen.
Med datoen mener jeg at jeg ikke opretter kunder hver eneste dag, så derfor ville jeg gerne have denne kunne være variabel ved hjælp af indtastning inden kaldet udføres.
function exportDataCSVDate($from,$to) { //$from = dato fra i formattet: YYYY-MM-DD //$to = dato til i formattet: YYYY-MM-DD $this->httpOutputFormat = 'csv'; // can be name of method in the package or any of the following 'direct', 'csv', 'tsv' or 'xml' $result = $this->_sql_query("SELECT * FROM " . TABLE_CUSTOMERS . " WHERE oprettelse BETWEEN(".$from.",".$to.");"); for ($c=0; $c<mysql_num_fields($result); $c++) { $fields[] = mysql_field_name($result, $c); } $this->_result[] = $fields; while($row = tep_db_fetch_array($result)){ $this->_result[] = $row; } }
DATE_FORMAT(`ci`.`customers_info_date_account_created`,'%d.%m.%Y') AS customers_created
og ang. navn, så skal det være:
CONCAT(`c`.`customers_firstname`,' ',`c`.`customers_lastname`) AS customers_name,
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.