PHP и SQLite - Умножьте определенные значения столбцов вместе

Я восстанавливаю некоторые данные из базы данных, где ценности могли бы быть чем-то как следующее:

Column1 | Column2
-----------------
Bob     | 24
Joe     | 17
Jimmy   | 38
Joe     | 10
Bob     | 5
Sam     | 8

С этими данными я хочу так или иначе выбрать ряды Боба и умножить их вместе. Я хочу сделать это для всех рядов тот матч в Column1. Я не обеспокоен выполнением его в SQLite, но что лучший способ состоит в том, чтобы пойти об этом в PHP? Я в настоящее время добавлял результаты ко множеству в PHP, делая следующее:

$myArray [$resultRow ['Column1']] = $resultRow ['Column2'];

Я задавался вопросом, как пойти о навигации через этот и нахождении соответствия ключам, multipying их ценности вместе и произведение чего-то как

Column1 = Column2-a * Column2-b

1
nl ja de
I' m попытка, что теперь, но it' s выход немного грязного, таким образом, я задавался вопросом, было ли более изящное решение. Я мог также идти о том методе неправильный путь, у вас есть предложение?
добавлено автор muttley91, источник
Также, но I' m прекрасный с ним являющийся кодом PHP. В основном ваш первый ответ - то, что я хочу, так, чтобы я мог тогда пойти в каждый ключ и умножить его ценности вместе. I' m просто не уверенный в опрятном способе сделать это.
добавлено автор muttley91, источник
Общее решение предпочтено, когда моя информация прибывает из базы данных, но я могу понять общее решение (в кодовой форме).
добавлено автор muttley91, источник
сделайте вы хотите что-то как множество (' bob' => множество (' 24' ' 5')) и умножение 24 и 5? вы сохраняетесь данные во множестве?
добавлено автор user1646111, источник
Я не могу понять точно: вы хотите код PHP или вопрос, который умножение любят сумму ()?
добавлено автор user1646111, источник
если вы посылаете свое множество, которое содержит эти данные, или вы напечатали те данные из db? пожалуйста, обновите свой вопрос с точным кодом, таким образом, я могу написать для вас точное решение, или, я могу предоставить вам общее решение
добавлено автор user1646111, источник

2 ответы

Во-первых, чтобы прочитать только ценности Боба:

$stmt = $db->prepare('SELECT Column2 FROM MyTable WHERE Column1 = ?')
$stmt->bindValue(1, 'Bob', SQLITE3_TEXT);
$result = $stmt->execute();

Затем умножьте всех их:

$value = 1.0;
while ($res = $result->fetchArray()) {
    $value = $value * $res['Column2'];
}
1
добавлено

рассмотрите этот код:

$results = array();
foreach(array('Bob' => 24, 'Joe' => 17, 'Jimmy' => 38, 'Joe' => 10, 'Bob' => 5, 'Sam' => 8) as $key => $val){
 $results[$key][] = $val;
}
echo  '
';
print_r($results);
echo  '
';

помещенный:

Array
(
    [Bob] => Array
        (
            [0] => 5
        )

    [Joe] => Array
        (
            [0] => 10
        )

    [Jimmy] => Array
        (
            [0] => 38
        )

    [Sam] => Array
        (
            [0] => 8
        )

)

PHP игнорирует, делают дубликат ключа, необходимо создать множество $results, когда вы восстанавливающий данные из базы данных, позволяете, предполагают, что вам действительно нравится это:

while() {
    $col1 = $row["col1"];
    $col2 = $row["col2"];
    $results[$col1][] = $row["col2"];
}

теперь массив результатов должен быть похожим на это:

Array
(
    [Bob] => Array
        (
            [0] => 24
            [1] => 5
        )

    [Joe] => Array
        (
            [0] => 17
            [1] => 10
        )

    [Jimmy] => Array
        (
            [0] => 38
        )

    [Sam] => Array
        (
            [0] => 8
        )

)

теперь, его легкое, чтобы искать имена colmun1 как это:

$values_for_colmn1 = $results[$column1]; //which is an array

//используйте array_product() функция для продукта множества

$product_for_column1 = array_product($values_for_colmn1);
1
добавлено
Won' t $results [$col1] [] = $row ["col2"]; просто замените стоимость в том ключе каждый раз?
добавлено автор muttley91, источник
Например, множество [' bob'] будет установлен с = на каждой петле, таким образом, won' t предыдущая стоимость быть переписанным?
добавлено автор muttley91, источник
Я не могу понять то, что вы имеете в виду? дозируйте мой ответ, которому не помогают вы!?
добавлено автор user1646111, источник
я использовал множество [' bob'] [] с дополнительным ([]), который добавляет, ключ автоматически ко множеству - обладает им
добавлено автор user1646111, источник
phpGeeks
phpGeeks
3 620 участник(ов)

Best PHP chat Еще: @dbGeeks - базы данных @phpGeeksJunior - новичкам @moscowProgers - IT Москва @ebanoePhp - весёлый канал о PHP @laravel_pro - Laravel @jobGeeks - вакансии @jsChat - JS Правила: https://t.me/phpGeeks/764859 ДР - 28.03.2016

PHP
PHP
1 309 участник(ов)

Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
1 251 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs

phpGeeksJunior
phpGeeksJunior
980 участник(ов)

Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Правила и полезные ссылки https://gist.github.com/exileed/a53dd0617b35a705ff44b38c8028e6a5 Бест от пхпгикс https://t.me/best_of_phpgeeks

SqlCom.ru - Стиль жизни SQL
SqlCom.ru - Стиль жизни SQL
908 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только MS SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz). Предложения в @sql_ninja

phpclub.ru
phpclub.ru
872 участник(ов)

Официальный чат phpclub.ru - остерегайтесь подделок #rules Правила группы - уважайте друг друга. Скриншоты -> ссылками. Код -> pastebin.com. Вакансии строго -> https://goo.gl/4bNxym, в чат ссылку. За рекламу и мат - БАН!

SQL_Ninja
SQL_Ninja
340 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz)

Devall | PHP
Devall | PHP
272 участник(ов)

Пристанище для восходящих звёзд разработки, которые перейдут на более адекватные языки. http://combot.org/chat/-1001014863761 Инвайт: j.mp/devallphp