Проблема в том, что к сумме каждого последующего заказа прибавляется сумма от предыдущего. А мне надо, чтобы сумма у каждого заказа была своя. Не понимаю, как построить цикл Вот результат: Вот код: Код (Text): while ($order = mysql_fetch_array ($order_list)) { echo "<tr><td colspan='6' class='nn_in_order'>Заказ №<big><strong>".$order['id']."</strong></big> ".$order['order_date']." — <font color='".$order['order_color']."'>".$order['order_status']."</font></td></tr>"; while ($cart = mysql_fetch_array ($cart_list)) { if ($order['id'] == $cart['order_id']) { $summ = $cart['price'] * $cart['qty']; $sum_sum += $summ; echo "<tr><td> </td> <td class='name_in_order'>".$cart['synonym']." ".$cart['brand_name']." ".$cart['model_name']."</td> <td class='type_in_order'><nobr>".$cart['type']."</nobr></td> <td class='qty_in_order'>".$cart['qty']."</td> <td class='price_in_order'>".$cart['price'].".00</td> <td class='summ_in_order'>".$summ.".00</td> </tr>"; } } echo "<tr><td colspan='4' class='total_in_order'>Итого:</td><td colspan='2' class='total_in_order'>".$sum_sum.".00</td></tr> <tr><td colspan='6'> </td></tr>"; mysql_data_seek($cart_list, 0); }
1 вариант: сначала создать массив $carts из результата запроса $cart_list, в котором ключами сделать $cart['order_id']. 2 вариант: выбирать необходимые данные в запросе, а в цикле их уже выводить.
У меня как раз второй вариант и реализован. Только это создает вышеописанную проблему Весь код: Код (Text): $order_list = mysql_query("SELECT tr.id, tr.order_date, tr.order_status_id, tr.user_id, ts.osid, ts.order_color, ts.order_status FROM orders_list tr, order_status ts WHERE tr.order_status_id = ts.osid AND user_id = '$user_ids' ORDER BY tr.id DESC") or die("Error2! ".mysql_error()); $cart_list = mysql_query("SELECT tp.id, tp.model_name, tp.parent_brand, tb.brand_name, tb.bid, tc.synonym, ts.product, ts.qty, ts.price, ts.type, ts.cart, ts.order_id, ts.user, tc.id FROM product_info tp, brands tb, categories tc, shopping_cart ts WHERE tp.parent_brand = tb.bid AND tp.parent_categorie = tc.id AND tp.id = ts.product AND ts.user = '$user_ids' AND ts.cart = '0'") or die("Error3! ".mysql_error()); echo "<div align='center' class='title_in_order'><p>Список всех ваших заказов</p></div>"; echo "<table width='100%' cellspacing='0'>"; while ($order = mysql_fetch_array ($order_list)) { echo "<tr><td colspan='6' class='nn_in_order'>Заказ №<big><strong>".$order['id']."</strong></big> ".$order['order_date']." — <font color='".$order['order_color']."'>".$order['order_status']."</font></td></tr>"; while ($cart = mysql_fetch_array ($cart_list)) { if ($order['id'] == $cart['order_id']) { $summ = $cart['price'] * $cart['qty']; $sum_sum += $summ; echo "<tr><td> </td> <td class='name_in_order'>".$cart['synonym']." ".$cart['brand_name']." ".$cart['model_name']."</td> <td class='type_in_order'><nobr>".$cart['type']."</nobr></td> <td class='qty_in_order'>".$cart['qty']."</td> <td class='price_in_order'>".$cart['price'].".00</td> <td class='summ_in_order'>".$summ.".00</td> </tr>"; } } echo "<tr><td colspan='4' class='total_in_order'>Итого:</td><td colspan='2' class='total_in_order'>".$sum_sum.".00</td></tr> <tr><td colspan='6'> </td></tr>"; mysql_data_seek($cart_list, 0); }
После строки: Код (PHP): while ($order = mysql_fetch_array ($order_list)) { добавить строку: Код (PHP): $sum_sum = 0;
Большое спасибо!! Никогда бы не подумал, что надо ставить начальное значение. Мне казалось, что оно и так по умолчанию нулевое.
Здравствуйте! Помогите пожалуйста советом. Код (Text): <? $name = $_GET['name']; $sql = "SELECT * FROM `tovar_new` WHERE namez='$name'"; $result = mysql_query($sql) or die(mysql_error() ."<br/>". $sql); while ($row = mysql_fetch_assoc($result)) { echo "<form method=get>"; echo '<b>Название товара:</b>'.$row['name'].''; echo "<br>"; echo '<b>Название закупки:</b>'.$row['namez'].''; echo "<br>"; echo "<a href=http://www.klgforum.ru/sp1/foto/".$row['file']."><img src=http://www.klgforum.ru/sp1/foto/".$row['file']." width=300/></a>"; echo "<br>"; echo '<b>Артикул:</b>'.$row['artikul'].''; echo "<br>"; echo '<b>Доступные размеры:</b>'.$row['razmer'].''; echo "<br>"; echo '<b>Цена:</b>'.$row['cena'].''; echo "<br>"; echo '<b>Описание:</b>'.$row['info'].''; echo "<br>"; echo "<br>";echo "<br>"; echo "Введите информацию для заказа"; echo "<br>"; echo "<input type=text name=info maxlength=35>"; //echo "<a href=addzakaz.php?zakupka=".$row['namez']."&tovar=".$row['name']."&artikul=".$row['artikul']."&cena=".$row['cena'].">Записаться</a>"; echo "<input type=text name=info>"; echo "<input type=submit name=submit value=Записаться>"; echo "</form>"; echo "<hr>"; } ?> Данный отрезок кода отвечает за вывод на страничку данных из БД в циле. С каждым таким выводом данных выводится текстовое поле и кнопка. Как методом POST передать значения переменных именно текущего набора данных. Пробовал реализовать через GET, в табличке строки появляются но все ячейки пустые. =( Для того что бы понять что и как вот ссылка: http://klgforum.ru/sp1/index.php => Верхняя одежда => тест Прошу направить в нужное русло. Спасибо!
Код (PHP): $name = $_GET['name']; $sql = "SELECT * FROM `tovar_new` WHERE namez='$name'"; SQL-инъекция. Код (PHP): $result = mysql_query($sql) or die(mysql_error() ."<br/>". $sql); Эта строчка здорово упростит работу тем, кто будет взламывать сайт, используя SQL-инъекцию. Код (PHP): $result = mysql_query($sql) or die(mysql_error() ."<br/>". $sql); while ($row = mysql_fetch_assoc($result)) Нет проверки на наличие хотя бы одной строки в результате запроса (хотя это не всегда нужно) По вопросу - одна общая форма на странице, а не отдельная форма для каждой строки из б.д. Одна общая кнопка для всей страницы, а не отдельный submit для каждой строки из б.д. А вот текстовый инпут - отдельный для каждой строки из б.д. Названия у них должны отличаться так, чтобы ты мог потом в принимающем скрипте-обработчике понять, к какой строке какие данные относятся. Например, использовать id строки из б.д. в атрибуте name у инпута. Типа такого Код (PHP): echo '<input type="text" name="info[' . $row['id'] . ']" value="" />';