2016-04-19 13 views
2

Ich versuche, den Namen einer Tabelle zu kopieren, wo die id_lang in Prestashop ist.Kopieren in eine Tabelle in Prestashop DB

Was ich will achive ist, dass ich den Namen in derselben Tabelle zu kopieren, von id_lang=6 zu nennen, wo id_lang=8

ich die SQL-Abfrage, die funktioniert gut, aber ich mag diese Abfrage mit PHP zu tun, anstatt so i kann einen cron drauf setzen.

Wer kann mir helfen?

UPDATE ps_product_lang a 
INNER JOIN ps_product_lang b 
    ON b.id_product = a.id_product 
    AND b.id_lang = 6 
    AND a.id_product > 2218 
SET a.name = b.name 
WHERE a.id_lang = 8 

Antwort

1

Hier ist Ihre Abfrage:

Db::getInstance(_PS_USE_SQL_SLAVE_)->execute(
    "UPDATE `" . _DB_PREFIX_ . "product_lang` a 
    INNER JOIN `" . _DB_PREFIX_ . "product_lang` b 
     ON b.id_product = a.id_product 
     AND b.id_lang = 6 
     AND a.id_product > 2218 
    SET a.name = b.name 
    WHERE a.id_lang = 8" 
); 

Wenn Sie hier einen Cron erstellen wollen, ist Ihre PHP-Datei:

<?php 

// Put the real path to config.inc.php depending on the location of this file 
include_once ('../../config/config.inc.php'); 

try { 
    $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->execute(
     "UPDATE `" . _DB_PREFIX_ . "product_lang` a 
     INNER JOIN `" . _DB_PREFIX_ . "product_lang` b 
      ON b.id_product = a.id_product 
      AND b.id_lang = 6 
      AND a.id_product > 2218 
     SET a.name = b.name 
     WHERE a.id_lang = 8" 
    ); 
} catch (PrestaShopDatabaseException $e) { 
    // You might need to get some more informations on this error 
    // $error = $e->getMessage(); 
    $result = false; 
} 

echo $result ? "ok" : "ko"; 
+1

Danke sehr, dass funktionierte perfekt =) –

+0

Ich bin froh, Sie finden diese Antwort nützlich. Wenn du denkst, dass dies deine Frage beantwortet, akzeptiere sie bitte, um diesen Thread als gelöst zu markieren. [Wie funktioniert die Annahme einer Antwort?] (Http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) –

Verwandte Themen