Добрый вечер! Ситуация следующего характера, доделываю корзину товаров на интернет-магазине. Выглядит она вот так: Все что вы здесь видите (название, артикул, цена, кол-во, сумма) - выводиться из таблицы БД. Собственно осталось сделать последнее - реализовать подсчет всех значений в поле "Сумма" и вывести полученный результат в поле "К оплате" (вместо 123). Таблица имеет следующую структуру: Я представляю себе алгоритм вот таким образом: 1) Произвести арифметический сложение всех значение в столбце "summa"; 2) Результат сложения записать в столбец "result"; 3) Далее извлечь значение из "result" и вывести его на страницу в графу "К оплате" Как реализовать пункт №2 и №3 я знаю, а вот как реализовать №1 - пока без понятия, пытаюсь решить этот вопрос самостоятельно, но пока не выходит - очень уж мало у меня опыта в php. Прошу помочь! Заранее благодарен
@Deonis, разрешите немного наглости) Можно Вас попросить показать пример? Я просто еще слабоват в пхп, сейчас как начну пихать это SUM() и в хвост и в гриву
@smartCreate ещё при выводе товаров в цикле, можешь в отдельную переменную суммировать цены. А через SUM() ещё учитывай кол-во одного товара
Добрый день! Вчера весь вечер и сегодня пол дня уже пытаюсь что-то сделать с: Но нечего не выходит у меня( Возможно потому что я работаю на codignaiter. Внесение значений в таблицу у меня происходит вот таким образом: PHP: $array = array( 'btn_addCart' => $tabel_name['btn_addCart'], // первое значение, до "=>" это имя столбца в таблице, второе значение "$tabel_name['...']' єто значение которое записывается в строку 'title' => $tabel_name['title'], 'cost' => $tabel_name['cost'], 'summa' => $tabel_name['cost'], 'articul' => $tabel_name['articul'], 'img' => $tabel_name['img'], 'result' => 'SELECT SUM(`summa`) AS `total` FROM $getName', // здесь же в строку заноситься не значение которое должно вывести функция "SUM()" а просто весь этот текст SELECT SUM(`summa`) AS `total` FROM $getName ); Помогите пожалуйста разобраться что я делаю не так
@smartCreate, строка запроса - она и есть строка и не больше. Запрос-то нужно выполнить. Я не знаю каким-расширением вы пользуетесь, но это может быть как старая функция mysql_query, так и функции из актуальных расширений: mysqli_query (в MySQLi) или из PDO - PDO::query, PDO:: prepare + PDOStatement::execute и т.д.
Понял Вас, исправил свою ошибку, переделал в: PHP: $array = array( 'btn_addCart' => $tabel_name['btn_addCart'], 'title' => $tabel_name['title'], 'cost' => $tabel_name['cost'], 'summa' => $tabel_name['cost'], 'result' => mysql_query('SELECT SUM(`summa`) AS `total` FROM $getName'), 'articul' => $tabel_name['articul'], 'img' => $tabel_name['img'], 'number' => '1' ); Теперь в result заноситься 0, при то что не одно и значений в столбце "сумма" не равно нулю. Быть может я просто изначально не то делаю? Может есть способ реализовать необходимый мне алгоритм по другому?
Точно подмечено! Изначально нужно было изучить самые азы работы с БД. Всё-таки вы выбрали устаревший способ mysql_*, что не есть гуд. Как бы там ни было, после mysql_query нужно переходить ко второму шагу mysql_fetch_assoc. Но я настоятельно рекомендую переключить внимание на другое расширение MySQLi. Тем более, что вы только начали обучение.
попробуйте через цикл. Получится чтото типо того. Переделайте только под себя: Код (Text): $a = mysql_query("SELECT summa FROM `table_name` WHERE `условие` "); $b = mysql_fetch_array('$a'); $c=0; while($b = mysql_fetch_array('$a')){ $d = $b['summa']; $c = $c +$d; } ну а тут выводим результат. Чет типо того получается. Но могу где-то ошибиться. Голова сутра плохо работает
@ArsNet, доброго дня! Жаль что раньше сюда не зашел) вопрос уже давно решен, но благодарю за участие)