Php - обновить базу данных wordpress и prestashop из базы данных zencart - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь обновить запасы моих продуктов с основного сайта на 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 в другие базы данных. У продуктов один и тот же артикул во всех базах данных.

...