既存の opencart Web ショップ データベースからデータを取得するクエリがあります。
小さな問題は、DISTINCT を使用してローカルで解決した 2 倍の結果です。wordpress サイトでクエリをオンラインで使用するまでは、完全に機能していました。個別の使用に関係なく、結果は再び 2 倍になります。
使用方法の唯一の違いは、ローカルでは単純な php ドキュメント内で mysql() クエリを使用しましたが、オンラインでは wordpress サイドバー ファイル内で $wpdb 文を使用したことです。
データベースは同じです。
ローカル:
$preq = "
SELECT DISTINCT
product.product_id as proid,
product.image as proimg,
product_description.name as proname
FROM
product, product_description
WHERE
product_description.product_id = product.product_id
AND FIND_IN_SET(product.product_id, ( SELECT value FROM setting where `key` = 'featured_product' ) )
";
if($res=mysql_query($preq)) {
while ($rss = mysql_fetch_array($res)) {
echo $rss['proid'];
echo "<br/><br/>";
}
}
オンライン:
$mydb= new wpdb(/connection info/);
$rows = $mydb->get_results(
"
SELECT DISTINCT
product.product_id as proid,
product.image as proimg,
product_description.name as proname
FROM
product, product_description
WHERE
product_description.product_id = product.product_id
AND FIND_IN_SET(product.product_id, ( SELECT value FROM setting where `key` = 'featured_product' ) )
"
);
echo "<div id='fp_content'>";
foreach ($rows as $obj) {
echo $obj->proid;
echo '<br/>';
}
echo "</div>";
重複を除いて、すべて正常に動作します。
結果:
Locally:
Values in "value" column: 28,40,42,43,46,47,49
Results:
28
40
42
43
46
47
49
----------------------
Online:
Values in "value" column: 50,51,52
Results:
50
50
51
51
52
52