Автоматически добавлять новые строки со значениями в CSV-файл, созданный из MySQL - PullRequest
1 голос
/ 08 октября 2019

Я создал небольшой скрипт, который я генерировал CSV-файл с контентом из MySQL базы данных. Все работает нормально, но я борюсь с одной проблемой ... как вы видите, я создаю файл для импорта продукта WooCommerce. Моя база данных содержит только некоторые элементы, необходимые для CSV, поэтому мне нужно генерировать другие элементы автоматически. Таким образом, в примере я хотел бы добавить строку «type» и добавить значение «simple» или «in_stock» со значением «1» ко всем элементам. Я изучаю php и не уверен, как добавить его кцикл while.

if (isset($_POST["export"])) {
    $connect = mysqli_connect("localhost", "root", "root", "dh_products");
    header('Content-Type: text/csv; charset=utf-8');
    header('Content-Disposition: attachment; filename=data.csv');
    $output = fopen("php://output", "w");

    fputcsv($output, array(
       'id',
       'type',
       'SKU',
       'Name',
       'Published',
       'Is featured?',
       'Visibility in catalog',
       'Short description',
       'Description',
       'dh_symmetry',
       'Date sale price starts',
       'Date sale price ends',
       'Tax status',
       'Tax class',
       'In stock?',
       'Stock',
       'Low stock amount',
       'Backorders allowed?',
       'Sold individually?',
       'Weight (kg)',
       'Length (cm)',
       'Width (cm)',
       'Height (cm)',
       'Allow customer reviews?',
       'Purchase note',
       'Sale price',
       'Regular price',
       'Categories',
       'Tags',
       'Shipping class',
       'Images',
       'Download limit',
       'Download expiry days',
       'Parent',
       'Grouped products',
       'Upsells',
       'Cross-sells',
       'External URL',
       'Button text',
       'Position',
      ));

    $query = "SELECT * from dh ORDER BY id DESC";

    $result = mysqli_query($connect, $query);

    while ($row = mysqli_fetch_assoc($result)) {
        fputcsv($output, $row);
    }

    fclose($output);
}

1 Ответ

1 голос
/ 08 октября 2019

Какой столбец вам нужен.

Просто добавьте

,' ' as testcolumn 

к вашему оператору выбора.

И перед тем, как сделать

fputcsv ($ output, $ row);

вы меняете значение этого нового cloumn

$row["testcolumn"} = xyz;
fputcsv($output, $row);

Конечно, вам также необходимо изменить:

fputcsv ($ output, array (

Если вам нужен новый столбец в определенном месте, вы не можете использовать

Выбрать * больше

Для статического текста:только чтобы завершить ответ, вы просто добавляете

,'some static text' as testcolumn 
...