За последние 24 часа нас посетили 36302 программиста и 1735 роботов. Сейчас ищут 817 программистов ...

массив и подсчет общей стоимости товара

Тема в разделе "PHP для новичков", создана пользователем r67wru, 24 мар 2018.

Метки:
  1. r67wru

    r67wru Активный пользователь

    С нами с:
    14 июл 2017
    Сообщения:
    36
    Симпатии:
    2
    Доброго времени суток, помогите решить проблему.

    Имею таблицу в ней есть есть 2 ячейки в них массив(cost,kolvo). Как получить сумму заказа

    База
    PHP:
    1. CREATE TABLE `bd` (
    2.   `id` int(20) NOT NULL,
    3.   `nomer_zakaza` varchar(255) COLLATE cp1251_general_cs NOT NULL,
    4.   `dat` date NOT NULL,
    5.   `time` time NOT NULL,
    6.   `tovar` text COLLATE cp1251_general_cs NOT NULL,
    7.   `kolvo` text COLLATE cp1251_general_cs NOT NULL,
    8.   `cost` text COLLATE cp1251_general_cs NOT NULL,
    9.   `user_id` varchar(255) COLLATE cp1251_general_cs NOT NULL,
    10.   `track_nomer` varchar(100) COLLATE cp1251_general_cs NOT NULL,
    11.   `status` varchar(5) COLLATE cp1251_general_cs NOT NULL,
    12.   `gorod` varchar(255) COLLATE cp1251_general_cs NOT NULL,
    13.   `index_post` varchar(6) COLLATE cp1251_general_cs NOT NULL,
    14.   `address` varchar(200) COLLATE cp1251_general_cs NOT NULL
    15. ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs;
    код
    PHP:
    1. $baza = 'bd';
    2. $db = mysqli_connect ("localhost","login","pass", $baza);
    3. if ($db) {
    4. $msga = "Подключение к MySQL произведено!";
    5. }
    6. /* изменение набора символов на cp1251 */
    7. if (!$db->set_charset("cp1251")) {
    8.     printf("Ошибка при загрузке набора символов cp1251: %s\n", $db->error);
    9.     exit();
    10. } else {  $db->character_set_name();}
    11.  
    12. $tovat_sql_z = mysqli_query($db, "SELECT * FROM zakaz_price WHERE id='1'");
    13. while($row=mysqli_fetch_array($tovat_sql_z)){
    14. $asd = array($row['cost']);
    15. $cost_m = implode(",", $asd);
    16. $cost_o = explode(",", $cost_m);
    17. $cc = array($row["kolvo"]);
    18. $asb = implode(",", $cc);
    19. $sd = explode(",", $asb);
    20. $i = '1';
    21. foreach ($cost_o as $k => $v) {
    22. $cost = $v * $sd[$k];
    23. echo '<p> '.$i++.' Цена: '.$v.' * Количество '.$sd[$k].' Итого: '.$cost.'</p>';
    24. } }
    1.jpg
     
  2. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    (stost, kolvo)
    Проходишься циклом умножаешь stost на kolvo и суммируешь не вижу проблемы.
     
  3. r67wru

    r67wru Активный пользователь

    С нами с:
    14 июл 2017
    Сообщения:
    36
    Симпатии:
    2
    мне надо из двух строк получить итого. Если вы видите кол-во с суммой умножаются. Сумма по двум строчкам = 2401. С этим проблема как реализовать
     
  4. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    В этом и проблема. Нужно давать переменным осмысленные названия.
    PHP:
    1. foreach ($cost_o as $k => $v) {
    2. $cost = $v * $sd[$k];
    3. $total[] = $cost;
    4. echo '<p> '.$i++.' Цена: '.$v.' * Количество '.$sd[$k].' Итого: '.$cost.'</p>';
    5. }
    6. echo array_sum($total)
     
    Иван kali нравится это.
  5. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    в чем прикол?
     
  6. r67wru

    r67wru Активный пользователь

    С нами с:
    14 июл 2017
    Сообщения:
    36
    Симпатии:
    2
    Большое спасибо!