JSON fil bliver ikke færdig lavet, eller er det min while
Hej EksperterJeg har været igang med at lave en xml file her for nylig, men hørt det er nemmere at håndtere en json file.
Jeg har så været i nogle problemer med memory, det fik jeg hjælp til at det virker rigtig godt.
Det jeg så har af problemer lige nu er at den ikke køre hele min while loop igennem. Der mangler mange rows.
Vil høre om i vil kigge på min kode se om i kan se noget.
global $wpdb;
$con = $wpdb->__get('dbh');
$stmt = $con->prepare("SELECT DISTINCT ID, post_date, ***_posts.guid, ***_posts.post_modified, ***_posts.post_parent, ***_posts.post_title, ***_posts.post_type, ***_postmeta.post_id, ***_postmeta.meta_value, ***_postmeta.meta_key
FROM ***_posts INNER JOIN ***_postmeta ON ID = ***_postmeta.post_id WHERE post_type = 'product' and ***_postmeta.meta_key in ('_regular_price', '_sale_price', '_stock_status', '_wp_attached_file', '_sku')");
$stmt->execute();
$rs = $stmt->get_result();
while($key = $rs->fetch_array(MYSQLI_ASSOC)) {
$post_modified = $key['post_modified'];
if ($key['post_parent'] > 0) {
global $post_parent;
$post_parent = $key['post_parent'];
}
if ($key['meta_key'] == "_regular_price") {
global $meta_regular_price;
$meta_regular_price = $key['meta_value'];
}
global $meta_regular_price;
if ($key['meta_key'] == "_sale_price") {
global $meta_sale_price;
$meta_sale_price = $key['meta_value'];
}
global $guid;
$guid = $key['guid'];
if ($key['meta_key'] == "_stock_status") {
global $post_type;
$post_type = $key['post_type'];
global $post_title;
$post_title = $key['post_title'];
global $meta_stock;
if($key['meta_value'] == "outofstock") {
$meta_stock = 0;
} elseif($key['meta_value'] == "instock") {
$meta_stock = 1;
}
}
if ($key['meta_key'] == "brand") {
global $post_type;
$post_type = $key['post_type'];
global $post_title;
$post_title = $key['post_title'];
global $product_brand;
$product_brand = $key['value'];
}
if ($key['post_type'] == "product" && $key['meta_key'] == "_sku") {
global $meta_sku;
$meta_sku = $key['meta_value'];
global $post_title;
$post_title = $key['post_title'];
$brand_name = get_the_terms($key['ID'], 'product_brand');
foreach ($brand_name as $item) {
global $brand;
$brand = $item->name;
}
$koen = get_the_terms($key['ID'], 'product_cat');
foreach ($koen as $item) {
global $koenet;
$koenet = $item->parent;
}
global $koen;
$koen = $koenet;
$terms = get_the_terms($key['ID'], 'product_cat');
foreach ($terms as $term) {
if ($term->parent == 0) {
global $koen;
$koen = $term->name;
}
}
}
if($key['meta_key'] == "_wp_attached_file") {
global $meta_image_url;
$meta_image_url = $key['meta_value'];
}
global $meta_regular_price, $meta_sale_price, $meta_image_url, $meta_sku, $post_title, $post_type, $meta_stock, $brand, $post_parent, $guid, $koen;
$feed_nyhedsbrev[] = array(
'ExternalId' => $meta_sku,
'Modified' => $post_modified,
'Name' => $post_title,
'ImageLink' => get_home_url()."/" . $meta_image_url,
'AdditionalImageLink' => get_home_url()."/" . $meta_image_url,
'Link' => $guid,
'Gender' => $koen,
'Brand' => $brand,
'InStock' => $meta_stock,
'ItemGroupId' => $post_parent,
'RegularPrice' => $meta_regular_price,
'SalePrice' => $meta_sale_price,
);
}
$json = json_encode($feed_nyhedsbrev);
file_put_contents("******_nyhedsbrev.json", $json);
$stmt->close();
Med venlig hilsen
Morten