私はこれに何時間も費やしましたが、理解できません。以下の while ループは、同じレコード (Sub-Total:) を 3 回返します。私のテーブル構造については、下の画像を参照してください。また、これは OsCommerce のインストールであるため、「tep_.....」関数は OsCommerce のものです。ここで OsCommerce 以外のソリューションをいくつか試したので、それらが問題だとは思いません。
$ot_query = tep_db_query("select * from " . TABLE_ORDERS_TOTAL . " where orders_id = '" . (int) $order_id . "'");
if (tep_db_num_rows($ot_query)) {
while ($ot = tep_db_fetch_array($ot_query)) {
$order_total_sql = tep_db_query("select * from " . TABLE_ORDERS_TOTAL . " where orders_id = '" . (int) $order_id . "'");
$order_total_result = tep_db_fetch_array($order_total_sql);
$email_order .= strip_tags($order_total_result['title']) . ' ' . strip_tags($order_total_result['text']) . "\n";
}
}
テーブル構造...
orders_total_id | orders_id | title | text | value | class | sort_order
同じ orders_id を持つ 3 つの異なる行がありますが、orders_total_id が異なり、もちろん他のデータも異なります。
- - アップデート - -
追加する
echo "<pre>".print_r($ot, 1)."</pre>\n";
while ($ot = tep_db_fetch_array($ot_query)) {の下で、次の結果が生成されました...
Array
(
[orders_total_id] => 4149
[orders_id] => 1280
[title] => Sub-Total:
[text] => $49.99
[value] => 49.9900
[class] => ot_subtotal
[sort_order] => 1
)
Array
(
[orders_total_id] => 4150
[orders_id] => 1280
[title] => Gift Certificates (-) :
[text] => $37.00
[value] => 37.0000
[class] => ot_gv
[sort_order] => 3
)
Array
(
[orders_total_id] => 4151
[orders_id] => 1280
[title] => Total:
[text] => $12.99
[value] => 12.9900
[class] => ot_total
[sort_order] => 12
)