Я пытаюсь научиться программированию и в настоящее время работаю над очень простой корзиной продуктов. С кодом ниже:
$r_id = '1';
$r_site_id = 'AHLIM';
$r_order_id = '167';
////////////CHECK FOR EACH TYPE OF PRODUCT IN ORDER//////////////
$query01 = "SELECT * FROM ra_ordered_products WHERE extras='0' AND product_type IN (1,2,3,4,5,6,7,8,9) AND order_id='$r_order_id' AND site_id='$r_site_id' GROUP BY product_type ORDER BY product_type ASC";
$result01 = mysql_query($query01);
while($r01 = mysql_fetch_array($result01)) {
$g_product_type = $r01['product_type'];
////////////LIST PRODUCTS WITH THE TYPE GIVEN ABOVE/////////////////////////
$query03 = "SELECT * FROM ra_ordered_products WHERE product_type IN ($g_product_type) AND order_id='$r_order_id' AND site_id='$r_site_id' GROUP BY product_id ORDER BY id ASC";
$result03 = mysql_query($query03);
while($r03 = mysql_fetch_array($result03)) {
$p_id = $r03['id'];
$p_product_id = $r03['product_id'];
$p_product_type = $r03['product_type'];
$p_product_extras = $r03['extras'];
$p_product_comment = $r03['comment'];
//////////////PRINT PRODUCT DETAILS FOR THE PRODUCT GIVEM///////////////
$query04 = "SELECT * FROM ra_products WHERE id='$p_product_id'";
$result04 = mysql_query($query04);
$r04 = mysql_fetch_array($result04);
$t_product_id = $r04['id'];
$t_product_price = $r04['price'];
$t_product_promo_price = $r04['promo_price'];
$t_product_title = $r04['title'];
//////////////////GIVE A COUNT OF THE PRODUCTS PER PRODUCT////////////////////////
$counter03 = mysql_query("SELECT COUNT( * ) AS total_p_number FROM ra_ordered_products WHERE product_type NOT IN (999) AND extras='$p_product_extras' AND order_id='$r_order_id' AND product_id='$t_product_id' AND site_id='$r_site_id'");
$num03 = mysql_fetch_assoc($counter03);
$count03 = $num03['total_p_number'];
$t_product_price=number_format((float)$t_product_price, 2, '.', '');
$t_product_promo_price=number_format((float)$t_product_promo_price, 2, '.', '');
if($p_product_type=='4') { $voucher_postfix='(Voucher)'; } else { $voucher_postfix=''; }
///////////////CHECK FOR EXTRAS ADDED TO THIS PRODUCT//////////////////
$query11 = "SELECT * FROM ra_ordered_products WHERE extras!='0' AND product_id='$t_product_id' AND order_id='$r_order_id' AND site_id='$r_site_id' GROUP BY extras ORDER BY date ASC";
$result11 = mysql_query($query11);
while($r11 = mysql_fetch_array($result11)) {
$ep_id = $r11['id'];
$ep_product_id = $r11['extras'];
//////////////////PRINT EXTRAS//////////////
$query07 = "SELECT * FROM ra_products_extrass WHERE id='$ep_product_id'";
$result07 = mysql_query($query07);
$r07 = mysql_fetch_array($result07);
$e_name = $r07['extrass_name'];
$e_price = $r07['extrass_price'];
if($e_price!='') { $print_extras="Extras: $e_name - $e_price<br />"; } else { $print_extras=""; }
}
if($p_product_type=='3' && $p_product_extras!='0') { $t_product_price=$e_price; }
echo"$t_product_id - $t_product_title $voucher_postfix - $count03 - $t_product_price - $t_product_promo_price<br />$print_extras";
}
}
echo"<br />";
Теперь это дает мне результат:
168 - 55 Minute Full Body Swedish Massage - 1 - 83.00 - 0.00
170 - Ultimate Full Body Swedish Massage - 1 - 112.00 - 0.00
81 - Fish Finger Roll - 1 - 12.00 - 0.00
83 - Sirloin Steak - 1 - 13.05 - 12.95
96 - Burger - 2 - 14.00 - 0.00
Extras: Smoked Bacon - 1.50
8 - 34. Pinot Grigio, Italy - 1 - 8.70 - 0.00
Extras: Large - 8.70
11 - 54. Merlot, Chile - 1 - 26.00 - 0.00
Extras: Large - 8.70
24 - Cranberry - 1 - 2.25 - 0.00
Extras: Large - 8.70
50 - Absolut Raspberry - 1 - 6.75 - 0.00
Extras: Large - 8.70
26 - J2O - 1 - 3.50 - 0.00
Extras: Large - 8.70
10 - 31. Sauvignon Blanc, NZ - 1 - 9.00 - 0.00
Extras: Small - 9.00
223 - Thank You (Voucher) - 1 - 25.00 - 0.00
Extras: Small - 9.00
и здесь пара вопросов, может ли кто-нибудь показать мне пример того, как минимизировать / оптимизируйте этот код, а также, как вы можете видеть, дополнительные элементы извлекаются из любого элемента, даже если они не связаны с ним. 1014 * и Pinot Grigio должны иметь цену, взятую из дополнительных услуг, но дополнительные не должны быть перечислены.
Я знаю, что это может быть не блестящее кодирование, и я надеюсь выучить его лучше.