Доброго времени суток. Прошу помочь с такой проблемой, а именно, есть два массива, которые извлечены из Мускула: 1-ый содержит в себе `id`, `item_id`, `item_num`, `item_color`, `userId` 2-ой содержит в себе `id`, `price` Нужно найти общую сумму путем умножения в цикле: PHP: for($i=0; $i<=$numArrsInBasket; $i++){ $total_sum += $basketArray[$i]["price"] * $basketArray[$i]["item_num"]; } Все массивы, естественно двумерные, ибо в первом может быть несколько товаров. А во втором несколько цен на них. Как вы уже поняли, это корзина для интернет магазина. Проблема в том, что база может вернуть 2 двумерного массива с одним и тем же товаром(1-ый массив), но разных цветов. А 2-ой массив будет только с одним массивом. Нужно найти общую стоимость всех товаров как приведено выше. Помогите пожалуйста. 3-е сутки мучаюсь, в голове каша, весь блокнот уже зас... изрисован всякими набросками неработающими. Если где то неправильно сформулировал поправьте.
Например? Если помнить, что одна строка в базе с одним и тем же item_id может повторяться (быть с другим item_color к примеру)
сразу скажу, я не особо по mysql, SQL силен. связей. там. нет. Пам-пам =) я слышал про них что то, когда Python-Django осваивал, но так руки и не дошли до связей. Растолкуете?
особо тут толковать то нечего. Есть связи по id, используешь join и получаешь нужный тебе результат 2х таблиц, и к этому же sql-запросу перемножение на количество и расчет общей суммы ((( :
и все? всего лишь join приделать? а в самом phpMyAdmin какие манипуляции нужны? id поля имеют автоинкрементацию если что. можно мне пример sql запроса?
да пожалуйста, пример: PHP: select * from `table_1` `t1` join `table_2` `t2` on `t1`.`field` = `t2`.`field` ((( :
первичный ключ, внешний ключ бла бла бла. копай туда --- Добавлено --- http://www.site-do.ru/db/sql1.php можно тут много полезного почитать про БД
@In_The_Real внешние ключи создай, если их ещё нет, чтоб по ним можно было join делать, phpmyadmin просто программа которая удобный доступ даёт к mysql серверу, вот и всё.
@denis01, @TeslaFeo, @p@R@dox 55RU Господа! Спасибо огромное за помощь! Решил проблему Join'ом - вот код кому интересно PHP: 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): array(2) { [0]=> array(6) { ["id"]=> string(1) "1" ["item_id"]=> string(3) "759" ["num"]=> string(1) "1" ["color"]=> string(0) "" ["userId"]=> "lighk4tu0t41b304jcphbtti22" ["price"]=> string(5) "14900" } [1]=> array(6) { ["id"]=> string(1) "2" ["item_id"]=> string(3) "328" ["num"]=> string(1) "1" ["color"]=> string(0) "" ["userId"]=> "lighk4tu0t41b304jcphbtti22" ["price"]=> string(5) "14900" } } Все бы ничего, но во втором массиве, цена такого товара не 14900
вот скрины которые собственно показывают структуру двух таблиц знаю что таблица убогая, но её составлял не я.
таблица как таблица... главное, чтобы выполняла свои задачи... а что за магические вещи? ты шаман чтоли ?
да нет. это заказ скажем так. так что, не подскажите? (чем не правилен sql-код выше, и поч join вытягивали данные, даже когда я не связывал ячейки чрз phpMyAdmin)
звязь образуется, когда ты в одной таблице присваиваешь полю "первичный ключ" а в другой присваиваешь полю "внешний ключ (и путь 'таблица такая то, поле первичного ключа такое то')". Если ты так сделал, то связь есть.
я что то химичил с ключами, но во-первых возвращался массив который я привел выше. а во-вторых, я пробовал без всяких связей вытащить данные - возвращало то же самое(а оно так не должно быть, да?)
Может тебе так надо: PHP: 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` = `v_basket`.`id`;