Не могу понять где косяк. PHP: $order_list = mysql_query("SELECT tp.id, tp.model_name, tp.parent_brand, tp.image_main, tb.brand_name, tb.bid, tc.synonym, ts.product, ts.qty, ts.price, ts.type, ts.cart, ts.order_id FROM product_info tp, brands tb, categories tc, users tu, shopping_cart ts WHERE tp.parent_brand = tb.bid AND tp.parent_categorie = tc.id AND tp.id = ts.product AND ts.order_id = '$oid'") or die("Error2! ".mysql_error()); echo "<table>"; while ($order = mysql_fetch_array ($order_list)) { $summ = $order['price'] * $order['qty']; $sum_sum += $summ; echo "<tr> <td><img src='../img_mid/".$order['image_main']."' width='100' height='150'></td> <td>".$order['synonym']." ".$order['brand_name']." ".$order['model_name']."</td> <td>".$order['type']."</td> <td>".$order['qty']."</td> <td>".$order['price']."</td> <td>".$summ."</td> </tr>"; } echo "</table>"; echo $sum_sum; Выводит три раза одно и тоже HTML: <table><tr> <td><img src='../img_mid/pc_1024_1022.jpg' width='100' height='150'></td> <td>Комплект Pierre Cardin 1024/1022</td> <td></td> <td>1</td> <td>1860</td> <td>1860</td> </tr><tr> <td><img src='../img_mid/pc_1024_1022.jpg' width='100' height='150'></td> <td>Комплект Pierre Cardin 1024/1022</td> <td></td> <td>1</td> <td>1860</td> <td>1860</td> </tr><tr> <td><img src='../img_mid/pc_1024_1022.jpg' width='100' height='150'></td> <td>Комплект Pierre Cardin 1024/1022</td> <td></td> <td>1</td> <td>1860</td> <td>1860</td> </tr></table>5580 </td></tr></table>
SQL-запрос возвращает 3 строки, я прав? Дело в соединении таблиц, стоит использовать явные соединения таблиц, в данном случае LEFT JOIN'а или RIGHt JOIN'а не хватает...
Mr. T Все верно! но теперь пишет ошибку синтаксиса ((( PHP: $order_list = mysql_query("SELECT tp.id, tp.model_name, tp.parent_brand, tp.image_main, tb.brand_name, tb.bid, tc.synonym, ts.product, ts.qty, ts.price, ts.type, ts.cart, ts.order_id FROM product_info tp left join brands tb left join categories tc left join users tu left join shopping_cart ts on tp.parent_brand = tb.bid AND tp.parent_categorie = tc.id AND tp.id = ts.product AND ts.order_id = '$oid'") or die("Error2! ".mysql_error());
Вроде разобрался с синтаксисом, но все-равно пишет ошибку PHP: $order_list = mysql_query("SELECT tp.id, tp.model_name, tp.parent_brand, tp.image_main, tb.brand_name, tb.bid, tc.synonym, ts.product, ts.qty, ts.price, ts.type, ts.cart, ts.order_id FROM product_info AS tp LEFT JOIN brands AS tb ON (tp.parent_brand = tb.bid) LEFT JOIN categories AS tc ON (tp.parent_categorie = tc.id) LEFT JOIN shopping_cart AS ts (tp.id = ts.product) WHERE ts.order_id = '$oid'") or die("Error2! ".mysql_error());
Код (Text): LEFT JOIN shopping_cart AS ts (tp.id = ts.product) WHERE ts.order_id = '$oid'") Пропустил ON Нужно: Код (Text): $order_list = mysql_query("SELECT tp.id, tp.model_name, tp.parent_brand, tp.image_main, tb.brand_name, tb.bid, tc.synonym, ts.product, ts.qty, ts.price, ts.type, ts.cart, ts.order_id FROM product_info AS tp LEFT JOIN brands AS tb ON (tp.parent_brand = tb.bid) LEFT JOIN categories AS tc ON (tp.parent_categorie = tc.id) LEFT JOIN shopping_cart AS ts ON (tp.id = ts.product) WHERE ts.order_id = '$oid'") or die("Error2! ".mysql_error());