1 00:00:00,000 --> 00:00:12,800 >> [Музыка играет] 2 00:00:12,800 --> 00:00:13,410 >> ROB BOWDEN: Привет. 3 00:00:13,410 --> 00:00:17,150 Я Роб, и я надеюсь, что вы будете готовы поставить акции в этом растворе. 4 00:00:17,150 --> 00:00:19,740 Во-первых, давайте взглянем на реестр. 5 00:00:19,740 --> 00:00:24,400 Поэтому помните, что здесь мы проверяем чтобы увидеть, если форма была 6 00:00:24,400 --> 00:00:26,200 размещены на этой странице. 7 00:00:26,200 --> 00:00:29,170 >> Так первое, что мы собираемся сделать, это пойти в другом месте. 8 00:00:29,170 --> 00:00:31,650 И мы собираемся оказывать регистр форма. 9 00:00:31,650 --> 00:00:37,320 Таким образом, форма реестр собирается опубликовать в register.php. 10 00:00:37,320 --> 00:00:38,760 И то, что он собирается отправить? 11 00:00:38,760 --> 00:00:44,510 Это собирается отправить логин, что пользователь собирается заполнить, пароль, 12 00:00:44,510 --> 00:00:46,050 и подтверждение - 13 00:00:46,050 --> 00:00:48,350 пароль снова набрали. 14 00:00:48,350 --> 00:00:54,020 >> Так что теперь, когда эта форма размещены на register.php мы выполнить это, если. 15 00:00:54,020 --> 00:00:57,260 Глядя на это, если, мы в первую очередь собирается проверки ввода. 16 00:00:57,260 --> 00:01:00,650 Мы хотим, чтобы убедиться, что имя пользователя и пароль не были пустыми, и что 17 00:01:00,650 --> 00:01:03,860 подтверждение на самом деле соответствует паролю. 18 00:01:03,860 --> 00:01:07,820 Как только мы убедились, что мы можем фактически регистрации пользователя. 19 00:01:07,820 --> 00:01:08,750 >> Что это значит? 20 00:01:08,750 --> 00:01:12,120 Ну, мы хотим, чтобы вставить Пользователь в нашу базу данных. 21 00:01:12,120 --> 00:01:13,600 И это, как мы сделаем это. 22 00:01:13,600 --> 00:01:19,250 Так что мы собираемся вставить в пользователей Таблица поля имя пользователя, 23 00:01:19,250 --> 00:01:21,230 хэш, и наличные деньги. 24 00:01:21,230 --> 00:01:24,920 >> Значение по умолчанию наличными будет 10000. 25 00:01:24,920 --> 00:01:29,630 И мы собираемся пройти как имя пользователя, имя пользователя, через POST супер 26 00:01:29,630 --> 00:01:32,070 глобальный, который представил из формы. 27 00:01:32,070 --> 00:01:35,370 И мы собираемся для шифрования пароль. 28 00:01:35,370 --> 00:01:40,780 >> Так что если что удалось, то результаты будет не ложь. 29 00:01:40,780 --> 00:01:42,990 Если это не удалось, то мы хочу извиниться. 30 00:01:42,990 --> 00:01:44,100 Что-то пошло не так. 31 00:01:44,100 --> 00:01:45,330 А что может пойти не так? 32 00:01:45,330 --> 00:01:48,610 >> Ну, там должно быть уникальное имя пользователя. 33 00:01:48,610 --> 00:01:51,900 И поэтому запрос мог не если имя пользователя уже 34 00:01:51,900 --> 00:01:53,700 существовал в таблице. 35 00:01:53,700 --> 00:01:58,210 Так предполагая, что это был уникальный имя пользователя, Затем мы собираемся запросить, чтобы захватить 36 00:01:58,210 --> 00:01:59,640 Идентификатор этого пользователя. 37 00:01:59,640 --> 00:02:02,300 Помните, что идентификатор автоматическое приращение. 38 00:02:02,300 --> 00:02:06,730 >> И так, если это произойдет на провал для некоторых Причина, то мы хотим, чтобы извиниться 39 00:02:06,730 --> 00:02:08,520 что мы не могли захватить ID. 40 00:02:08,520 --> 00:02:13,450 Но если предположить, что он не преминул, то мы захватить ID от того, что запрос 41 00:02:13,450 --> 00:02:18,400 вернулся, хранить, что в нашей сессии - поэтому мы хотим войти данного участника в по 42 00:02:18,400 --> 00:02:21,770 хранения ID в сессии супер глобальном, и, наконец, 43 00:02:21,770 --> 00:02:23,820 перенаправить к нашему портфелю. 44 00:02:23,820 --> 00:02:26,040 И это все для регистра. 45 00:02:26,040 --> 00:02:28,680 >> Теперь мы собираемся перейти на цитаты. 46 00:02:28,680 --> 00:02:31,770 Так цитата будет иметь действительно похожи набор. 47 00:02:31,770 --> 00:02:35,220 Мы видим здесь, что это код, который мы собираемся выполнить когда форма 48 00:02:35,220 --> 00:02:36,850 размещены на этой странице. 49 00:02:36,850 --> 00:02:40,500 Но сначала мы на самом деле есть оказывать эту форму. 50 00:02:40,500 --> 00:02:44,140 Так взглянуть на цитатой форме, какие поля есть? 51 00:02:44,140 --> 00:02:50,710 >> Мы видим, что все цитата является одним текстовое поле с символом имя. 52 00:02:50,710 --> 00:02:55,350 И поэтому, когда форма цитата размещена чтобы quote.PHP мы сейчас собираемся 53 00:02:55,350 --> 00:02:56,950 выполнить этот код. 54 00:02:56,950 --> 00:03:01,630 И единственная переменная в нашей POST супер Глобальная будет символ. 55 00:03:01,630 --> 00:03:05,910 >> Мы подтверждения того, что, чтобы убедиться, что они на самом деле отправил символ. 56 00:03:05,910 --> 00:03:08,760 И если они этого не сделали, мы говорим, вы должны предоставить символ. 57 00:03:08,760 --> 00:03:12,670 Предполагая, что они действительно предоставляли символ, мы смотрим этот символ. 58 00:03:12,670 --> 00:03:16,750 >> Теперь вспомните, что взгляд вверх, возможно, придется не удалось, так как, ну, может быть, это не было 59 00:03:16,750 --> 00:03:18,460 действительным символом с самого начала. 60 00:03:18,460 --> 00:03:22,690 Так что, если этот взгляд до возвращения ложное, мы хотим, чтобы извиниться, что 61 00:03:22,690 --> 00:03:24,850 символ не был найден. 62 00:03:24,850 --> 00:03:29,450 После того, как мы нашли символ, теперь мы может оказать шаблон quote.PHP. 63 00:03:29,450 --> 00:03:31,220 >> На что это похоже? 64 00:03:31,220 --> 00:03:36,580 Вот только в печать, что доля всего, что название акции было 65 00:03:36,580 --> 00:03:41,540 Стоит все цена акции. 66 00:03:41,540 --> 00:03:45,490 Теперь, почему мы используем этот HTMLSpecialChars функционировать? 67 00:03:45,490 --> 00:03:49,280 Это потому, что название акции и символ может на самом деле содержат специальные 68 00:03:49,280 --> 00:03:54,410 знаки, которые не должны интерпретировать как HTML. 69 00:03:54,410 --> 00:03:56,960 >> Ладно, так что это для цитаты. 70 00:03:56,960 --> 00:04:00,700 Теперь мы хотим, чтобы посмотреть на index.php и портфель. 71 00:04:00,700 --> 00:04:04,730 Но сначала нам нужно построить таблица портфели. 72 00:04:04,730 --> 00:04:07,310 Вот как мы собираемся это сделать. 73 00:04:07,310 --> 00:04:09,390 >> Так что давайте взглянем на структуру. 74 00:04:09,390 --> 00:04:13,530 И мы видим, что портфели таблица будет иметь идентификатор. 75 00:04:13,530 --> 00:04:17,760 Так что это будет пользователя ID, который вставки акции. 76 00:04:17,760 --> 00:04:21,839 У нас есть символ, который собирается быть символом компании, что мы находимся 77 00:04:21,839 --> 00:04:23,610 вставив акции на. 78 00:04:23,610 --> 00:04:27,940 А потом акции это число акции, которые в настоящее время установлена. 79 00:04:27,940 --> 00:04:33,490 >> Поэтому помните, что в соответствии с PSet спецификации, мы указываем, что ID и символ - 80 00:04:33,490 --> 00:04:37,140 мы проверить индексы, ID и Символ является первичным ключом. 81 00:04:37,140 --> 00:04:41,240 Так идентификатор пользователя и символ спаривание появляется только один 82 00:04:41,240 --> 00:04:44,010 Время в этой таблице. 83 00:04:44,010 --> 00:04:46,050 Теперь давайте посмотрим на код. 84 00:04:46,050 --> 00:04:50,950 >> Так что теперь index.php собирается захватить все нашей информации портфеля и 85 00:04:50,950 --> 00:04:52,700 показать его пользователю. 86 00:04:52,700 --> 00:04:56,230 Итак, сначала мы собираемся захватить деньги что пользователь в настоящее время имеет от 87 00:04:56,230 --> 00:04:57,160 денежных таблице. 88 00:04:57,160 --> 00:05:02,070 Помните, что запрос всегда будет вернуться массив массивов. 89 00:05:02,070 --> 00:05:06,070 Так что, хотя мы только выбрали деньги от одной строки, мы все еще должны 90 00:05:06,070 --> 00:05:10,850 захватить эти деньги путем индексации в нулевой индекс строк и захвата 91 00:05:10,850 --> 00:05:13,720 Индекс наличными. 92 00:05:13,720 --> 00:05:17,810 >> Так что теперь мы хотим выбрать все информация из таблицы портфелей 93 00:05:17,810 --> 00:05:21,640 вот отношение к себе вошедшего в систему пользователя. 94 00:05:21,640 --> 00:05:25,070 Мы, конечно, нужно проверить, что что на самом деле удалось, которую мы 95 00:05:25,070 --> 00:05:28,120 всегда должны делать, когда мы запрашиваем. 96 00:05:28,120 --> 00:05:31,890 Как только у нас есть все, что информация, PSET спецификации сообщает нам, что мы 97 00:05:31,890 --> 00:05:36,298 должны сделать это для того, чтобы приятно хранить вся информация в этом 98 00:05:36,298 --> 00:05:37,850 позиции массива. 99 00:05:37,850 --> 00:05:42,250 >> Так мы пробегаем по всем Информация портфель, глядя 100 00:05:42,250 --> 00:05:47,030 акции, связанные с каждой строки в Информация портфель, а затем 101 00:05:47,030 --> 00:05:52,510 хранения в массиве положения имя, цена, акции и символ всех 102 00:05:52,510 --> 00:05:54,790 связаны с этой акции. 103 00:05:54,790 --> 00:05:59,040 И, наконец, мы собираемся сделать portfolio.PHP, проходя в размере 104 00:05:59,040 --> 00:06:02,290 наличных денег в настоящий момент, позиции массив, который мы только что 105 00:06:02,290 --> 00:06:06,510 построены, и название это страница, которая будет портфель. 106 00:06:06,510 --> 00:06:09,166 >> Давайте взглянем на portfolio.PHP. 107 00:06:09,166 --> 00:06:13,570 И мы видим, что основная интересно часть этого цикла. 108 00:06:13,570 --> 00:06:17,410 Так мы пробегаем по положениям Массив, создавая 109 00:06:17,410 --> 00:06:19,420 стол, где эта таблица - 110 00:06:19,420 --> 00:06:23,220 мы заполнение каждой строки с Информация, которую мы положить внутрь 111 00:06:23,220 --> 00:06:24,470 позиции массива. 112 00:06:24,470 --> 00:06:28,250 >> Опять же, мы должны использовать HTMLSpecialChars в случае этот символ или название 113 00:06:28,250 --> 00:06:31,020 содержат HTML символы. 114 00:06:31,020 --> 00:06:36,690 И вот мы умножения цены и количество акций, которые у нас есть 115 00:06:36,690 --> 00:06:40,880 для того, чтобы получить, сколько это В настоящее время стоит пользователю. 116 00:06:40,880 --> 00:06:42,880 И это все для портфеля. 117 00:06:42,880 --> 00:06:45,500 >> Теперь мы взглянем на продажу. 118 00:06:45,500 --> 00:06:50,190 Так продают собирается вернуться к формат, который мы имели в register.php. 119 00:06:50,190 --> 00:06:53,200 Мы видим, что форма будет , которые будут размещены на этой странице. 120 00:06:53,200 --> 00:06:57,270 Но сначала, когда мы загрузить страницу, мы собираемся сделать это. 121 00:06:57,270 --> 00:06:58,880 >> Так что же это делаешь? 122 00:06:58,880 --> 00:07:03,660 Ну, мы могли бы просто иметь страницу распродажи есть одно текстовое поле, что пользователя 123 00:07:03,660 --> 00:07:06,020 входит в этот символ, который мы хотим продать. 124 00:07:06,020 --> 00:07:08,890 Но мы собираемся быть немного умнее и мы собираемся иметь падение 125 00:07:08,890 --> 00:07:14,690 вниз, что позволяет пользователю выбрать фактические символы, которые они уже имеют. 126 00:07:14,690 --> 00:07:17,940 >> Так мы получаем портфель пользователя. 127 00:07:17,940 --> 00:07:22,630 Мы собираемся, чтобы выбрать из портфелей все символы, которые пользователь 128 00:07:22,630 --> 00:07:26,180 в настоящее время имеет, в настоящее время вошедшего в систему пользователя. 129 00:07:26,180 --> 00:07:28,150 Убедитесь в том, что это удалось. 130 00:07:28,150 --> 00:07:31,960 И теперь мы собираемся цикла по вернулся информацию, просто захват 131 00:07:31,960 --> 00:07:35,610 каждый символ, и хранить ее в этом символов массива. 132 00:07:35,610 --> 00:07:37,570 >> И теперь мы собираемся вывести ее на продажу. 133 00:07:37,570 --> 00:07:43,380 Таким образом, форма продавать собирается просто быть выпадающее меню, выберите. 134 00:07:43,380 --> 00:07:49,140 И каждый вариант в виде распродажи является собирается просто распечатать символ 135 00:07:49,140 --> 00:07:52,380 что мы захватили с портфели таблице. 136 00:07:52,380 --> 00:07:58,390 >> Таким образом, форма продавать собирается представить к sell.PHP. 137 00:07:58,390 --> 00:08:04,340 Глядя на sell.PHP, это код что собирается выполнить, когда мы представляем 138 00:08:04,340 --> 00:08:05,555 на эту страницу. 139 00:08:05,555 --> 00:08:10,320 Мы хотим, чтобы подтвердить, что пользователь фактически вступила в символ. 140 00:08:10,320 --> 00:08:12,730 >> Теперь при условии, что они сделали - 141 00:08:12,730 --> 00:08:16,930 так что теперь мы хотим определить, сколько разделяет пользователь на самом деле продажи 142 00:08:16,930 --> 00:08:20,830 и сколько денег потребитель должен получить для продажи, что многие акции. 143 00:08:20,830 --> 00:08:25,210 Таким образом, мы захватить количество акций, которое пользователь имеет для этого символа. 144 00:08:25,210 --> 00:08:30,690 Мы ищем в портфелях для учитывая пользователя и данный символ. 145 00:08:30,690 --> 00:08:34,289 >> Теперь убедитесь, что, что на самом деле вернулся строку. 146 00:08:34,289 --> 00:08:39,440 Потому что, если этого не произошло, пользователь не на самом деле есть этот символ, чтобы продать. 147 00:08:39,440 --> 00:08:42,890 Предполагая, у них действительно есть этот символ, мы хотим, чтобы захватить количество 148 00:08:42,890 --> 00:08:44,530 акции, которые они имеют. 149 00:08:44,530 --> 00:08:47,640 А теперь мы хотим посмотреть, как гораздо каждая акция стоит. 150 00:08:47,640 --> 00:08:49,450 >> Таким образом, мы использовали функцию просмотра. 151 00:08:49,450 --> 00:08:52,910 Мы ищем до значения символа. 152 00:08:52,910 --> 00:08:56,700 Если предположить, что взгляд, преуспел, теперь мы собираемся фактически обновить все 153 00:08:56,700 --> 00:08:57,830 информация. 154 00:08:57,830 --> 00:09:02,285 Поэтому мы хотим, чтобы удалить из портфелей акции, которые мы продаем. 155 00:09:02,285 --> 00:09:05,610 Мы хотим, чтобы обновить пользователя сумма денежных средств. 156 00:09:05,610 --> 00:09:10,480 >> И мы обновляем его акций раз цена акций - 157 00:09:10,480 --> 00:09:13,050 так вот, сколько денег пользователь только что сделал. 158 00:09:13,050 --> 00:09:15,150 А теперь мы хотим, чтобы обновить нашу историю. 159 00:09:15,150 --> 00:09:17,390 Таким образом, мы не рассмотрели в таблице истории еще. 160 00:09:17,390 --> 00:09:19,440 Таким образом, мы еще вернемся к этому. 161 00:09:19,440 --> 00:09:23,690 >> Теперь, наконец, мы собираемся, чтобы перенаправить назад к портфолио. 162 00:09:23,690 --> 00:09:25,300 Теперь давайте взглянем на покупки. 163 00:09:25,300 --> 00:09:28,910 Таким образом, купить должно быть довольно похоже, чтобы продать. 164 00:09:28,910 --> 00:09:32,300 >> Мы видим, что мы снова будем , чтобы проверить, если мы 165 00:09:32,300 --> 00:09:33,900 представления на эту страницу. 166 00:09:33,900 --> 00:09:37,470 Если предположить, что мы не, мы собирается загрузить на покупку форму. 167 00:09:37,470 --> 00:09:40,210 Итак, что же купить форма выглядит? 168 00:09:40,210 --> 00:09:42,510 >> Мы видим здесь, что это просто обычный образуют что собирается 169 00:09:42,510 --> 00:09:44,450 представить к Энциклопедия программ. 170 00:09:44,450 --> 00:09:49,230 И это будет иметь символ, который пользователь вводит число 171 00:09:49,230 --> 00:09:53,330 акции, которые пользователь хочет купить из этого символа, и этим все сказано. 172 00:09:53,330 --> 00:09:59,890 Поэтому, когда мы представить к Энциклопедия программ, мы теперь собирается выполнить этот код. 173 00:09:59,890 --> 00:10:04,250 >> Мы снова хотим подтвердить, что пользователь ввел что-то действительное. 174 00:10:04,250 --> 00:10:06,730 Так вот мы убедившись, что они фактически вступила в символ. 175 00:10:06,730 --> 00:10:09,190 Здесь мы убедившись, что они фактически введенные акции. 176 00:10:09,190 --> 00:10:12,840 И вот мы, убедившись, что они вошел целое для акций, так 177 00:10:12,840 --> 00:10:15,095 они не пытаются покупать акции ABC. 178 00:10:15,095 --> 00:10:17,630 179 00:10:17,630 --> 00:10:23,130 >> Теперь мы хотим посмотреть на цену символ, поэтому мы знаем, как много Наличные деньги 180 00:10:23,130 --> 00:10:26,590 должны вычесть от пользователя. 181 00:10:26,590 --> 00:10:31,700 Теперь мы выберем, сколько денег пользователь на самом деле имеет и убедитесь, что 182 00:10:31,700 --> 00:10:33,960 что это удалось. 183 00:10:33,960 --> 00:10:35,600 Здесь мы хватая деньги. 184 00:10:35,600 --> 00:10:39,660 И вот теперь, мы делаем, что что пользователь имеет достаточно денег. 185 00:10:39,660 --> 00:10:44,950 >> Таким образом, если количество акций пользователь хочет купить раз цену каждого 186 00:10:44,950 --> 00:10:49,100 этих акций больше, чем сумма денежных средств, которые у нас есть, то 187 00:10:49,100 --> 00:10:50,950 Пользователь не может себе этого позволить. 188 00:10:50,950 --> 00:10:54,500 Предполагая, что пользователь имеет достаточно денег, теперь мы хотим, чтобы вставить в 189 00:10:54,500 --> 00:10:55,980 Портфель пользователя. 190 00:10:55,980 --> 00:10:59,900 Ну, мы вставим в пользователя портфель, если это случается, 191 00:10:59,900 --> 00:11:02,770 Первый раз, когда пользователь покупает что конкретный символ. 192 00:11:02,770 --> 00:11:06,630 >> Но что, если они уже произошло иметь некоторый Яблоко акции? 193 00:11:06,630 --> 00:11:10,930 Что ж, теперь мы делаем использования на дубликат ключа инструкцию обновления. 194 00:11:10,930 --> 00:11:15,750 Так вот почему раньше мы указали, что ID и символ должен быть совместным 195 00:11:15,750 --> 00:11:19,620 первичный ключ, так что, если мы попытаемся вставить ID и символ, которые являются 196 00:11:19,620 --> 00:11:24,670 уже есть, мы просто обновить акции включить новые акции, что 197 00:11:24,670 --> 00:11:26,720 пользователь покупает. 198 00:11:26,720 --> 00:11:30,390 >> Теперь мы хотим, чтобы обновить количество денежных средств, которые пользователь имеет, так как они 199 00:11:30,390 --> 00:11:33,390 только что провел немного денег на эти акции. 200 00:11:33,390 --> 00:11:36,060 И, наконец, мы будем обновлять таблица истории снова. 201 00:11:36,060 --> 00:11:38,590 Что, опять же, мы будем смотреть в в секунду. 202 00:11:38,590 --> 00:11:43,230 И, наконец, мы будем перенаправить вернуться к portfolio.PHP. 203 00:11:43,230 --> 00:11:45,440 >> Так что давайте взглянем на история таблице. 204 00:11:45,440 --> 00:11:48,770 205 00:11:48,770 --> 00:11:53,430 Теперь вспомните, что таблица история предполагается отслеживать все покупает и 206 00:11:53,430 --> 00:11:57,580 продает, что все пользователи делают, а не только текущее количество акций, что 207 00:11:57,580 --> 00:12:00,500 пользователи имеют, что и портфель для. 208 00:12:00,500 --> 00:12:06,350 Таким образом, мы отслеживания пользователя, покупает или продает, будь 209 00:12:06,350 --> 00:12:11,740 это конкретная сделка была покупка или продавать, символ, который будучи 210 00:12:11,740 --> 00:12:17,540 купить или продать, количество акций что мы покупать или продавать, 211 00:12:17,540 --> 00:12:22,840 цена на единую акцию, что существа купить или продать, и наконец, то время 212 00:12:22,840 --> 00:12:25,550 что это покупка или продажа происходит. 213 00:12:25,550 --> 00:12:27,650 >> И это все истории Информация, которую мы должны 214 00:12:27,650 --> 00:12:29,850 отслеживать. 215 00:12:29,850 --> 00:12:37,340 Поэтому, когда мы смотрели на продажи, мы увидели, что мы были вставки в истории продажи, 216 00:12:37,340 --> 00:12:42,060 как ли мы покупать или продавать, текущее время штамп, и 217 00:12:42,060 --> 00:12:46,070 текущий пользователь, символ, который будучи продается, количество акций, которые 218 00:12:46,070 --> 00:12:50,010 продается, и цена фондовый в это время. 219 00:12:50,010 --> 00:12:52,740 Точно так же в покупку, оно будет выглядят почти одинаково. 220 00:12:52,740 --> 00:12:56,820 Разница лишь в том, а не сбыта, мы покупаем. 221 00:12:56,820 --> 00:13:01,243 >> Таким образом, в продажу и покупку, мы вставки в таблица истории все 222 00:13:01,243 --> 00:13:02,960 покупает и продает, которые происходят. 223 00:13:02,960 --> 00:13:08,680 Так что все history.PHP нужно сделать, это схватить информация из истории 224 00:13:08,680 --> 00:13:13,960 стол, убедитесь, что он преуспел, и сделать эту информацию. 225 00:13:13,960 --> 00:13:18,770 Так, глядя на шаблоне history.PHP, интересная информация 226 00:13:18,770 --> 00:13:19,940 прямо здесь. 227 00:13:19,940 --> 00:13:23,935 >> Мы цикла по всем сделки, печать ли это 228 00:13:23,935 --> 00:13:29,580 был купить или продать, форматирование даты и времени что мы сделали эту сделку. 229 00:13:29,580 --> 00:13:31,520 Помните, что мы должны использовать HTMLSpecialChars на 230 00:13:31,520 --> 00:13:33,270 символ, на всякий случай. 231 00:13:33,270 --> 00:13:37,150 И, наконец, форматирование количество акции, которые были куплены и цена 232 00:13:37,150 --> 00:13:39,310 одной акции в то время. 233 00:13:39,310 --> 00:13:42,570 >> И, что отображает всю историю Информация, которую мы должны. 234 00:13:42,570 --> 00:13:44,220 И это все для этого PSet. 235 00:13:44,220 --> 00:13:47,820 Меня зовут Боб, и это был CS50 Финансы. 236 00:13:47,820 --> 00:13:52,171