I have a JSON file that contains categories. The idea is to add this to the database with a hierarchical structure. The data is stored in the JSON file like this:
[{"productCategory":"Clothes - Pants - Jeans"},{"productCategory":"Clothes - Pants - Chinos"}]
How my database table should look like:
| taxonomy_id | taxonomy_name | taxonomy_parent | taxonomy_type |
| ----------- | ------------- | --------------- | ------------- |
| 1 | Clothes | 0 | Category |
| 2 | Pants | 1 | Category |
| 3 | Jeans | 2 | Category |
| 4 | Chinos | 2 | Category |
I've got it halfway. But I'm stuck on figuring out the rest. Maybe I need to to this a different way, but I want to check here first.
My code:
<?php
include_once('../../../products/categories.inc.php');
$string = file_get_contents("../products/products.json");
$json_decode = json_decode($string, true);
foreach ( $json_decode as $keys ) {
$category = $keys['productCategory'];
$split = explode( '-', $category );
$has_child = count($split);
$trim_whitespace = array_map('trim', $split);
$categories = $trim_whitespace;
if ( $has_child > 1 ) {
$previous_value = 0;
foreach ( $categories as $key => $value ) {
$check_tax_name = new Insert_Taxonomy;
$exsists_tax_name = $check_tax_name->Exists_Taxonomy_Name($value);
if ( empty( $exsists_tax_name ) ) {
$check_tax_name = new Insert_Taxonomy;
$parent_id = $check_tax_name->Get_Taxonomy_Id($previous_value);
$args = array($value, $parent_id, 'category');
$object = new Insert_Taxonomy;
$object->create_taxonomy($args);
//echo "$previous_value<br>";
$previous_value = $value;
}
}
} else {
foreach ( $categories as $key => $value ) {
$check_tax_name = new Insert_Taxonomy;
$exsists_tax_name = $check_tax_name->Exists_Taxonomy_Name($value);
if ( empty( $exsists_tax_name ) ) {
$args = array($value, 0, 'category');
$object = new Insert_Taxonomy;
$object->create_taxonomy($args);
}
}
}
}
My results:
| taxonomy_id | taxonomy_name | taxonomy_parent | taxonomy_type |
| ----------- | ------------- | --------------- | ------------- |
| 1 | Clothes | 0 | Category |
| 2 | Pants | 1 | Category |
| 3 | Jeans | 2 | Category |
| 4 | Chinos | NULL | Category |
source https://stackoverflow.com/questions/70146250/create-hierarchy-from-json-data
Comments
Post a Comment