Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   экспорт в csv (https://javascript.ru/forum/server/23993-ehksport-v-csv.html)

mcavalon 14.12.2011 11:13

экспорт в csv
 
доброй утро ув форумчане!

не могу нормально выгрузить данные.
выгружаю следующим образом:
$bill_id = $_GET['bill_id'];
    $num = $_GET['num'];
    $date = $_GET['date'];
    $name = $_GET['name'];
 
        $csv_output = '';
            
    $csv_output .= "\n";
    $csv_output .= '"Накладная №";"'.$num.'";';
    $csv_output .= "\n";
    $csv_output .= '"Дата";"'.$date.'";';
    $csv_output .= "\n";
    $csv_output .= '"ФИО заполняющего";"'.$name.'";';
    $csv_output .= "\n";
    $csv_output .= "\n";
    $csv_output .= "\n";
    
            $total_priceP_value = 0;
            $total_priceR_value = 0;
            $pp = 1;
            $a1_query = mysql_query("
                SELECT
                    reestr_p_bill_id AS bill_id,
                    reestr_p_warehouse_id AS wareh_id,
                    reestr_p_item_id AS item_id,
                    reestr_p_count AS count,
                    (SELECT shop_vendorcode
                    FROM shop_items_catalog_table
                    WHERE shop_items_catalog_item_id = item_id) as item_num_in,
                    (SELECT shop_items_catalog_marking
                    FROM shop_items_catalog_table
                    WHERE shop_items_catalog_item_id = item_id) as item_num_cat,
                    (SELECT shop_items_catalog_name
                    FROM shop_items_catalog_table
                    WHERE shop_items_catalog_item_id = item_id) as item_name,
                    (SELECT shop_warehouse_name
                    FROM shop_warehouse_table
                    WHERE shop_warehouse_id = wareh_id) as wareh_name,
                    (SELECT shop_prices_to_item_value
                    FROM shop_prices_to_item_table
                    WHERE
                        shop_items_catalog_item_id = item_id AND
                        shop_list_of_prices_id = 4) as price_p,                        
                    (SELECT shop_prices_to_item_value
                    FROM shop_prices_to_item_table
                    WHERE
                        shop_items_catalog_item_id = item_id AND
                        shop_list_of_prices_id = 5) as price_r                       
                FROM reestr_p
                WHERE reestr_p_bill_id = '{$bill_id}'
            ");
            $csv_output .= '"№";"Каталожный №";"Внутр. №";"Название";"Магазин (склад)";"Количество";"Цена закуп.";"Цена розничн.";';
            $csv_output .= "\n";
            while ($a1_values = mysql_fetch_row($a1_query)) {
                        $csv_output .= '"'.$pp.'";';
                        $csv_output .= '"'.$a1_values[4].'";';
                        $csv_output .= '"'.$a1_values[5].'";';
                        $csv_output .= '"'.$a1_values[6].'";';
                        $csv_output .= '"'.$a1_values[7].'";';
                        $csv_output .= '"'.$a1_values[3].'";';
                        $csv_output .= '"'.$a1_values[8].'";';
                        $csv_output .= '"'.$a1_values[9].'";';
                        $csv_output .= "\n";
                        $pp++;
                        $total_priceP_value = $total_priceP_value + $a1_values[8];
                        $total_priceR_value = $total_priceR_value + $a1_values[9];
            }
            $csv_output .= '"";"";"";"";"";"Сумма";"'.$total_priceP_value.'";"'.$total_priceR_value.'";';
            
    // Output to browser with appropriate mime type, you choose ;)
        header("Content-type: text/x-csv");
        header("Content-type: text/csv");
        header("Content-type: application/csv");
    header('Content-Type: text/xml, charset=UTF-8; encoding=UTF-8');
        header("Content-Disposition: attachment; filename=search_results.csv");
        echo $csv_output;
        exit;


в итоге получаю в файле следующее
Код:

Накладная в„–  34534534                                               
Дата        00.00.0000                                             
ФИО заполняющего fff tuybutyb yjty                                             
                                                       
                                                       
в„–    Каталожный в„–        Внутр. в„– Название        Магазин (склад)    Количество    Цена закуп.    Цена розничн.
1      111    112    ????????? ????? ????????? ???????      1      151.00  132.00
2      110019  1020756 ????????? ?????? [????? 02.12.2011 09:46:09]    ?????  12      250.00  500.00
                                        РЎСѓРјРјР°      401    632

как мне сделать нормальную кодировку?:help: :help: :help:

Skipp 14.12.2011 12:34

используйте iconv или меняйте кодировку базы или кодировку страницы, а точнее файла.
У вас данные в базе имеют другую кодировку, вот и выходит белиберда.

mcavalon 14.12.2011 13:08

не помогает((( помогите кто может. завтра закрытие проекта. а я не могу настроить экспорт

mcavalon 14.12.2011 13:11

у меня cms. кодировки
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/

Skipp 14.12.2011 13:20

Цитата:

Сообщение от mcavalon
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/

Так данные всё равно в CP1251.

echo iconv("CP1251", "UTF-8", $csv_output);

конечно лучше сменить кодировку данных.


Часовой пояс GMT +3, время: 07:42.