Я пытаюсь обновить запасы моих продуктов с основного сайта на 2 других дополнительных сайта. Единственное, что у продуктов общего, - это артикул продукта.
Мой основной веб-сайт находится на Zencart, база данных с именем Database1 структура:
products
products_id products_stock products_model
1 234 SKU1
2 112 SKU2
$sql = "SELECT * from products";
if($result = mysqli_query($conntest3, $sql)){
if(mysqli_num_rows($result) > 0){
$stockfinal1 = $row['Stock'];
$data = date('d-m-Y h:i:s', strtotime($data) );
$product_list_site1=' <table id="example" class="table table-striped table-bordered nowrap" style="width:100%"><thead><tr><th>Id</th><th>Cod produs</th> <th>Stock</th></tr></thead>
';
while($row = mysqli_fetch_array($result)){
$id = $row["products_id"];
$model = $row["products_model"];
$qyt = $row["products_quantity"];
$product_list_site1 .= "<tr>
<td>$id</td>
<td>$model</td>
<td>$qyt</td>
</tr>";
}
$product_list_site1.=' </table>';
// Free result set
mysqli_free_result($result);
} else{
echo "No results.";
}
} else{
echo "ERROR: cant connect to database $sql. " . mysqli_error($conntest3);
}
<?php echo $product_list_site1;?> to display results.
Мой второй веб-сайт находится в prestashop, база данных с именем Структура базы данных 2:
ps_products
id_product quantity reference
1 215 SKU1
2 155 SKU2
$sql = "SELECT * from ps_product";
if($result = mysqli_query($conntest4, $sql)){
if(mysqli_num_rows($result) > 0){
$data = date('d-m-Y h:i:s', strtotime($data) );
$product_list_mx=' <table id="example" class="table table-striped table-bordered nowrap" style="width:100%"><thead><tr><th>Id</th><th>Cod produs</th> <th>Stock</th></tr></thead>
';
while($row = mysqli_fetch_array($result)){
$id_mx = $row["id_product"];
$model_mx = $row["reference"];
$qyt_mx = $row["quantity"];
$product_list_mx .= "<tr>
<td>$id_mx</td>
<td>$model_mx</td>
<td>$qyt_mx</td>
</tr>";
}
$product_list_mx.=' </table>';
// Free result set
mysqli_free_result($result);
} else{
echo "No results.";
}
И мой третий веб-сайт находится на woocommerce, структура базы данных с именем Database3:
wp_postmeta (database name)
wprm_postmeta (таблица, где находятся продукты)
meta_id post_id meta_key meta_value
1 213 _sku SKU1
2 213 _stock 25
3 214 _sku SKU2
4 214 _stock 47
$sql = "SELECT DISTINCT `post_id`, MAX(CASE WHEN `meta_key` = '_sku' THEN `meta_value` END) 'SKU', MAX(CASE WHEN `meta_key` = '_stock' THEN `meta_value` END) 'Stock' FROM `wprm_postmeta` GROUP BY `post_id` ";
if($result = mysqli_query($conntest1, $sql)){
if(mysqli_num_rows($result) > 0){
$data = date('d-m-Y h:i:s', strtotime($data) );
$product_list_sup=' <table id="example" class="table table-striped table-bordered nowrap" style="width:100%"><thead><tr><th>Id</th><th>Cod produs</th> <th>Stock</th></tr></thead>
';
while($row = mysqli_fetch_array($result)){
$id_sup = $row["post_id"];
$model_sup = $row["SKU"];
$qyt_sup = $row["Stock"];
$product_list_sup .= "<tr>
<td>$id_sup</td>
<td>$model_sup</td>
<td>$qyt_sup</td>
</tr>";
}
$product_list_sup.=' </table>';
// Free result set
mysqli_free_result($result);
} else{
echo "Fara rezultate.";
}
} else{
echo "ERROR: nu se poate conecta la bd $sql. " . mysqli_error($conntest1);
}
Сначала я попытался обновить запасы из моей первой базы данных во вторую базу данных, используя этот код:
$sql = "UPDATE ps_product SET quantity = '$qyt' WHERE reference = '$model' ";
if(mysqli_query($conntest4, $sql)){
echo "Records were updated successfully.";
} else {
echo "ERROR: Could not able to execute $sql. " . mysqli_error($conntest4);
}
} else{
echo "ERROR: cant connect to database $sql. " . mysqli_error($conntest4);
}
Но это обновление только для последнего продукта. Для woocommerce я даже не знаю, как сделать запрос.
Итак, конечная цель: обновить акции из базы данных 1 в другие базы данных. У продуктов один и тот же артикул во всех базах данных.