За последние 24 часа нас посетили 15783 программиста и 1545 роботов. Сейчас ищут 875 программистов ...

Двумерный массив с заказами, найти общую сумму.

Тема в разделе "PHP и базы данных", создана пользователем In_The_Real, 21 апр 2016.

  1. In_The_Real

    In_The_Real Новичок

    С нами с:
    11 июл 2014
    Сообщения:
    26
    Симпатии:
    0
    Доброго времени суток. Прошу помочь с такой проблемой, а именно, есть два массива, которые извлечены из Мускула:
    1-ый содержит в себе `id`, `item_id`, `item_num`, `item_color`, `userId`
    2-ой содержит в себе `id`, `price`
    Нужно найти общую сумму путем умножения в цикле:
    PHP:
    1. for($i=0; $i<=$numArrsInBasket; $i++){
    2.     $total_sum += $basketArray[$i]["price"] * $basketArray[$i]["item_num"];  
    3. }
    Все массивы, естественно двумерные, ибо в первом может быть несколько товаров. А во втором несколько цен на них. Как вы уже поняли, это корзина для интернет магазина. Проблема в том, что база может вернуть 2 двумерного массива с одним и тем же товаром(1-ый массив), но разных цветов. А 2-ой массив будет только с одним массивом. Нужно найти общую стоимость всех товаров как приведено выше. Помогите пожалуйста. 3-е сутки мучаюсь, в голове каша, весь блокнот уже зас... изрисован всякими набросками неработающими. Если где то неправильно сформулировал поправьте.
     
  2. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    а не проще одним SQL-запросом это сделать ??? (( :
     
  3. In_The_Real

    In_The_Real Новичок

    С нами с:
    11 июл 2014
    Сообщения:
    26
    Симпатии:
    0
    Например? Если помнить, что одна строка в базе с одним и тем же item_id может повторяться (быть с другим item_color к примеру)
     
  4. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    связи же есть между этими таблицами?? JOINи и перемножай то что тебе нужно и суммируй (((( :
     
  5. In_The_Real

    In_The_Real Новичок

    С нами с:
    11 июл 2014
    Сообщения:
    26
    Симпатии:
    0
    сразу скажу, я не особо по mysql, SQL силен. связей. там. нет. Пам-пам =) я слышал про них что то, когда Python-Django осваивал, но так руки и не дошли до связей. Растолкуете?
     
  6. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    особо тут толковать то нечего. Есть связи по id, используешь join и получаешь нужный тебе результат 2х таблиц, и к этому же sql-запросу перемножение на количество и расчет общей суммы ((( :
     
  7. In_The_Real

    In_The_Real Новичок

    С нами с:
    11 июл 2014
    Сообщения:
    26
    Симпатии:
    0
    и все? всего лишь join приделать? а в самом phpMyAdmin какие манипуляции нужны? id поля имеют автоинкрементацию если что. можно мне пример sql запроса?
     
  8. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    да пожалуйста, пример:
    PHP:
    1. select * from `table_1` `t1`
    2. join `table_2` `t2` on `t1`.`field` = `t2`.`field`
    ((( :
     
  9. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    первичный ключ, внешний ключ бла бла бла. копай туда :)
    --- Добавлено ---
    http://www.site-do.ru/db/sql1.php
    можно тут много полезного почитать про БД
     
  10. In_The_Real

    In_The_Real Новичок

    С нами с:
    11 июл 2014
    Сообщения:
    26
    Симпатии:
    0
    а в самом phpMyAdmin какие манипуляции нужны?
     
  11. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @In_The_Real внешние ключи создай, если их ещё нет, чтоб по ним можно было join делать, phpmyadmin просто программа которая удобный доступ даёт к mysql серверу, вот и всё.
     
  12. In_The_Real

    In_The_Real Новичок

    С нами с:
    11 июл 2014
    Сообщения:
    26
    Симпатии:
    0
    @denis01, @TeslaFeo, @p@R@dox 55RU Господа! Спасибо огромное за помощь! Решил проблему Join'ом - вот код кому интересно
    PHP:
    1. SELECT `v_basket`.`id`, `v_basket`.`item_id`, `v_basket`.`num`, `v_basket`.`color`, `v_basket`.`userId`, `v_product`.`price` FROM `v_basket` INNER JOIN `v_product` ON `v_product`.`id` = 759
    но самое странное, то что, все тщетные попытки работы с ключами в самом phpMyAdmin я убрал, а Join все равно арбайтен. Как так? Если не сложно, растолкуйте, никогда не понимал эти
    --- Добавлено ---
    Рано обрадовался. Прилетает вот такой массив:
    Код (Text):
    1. array(2) {
    2. [0]=> array(6) {
    3.   ["id"]=> string(1) "1"
    4.   ["item_id"]=> string(3) "759"
    5.   ["num"]=> string(1) "1"
    6.   ["color"]=> string(0) ""
    7.   ["userId"]=> "lighk4tu0t41b304jcphbtti22"
    8.   ["price"]=> string(5) "14900" }
    9. [1]=> array(6) {
    10.   ["id"]=> string(1) "2"
    11.   ["item_id"]=> string(3) "328"
    12.   ["num"]=> string(1) "1"
    13.   ["color"]=> string(0) ""
    14.   ["userId"]=> "lighk4tu0t41b304jcphbtti22"  
    15.   ["price"]=> string(5) "14900"
    16.   }
    17. }
    Все бы ничего, но во втором массиве, цена такого товара не 14900
     
  13. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  14. In_The_Real

    In_The_Real Новичок

    С нами с:
    11 июл 2014
    Сообщения:
    26
    Симпатии:
    0
    вот скрины которые собственно показывают структуру двух таблиц 2.png 1.png 2.png 1.png
    знаю что таблица убогая, но её составлял не я.
     
  15. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    таблица как таблица... главное, чтобы выполняла свои задачи...
    а что за магические вещи? ты шаман чтоли ? :)
     
  16. In_The_Real

    In_The_Real Новичок

    С нами с:
    11 июл 2014
    Сообщения:
    26
    Симпатии:
    0
    да нет. это заказ скажем так. так что, не подскажите? (чем не правилен sql-код выше, и поч join вытягивали данные, даже когда я не связывал ячейки чрз phpMyAdmin)
     
  17. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    звязь образуется, когда ты в одной таблице присваиваешь полю "первичный ключ" а в другой присваиваешь полю "внешний ключ (и путь 'таблица такая то, поле первичного ключа такое то')". Если ты так сделал, то связь есть.
     
  18. In_The_Real

    In_The_Real Новичок

    С нами с:
    11 июл 2014
    Сообщения:
    26
    Симпатии:
    0
    я что то химичил с ключами, но во-первых возвращался массив который я привел выше. а во-вторых, я пробовал без всяких связей вытащить данные - возвращало то же самое(а оно так не должно быть, да?)
     
  19. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Может тебе так надо:
    PHP:
    1. SELECT
    2.   `v_basket`.`id`,
    3.   `v_basket`.`item_id`,
    4.   `v_basket`.`num`,
    5.   `v_basket`.`color`,
    6.   `v_basket`.`userId`,
    7.   `v_product`.`price`
    8. FROM
    9.   `v_basket`
    10. INNER JOIN
    11.   `v_product`
    12. ON
    13.   `v_product`.`id` = `v_basket`.`id`;
     
  20. In_The_Real

    In_The_Real Новичок

    С нами с:
    11 июл 2014
    Сообщения:
    26
    Симпатии:
    0
    Да, спасибо огромное. Сам к этому времени уже и допер. Всем спасибо еще раз. Удачи.