JASON HIRSCHHORN: Welcome todos a oito semanas. Temos uma semana emocionante na nossa frente. Vocês têm mergulhou neste últimos de palestras para PHP, SQL, HTML, CSS, de modo quatro línguas nova marca que vão para assumir o resto do curso. Também vamos aprender um par de outro línguas antes do final do curso. Mas de qualquer forma, é desnecessário dizer, esta é uma momento muito emocionante em CS50, agora você domina C, ostensivamente, e são passar para programação para websites. Então, esta semana, estamos indo para ir em um rápido tour por quatro línguas que acabei de mencionar, HTML, CSS, PHP e SQL. E, esperamos, vamos deixar muito tempo no final da secção de falar sobre set P desta semana e resposta quaisquer dúvidas que todos têm. Toda semana, a mesma lista de recursos para você, para ajudá-lo com a semana de conjunto de problemas e indo sobre o material - mas esta semana, em particular, para estes conjuntos de problemas com base na Web, há uma série de outros recursos para fora lá que você provavelmente vai encontrar incrivelmente útil. Eu tê-los aqui. Vou enviar e-mail que você esta após seção, e isso também estar online. Mas, em particular, há uma abundância de grandes recursos lá fora. Há também alguns não tão grande queridos, por isso muito cuidado com esses. Mas neste slide, eu tenho quatro bons recursos, um para cada um dos idiomas que você estará trabalhando com esta semana - uma folha de referência para HTML, uma folha de referência para CSS. Este aqui é o manual do PHP. Então, ao invés do homem de digitação e, em seguida, um PHP comando, este é o lugar onde você faria ir para procurar o protótipo da função e exemplos e também algumas dicas e truques para usar funções PHP. Você vai usar este site, muitas vezes, eu encorajo-vos a tornar-se familiarizado com ele. Ele pode ser um pouco técnica, mas também fornece uma tonelada de recursos e exemplos para todas as funções e mesmo outros, como forma de usar arrays ou diferentes tipos de variáveis. Este site é muito útil para PHP. E, em seguida, para o SQL, se você mergulhou esta conjunto de problemas da semana, você vai saber que estamos usando um banco de dados. E nós acessar esse banco de dados por meio de uma interface relativamente agradável. Ou isso é uma forma de acesso esse banco de dados. A interface de usuário é chamada phpMyAdmin. Há uma aba SQL, o que nós vamos olhar para mais tarde hoje. E você pode digitar em seu SQL amostra consultas, de fazer as coisas em seu banco de dados e, em seguida, executar esses procedimentos. E se eles estão corretos, ele vai dizer, de um correto isso. Se eles estiverem incorretas, ele vai digamos, é incorreta. Isso é um ótimo lugar para praticar o seu Consultas SQL antes de escrevê-los em seu código, para se certificar de que você tem o formato correto. Finalmente, um outro site aqui. Este é o site onde você pode ir e certifique-se de seu Código HTML é válido. Então, antes de virar seus problemas definir esta semana, certifique-se de todos seu HTML é válido. Na semana passada, você tinha corrido valgrind, para certifique-se que não tinha vazamentos de memória. Esta semana, você precisa ter certeza de tudo do seu código é HTML5 válido. Se não for HTML5 válido, você está vai conseguir pontos fora. Por isso, certifique - só porque ele não funciona significa que é completamente válido. Execute o seu código através deste website antes de virar-lo dentro Mais uma vez, aqui está o site. Se você tiver qualquer feedback para mim, temos um par de mais seções esquerda, e eu sempre quero fazer o que puder para fornecer-lhe tudo com a melhor secção experiência possível. Então deixe-me saber se há alguma coisa que eu pode fazer para melhorar ou se houver coisas que você vê que eu poderia fazer melhor. Obrigado, Avi. Colocá-lo no site. Esta foi a bicicleta que eu tive quando eu foi, digamos, quatro em casa. É uma Tartaruga Ninja Teenage Mutant ciclismo, no caso de você não pode dizer, porque é um pouco embaçada. Você pode obtê-lo agora em ToysRUs para, eu acho, cerca de US $ 100. Mas a característica desta moto que eu quero você prestar atenção são estes bem aqui. Estas são as rodinhas. Até agora, você tem sido handheld através de C. E temos tido um longo vez, dois meses mais, passar por C. Para estes próximos dois idiomas, nós não vamos passar muito tempo. As rodinhas estão saindo. E nós estamos indo para mergulhar estes línguas rapidamente e mover-se através los rapidamente, o que não quer dizer que nós apenas estamos indo para deixá-lo natação lá fora, com nenhuma maneira de apoiar si ou descobrir como estes línguas funcionam. Eu apenas mostrei uma lista de recursos para ajudá-lo. Mas tenha em mente que o PHP é incrivelmente semelhante ao C. Vamos passar por cima de hoje e algumas das diferenças. Mas, na maior parte, existem para loops. Há se as condições. Quando você quer resolver um problema, você vai usar um combinação desses. É muito similar. A lógica deve ser muito semelhante ao o que você fez no passado. O que é realmente novo esta semana é a sintaxe e como você se expressa. E você quer escrever um loop for, mas pode parecer um pouco diferente. Ou você quer criar uma matriz, mas pode parecer um pouco diferente. Portanto, tenha em mente que, movendo-se para a frente, a lógica é muito semelhante ao que que você fez no passado. Mas agora você está indo para estar encontrando um monte de nova sintaxe. E nós não vamos levá-lo através todos os elementos de sintaxe. Então, é realmente até você descobrir, on-line ou através de estender a mão em Discutir ou enviando-me ou falar com uns aos outros, como escrever as coisas em PHP e como escrever consultas SQL e como usar HTML e CSS. Mas só para você saber, não é isso estamos tentando jogá-lo lá fora novamente para nadar os tubarões. Isto é o que você provavelmente vai fazer com seu projeto final, se você escolher um linguagem diferente, como IOS e Objective C, ou se você decidir começar programação no futuro e mergulhar em outros idiomas, como Python ou Ruby. Muitas vezes, a lógica é muito semelhante em todas as línguas, eo sintaxe é que é diferente. E vai ser até você, como o programador, para ir usar a web recursos disponíveis para você e figura a forma de expressar o que você sabe para expressar em C, numa idioma diferente. Portanto, esta é uma boa prática, tanto para o seu projeto final, e mais uma vez, por o que você provavelmente vai fazer depois de sair CS50. Antes de seguir em frente, faz qualquer um tem alguma dúvida sobre o que Eu tenho feito até agora? Grande. Vamos seguir em frente. Primeiro, vamos falar brevemente sobre o comando chmod. Isso, vamos fazer no início de seus problemas de definir. Uma das primeiras instruções para você, depois que você baixar o código de distribuição, é a alteração da permissões dos arquivos e diretórios que recebe. Alguém pode arriscar um palpite ou sabe por isso que é importante para mudar a permissões de certos arquivos e diretórios em seu computador? Avi - AUDIÊNCIA: Então ninguém, exceto para você pode ver o que você está fazendo? JASON HIRSCHHORN: OK. Portanto, se queremos colocar algo na web e você tem permissões definidas que só você pode ver algo, então ninguém mais pode ver o que você criou. O que mais? É. AUDIÊNCIA: Evitar qualquer outra pessoa que você Não quero ver alguma coisa, a partir de vendo algo. JASON HIRSCHHORN: Isso é verdade também. Provavelmente há algum código que você escreve, que você não quero que as pessoas vejam. Você provavelmente está OK com as pessoas vendo seu HTML e seu JavaScript. Mas o PHP, um código de back-end, um monte de a lógica ao seu código, talvez o coisas que armazenam algumas de suas senhas para o seu banco de dados, você não quero que as pessoas vejam que tipo de informação. Portanto, é importante que, cada arquivo e diretório que criamos tem permissões aplicável à possibilidade ou não queremos pessoas para ver esses tipos de arquivos e diretórios e ser capaz de acessá-los e, potencialmente, até mesmo alterá-los. Assim, existem três tipos de permissões. Há uma permissão de leitura, o que significa você pode ler um arquivo ou uma lista a conteúdo do diretório. Há a permissão de gravação, o que significa que você pode alterar um arquivo ou mudança um diretório e, em seguida, executar o permissão, o que significa que você pode executar um arquivo ou melhor, você pode mover-se em um diretório. Então algo CD, se você tiver o permissão para executá-lo, você pode mover para o diretório. Este é um breve exemplo. Mais uma vez, você foi ao longo deste no conjunto de problemas. Mas eu criar um diretório com o comando mkdir. Eu alterar as permissões. Estas duas linhas realmente fazer exatamente a mesma coisa. Isso é para ilustrar que a sintaxe alterar as permissões, se você faz a a + x ou 711, estas são as mesmas. Nós olhamos para baixo nesta mesa agradável. Vemos que há de usuário permissões primeiro. É você, o indivíduo, e seu servidor, potencialmente. E depois há o grupo e outros. As diferenças entre os dois são relativamente triviais. Então, geralmente, vamos agrupar aqueles em conjunto. Mas, essencialmente, se temos um arquivo chamado inclui que queremos ser capazes de nos editar e que queremos outros para ser capaz de executar, é a permissão 711. E vemos que para baixo aqui nesta mesa. Temos uma leitura, gravação e execução. Para cada um de nós, queremos ser capaz de fazer aquelas. Grupo e outros, nós só queremos que sejam capazes de executar. A nossa forma de traduzir isso para um número de permissão é através de binário. Então, se temos três uns, isso é um 1 na coluna queridos, um 1 nos pares coluna, uma coluna de um dos quatro. Isso é 7 ali mesmo. E essa permissão é 1. Esta permissão é 1. Então, 711 quando é o mesmo que dar nos ler, escrever e executar, e todos os outros privilégios de execução. Esta linha aqui, geralmente terá que ler e escrever quando nós criar um diretório. Portanto, esta linha aqui só acrescenta executar privilégios a todos. Assim que seria semelhante a, em Além de que temos, adição de 1, 1, 1 a todos. Considerando isso, é desnecessário adicionar ler e escrever. Mas se você estiver indo para usar os números, você não pode simplesmente acrescentar algo. Você substituir o que quer que fosse permissão lá e implementá-los com o novo número que você dá. Isso foi muito rápido. Alguém tem alguma dúvida sobre como alterar permissões? OK. Se eu tiver um arquivo PHP, que permissões eu quero que ele tem? Isto é, no conjunto de especificações problema. Assim, você pode olhar para a especificação e em seguida, leia-me a resposta. AUDIÊNCIA: Você quer que o usuário ter permissões de leitura e escrita. E você quer que todo mundo mais o que não tem nada. JASON HIRSCHHORN: E o números é isso? AUDIÊNCIA: 600. JASON HIRSCHHORN: 600. Então chmod 600 - sempre que você imprime um arquivo PHP, chmod-lo para 600. OK. Eu tenho um diretório. Alguém além de Jeff, Eu tenho uma pasta de arquivo. Quais as permissões que eu quero para dar a essa pasta - também no conjunto de problemas de especificação, logo abaixo esta resposta ou a resposta anterior? Também potencialmente no slide - Marcus. AUDIÊNCIA: Para o pasta, é 711. JASON HIRSCHHORN: 711 - então uma pasta, você quer dar 711. Você quer ser capaz de ler essa pasta, alterar os diretórios, mover-se em essa pasta. E você quer que todo mundo seja capaz para navegar dentro dessa pasta, mas não necessariamente alterar o seu conteúdo. E sobre um arquivo não-PHP, dizer, um arquivo JavaScript? Quais as permissões que queremos para dar esse tipo de arquivo? AUDIÊNCIA: 644. JASON HIRSCHHORN: 644 - por isso queremos dar-lhe 644? AUDIÊNCIA: Para permitir que outras pessoas lê-lo. E você ler ou escrever. JASON HIRSCHHORN: Então, bem, todo mundo mais pode ler esse arquivo JavaScript. E você pode mudar isso, além para ser capaz de lê-lo. Assim, um dos erros mais comuns de pessoas ter com este conjunto de problemas e sua projeto final, se é uma final com base na Web projeto é, eles não vão ter definido as permissões corretas. E que não vai ser capaz para ver o seu site. Ou uma parte específica do seu site. Então, certifique-se de definir o permissões corretamente. Não basta assumir que ele vai fazê-lo automaticamente para você. OK. Isso foi uma coisa pequena que passamos uma boa quantidade de tempo, por isso podemos pregá-lo. Vamos passar para HTML. E, novamente, para estes quatro tópicos seguintes, vamos passar por eles de forma relativamente rápida. Então, não hesite em me parar a qualquer tempo, se você tiver quaisquer perguntas, se eles estão relacionados com o que eu cubro ou algo de palestra ou mesmo a partir do conjunto de problemas. Pare de me sempre que você precisar. Quando chegarmos ao fim, vamos começar a ir sobre o conjunto de problemas. Assim HTML significa HyperText Linguagem de marcação. Não é uma linguagem de programação. Tudo que faz é estrutura o seu conteúdo e também fornecer alguma metadados. Assim, por exemplo, presumivelmente, muitos você já usou o Facebook antes. E você pode incluir links, ou você pode colocar um link em seu status. E então, você vai perceber que ligação sempre tem uma bela imagem para ele e algum texto. Geralmente, isto é, alguns metadados para uma página web. E é metadados específicos do Facebook. E então, quando o Facebook é a leitura que página e inserir esse link, ele olha para os metadados específicos, por isso sabe o que imagem para mostrar, o que título a ser exibido, eo que texto do resumo para exibir. Assim, podemos incluir metadados com nossa página web usando HTML. E isso também nos ajuda estrutura o conteúdo, em geral, o que queremos ir onde. Tudo em HTML é um elemento. E elementos aqui mesmo - este CS50, o texto é o elemento. E tem algumas marcas. Tem esta uma tag. E notamos que há uma uma no no início e em seguida, uma barra de um, assim fechando a uma marcação no final. Às vezes, não há um diálogo aberto tag e uma tag perto. Há apenas uma coisa. Vamos ver um exemplo de que no próximo slide. Assim, você não precisa de um aberto e uma etiqueta de perto. Mas, para isso, estamos encerrando este Elemento CS50 no uma tag âncora. E, essencialmente, estas tags dizer o navegador o que fazer com o elemento em particular. Então, novamente, CS50 é o texto vamos ver. E isso vai ser um tipo de âncora. Anchor é utilizado essencialmente links para algo. Em particular, como você pode já diz, este é um link para a página inicial CS50. A próxima parte da tag - ou em geral, uma parte de tags são atributos. E vemos aqui, que a uma marcação tem um atributo, este atributo href. E eles modificar uma determinada marca. Na verdade, se você for a um dos sites ou as referências que lhe dei antes ou procurar a uma marca on-line, você vai notar que há uma tonelada de atributos potenciais. Este é provavelmente um dos mais comuns. Isso está me dizendo para criar um link para o site específico. E atribui geralmente são dadas, se não for dada exclusivamente, em pares chave-valor. Então aqui está a chave, href. E o valor é este aqui. E isso virá a calhar mais tarde, quando começar a usar algumas bibliotecas para nos ajudar a código em JavaScript ou escrever o conteúdo HTML. Nós somos muitas vezes vai ser - assim como nós faria conjunto suporte 0 e que nos daria algum valor. No futuro, nós vamos estar fazendo um monte de coisas como suporte algo href. E isso vai nos dar o valor da href, ou se deseja atualizar a href chave e, em seguida, dar-lhe um valor particular. Assim como com matrizes onde tivemos tecla 0 ou a tecla 1 ou tecla 2 ou mesmo com uma Tabela de Hash, também, com suas tabelas de hash assim, você provavelmente teve - ele era uma matriz, então a tecla 0, a tecla 1, tecla 2. Esse índice não, podemos pensar nisso como uma chave. E o valor é o que quer foi armazenado lá. Todos estes atributos são pares chave-valor. E isso vai ser importante para a mudança los ou atualizá-los ou inseri-los mais tarde. Finalmente, você já viu essa estrutura antes, mas este é o mais básico estrutura da página HTML. No topo, nós lhes dizemos que este é, de facto, em HTML. E depois temos um HTML aberto tag e uma tag HTML perto. Então, tudo dentro de este é o código HTML. Vemos a cabeça eo corpo. A cabeça do seu documento geralmente inclui o que? Algum palpite para o que você colocar na cabeça? AUDIÊNCIA: Você coloca o título e estilo. JASON HIRSCHHORN: o título. Isso foi um grande palpite. Eu posso ter derrubado lo fora para o arquivo. Quais são algumas outras coisas? Mencionamos um deles que pode ir na cabeça. AUDIÊNCIA: Ele disse, estilos. JASON HIRSCHHORN: Estilos - por isso, se você quiser ligar em um JavaScript ou até mesmo uma CSS, o que você está falando sobre quando você está falando sobre estilos. Outro arquivo, que pretende ligar em um fora de arquivos, que, provavelmente, vai na cabeça. O que mais? Mencionamos um par de lâminas atrás uma das coisas que HTML pode fazer por você. Ele pode fornecer - inicia-se com um H - AUDIÊNCIA: Metadados. JASON HIRSCHHORN: Metadados - então um monte dos metadados vai na cabeça, porque isso não precisa necessariamente para fazer parte do corpo de seu código. Isso é geralmente - o corpo é o conteúdo, o que alguém vê. E então eu só deu a resposta à minha próxima pergunta. Mas no corpo é geralmente o conteúdo que vai ser exibido na página web. Como veremos, sites complicados tendem a misturar ou alterar o que eles colocaram na cabeça e no corpo. Mas, geralmente, a cabeça contém coisas que o usuário não vai vê na tela. Ela liga em outros arquivos e fornece metadados. Considerando que, o corpo contém tudo o usuário vai ver. Alguma idéia do que essa marca significa p? AUDIÊNCIA: Parágrafo? AUDIÊNCIA: Print. AUDIÊNCIA: Não significa impressão. AUDIÊNCIA: Significa parágrafo? JASON HIRSCHHORN: Parágrafo - por isso este é um parágrafo. E esta tag p, eu poderia ter apenas digitado esta na tela e, em seguida, incluiu uma quebra de linha no final do mesmo. Alguém sabe como incluir uma quebra de linha? AUDIÊNCIA: pr - JASON HIRSCHHORN: pr - AUDIÊNCIA: Corte pr? JASON HIRSCHHORN: barra pr significa quebra de linha. Mas parágrafos têm específica formatação. E nós vamos chegar a formatação em um segundo, quando falamos de CSS. Mas tudo dentro dessas tags p terá alguma formatação padrão associado a ele, provavelmente, alguns espaçamento entre diferentes parágrafos. E vai ser uma maneira de diferenciar blocos de código. Quaisquer outras marcas - quais são as outras marcas que você já viu? JASON HIRSCHHORN: H1 através H6. h1 através h6, eo que é isso? AUDIÊNCIA: Ele vai denotar o quão grande e em negrito as letras são. JASON HIRSCHHORN: Direito, ele representa cabeçalho. E assim header1 é um grande cabeçalho. Ele provavelmente vai, por padrão, ser ousado, um tamanho da fonte grande, provavelmente centrada na na tela, todo o caminho até a h6, , que é um tamanho de fonte menor, menos enfatizado. Claro, você pode, você está em arquivo CSS ou em algum lugar no seu código - o que, novamente, nós vamos chegar a isso em um segundo - mudar o comportamento padrão de uma tag h1 é. Mas tenha em mente que o Chrome, Safari, Firefox, Internet Explorer todos têm padrão olha para um monte de estas tags padrão. Você pode, mais uma vez, sempre mudar como eles se parecem. Quaisquer outras marcas que todo mundo tem visto? Sim - AUDIÊNCIA: Um site div. JASON HIRSCHHORN: Uma tag div - div tag não tem qualquer formato interno, por si, que é usado para bloquear diferentes tipos de código. Quaisquer outras marcas? Sim. AUDIÊNCIA: li - JASON HIRSCHHORN: li - o que está li para? AUDIÊNCIA: List. AUDIÊNCIA: Lista JASON HIRSCHHORN: li é para os elementos da lista. Existem dois tipos de listas. Quais são os dois tipos? AUDIÊNCIA: ordenada e não ordenada. JASON HIRSCHHORN: Ordenados e desordenadas - estandes tão ul para uma lista não ordenada. Isto é, se você quer uma bala apontar, uma lista de balas. Uma lista ordenada é uma lista numerada. E assim você vai fazer uma tag ul aberto e, em seguida, toneladas de elementos da lista e, em seguida fechar a marca ul. e que a vontade criar uma lista não ordenada. Vamos ver alguns exemplos de HTML em um pouco. Mas antes disso, eu quero começar a CSS. E CSS significa Cascading Folhas de estilo. E isso é muito intimamente relacionado para HTML, mas um pouco diferente. Isso ajuda você a formatar todo o conteúdo que as estruturas de HTML. Assim, em CSS, nós geralmente não queremos estilo de cada cabeçalho ou a cada única imagem ou a cada parágrafo único. Queremos estilo alguns elementos ou talvez um elemento específico. E a maneira como o estilo de um específico elemento é dar-lhe um ID. Portanto, este é um atributo. Ele tem uma chave e um valor. ID é a chave. Logo é o valor. Peguei logotipo de forma aleatória. E se você der algo um ID, geral, que só deve ser dado de um elemento. E então, na sua folha de estilo, você pode estilo que determinado elemento, no entanto você quer olhar. Se você quiser o estilo de um número de elementos, talvez seja uma certa classe de cabeçalhos, apenas alguns de seus cabeçalhos. Talvez seja um cabeçalho e uma imagem e um parágrafo que todos querem ser centrado. Então você pode dar a esses grupos de todos os elementos de uma classe. E você pode dar a classe estilos específicos. Então, uma identificação e uma classe são duas formas de quebrar o seu código, para que você possa ajudar a ser mais específico no que você estilo. Há três maneiras de pentear. O primeiro é, com este atributo de estilo. Então você vê, a chave estilo é estilo. O valor de estilo é realmente outra lista chave valor. Neste caso, eu escolhi uma chave, text-align. E eu disse, centro. Você deve estar se perguntando neste ponto, como é que eu sei sobre text-align. O que isso faz? Essa é uma ótima pergunta a fazer, e nós vamos chegar lá em um segundo. Então essa é uma maneira de denominar algo, apenas dar-lhe o atributo de estilo. Outra forma de denominar algo é - este é Akshar mencionado anteriormente. Você pode usar marcas de estilo e colocar esse na cabeça do seu documento HTML. Então você está basicamente dizendo: o conteúdo dentro aqui é algum conteúdo estilo. E o formato para isso é a coisa que você quer estilo e, em seguida, dentro de chaves, o par valor de chave de atributos que você quer dar a esse tipo particular de elemento. Por fim, e esta é a forma mais comum. E esta é a maneira que nós fazê-lo em conjunto p 7. É uma folha de estilo externa. Então você tem um arquivo css.. E dentro dele, você vê um monte de coisas que se parecem com isso, o nome de algum tipo de elemento ou um ID ou uma classe e, em seguida, dentro de encaracolado chaves, uma lista de pares de valores-chave. É claro que, se você criar um externo arquivo, você vai precisa incluí-lo - afiada incluir, que faria ser a analogia C - em seu arquivo HTML. Então você tem que incluir este código em seu arquivo HTML. Sendo este o nome do arquivo e assumindo que é no mesmo diretório. OK. Isso foi muito. E nós estamos indo agora para respirar e olhar em alguns, website de verdade e explorar esta mais. Mas antes de fazer isso, alguém tem alguma dúvida? Então, se você quer fazer isso junto com me, podemos ir para o aparelho. E eu escolhi o home page CS50. Você pode fazer isso com qualquer site. Mas por que não começar com a página inicial CS50? Vamos atualizar. Na verdade, eu recomendo que você está fazendo isso junto comigo, porque o que nós vamos fazer agora vai ser extremamente útil para você, não só em P-Conjunto 7, mas em P-8 Conjunto bem. É. AUDIÊNCIA: Existe uma maneira de fazer comentários em HTML, sem o uso de PHP? JASON HIRSCHHORN: Sim, você pode fazer comentários em HTML. AUDIÊNCIA: Qual é a sintaxe? AUDIÊNCIA: Ponto de exclamação traço traço. AUDIÊNCIA: OK. JASON HIRSCHHORN: sim. Essa é a sintaxe. Você pode fazer comentários em HTML. Você pode fazer comentários em PHP. Como você vai ver, comentar em HTML será ainda aparecem, quando olhamos para o Código-fonte HTML de um site específico. Portanto, este cs50.net. Se você clique direito no mais moderno navegadores em mais qualquer página, você vê o código fonte da página. Então, vamos fazer isso no CS50. E eis que, nós ver uma coisa gigante. CS50 realmente parece muito bom. Um monte de sites não vai olhar este bom. Se você vai para a página inicial do Google e abri-lo. Não vai olhar este bom. Mas você percebe que, na parte superior - este tipo de pequenos. Vamos fazer deste maior. OK. No topo, DOCTYPE HTML, que é familiar. Em seguida, vemos a tag HTML aberta e a cabeça, aqui, tudo dessas meta tags. E você pode ver isso og, não vai entrar nisso agora. Mas tenho quase certeza de que esses seriam Facebook. Isso é realmente o Facebook. Eu acho que está para gráfico aberta. Então lembre-se, eu estava mencionando há Metadados específicos do Faceboook você pode dar a uma página. Isso é o que está aqui. Então, quando você ligar esta página no Facebook, a imagem que vai mostrar é esta imagem aqui. E você realmente vê que é Facebook, porque é a imagem do Facebook. Mas de qualquer forma, nós estamos chegando para o lado. Então, nós temos algumas tags de metadados aqui. Vemos o título CS50. E mais uma vez, o título é o que se passa aqui em cima na aba do navegador. Vemos isso está ligando em, aqui, um arquivo JavaScript externo. Nós não falamos sobre JavaScript muito, mas na próxima semana - e, certamente, se você está fazendo um conjunto de problemas com base na Web, você estará usando JavaScript. Isto é como você ligar no exterior JavaScript arquivos. Vemos aqui, finalmente, a CSS folha de estilo, que documenta estes estilos deste Código. Vamos realmente abrir isso e dar uma olhada muito rapidamente. Isso parece loucura. Não há nenhuma maneira que eu seria capaz de ler. Então você pode realmente embora, se você tomar um olhar, você pode ver que tipo de existem - lá vamos nós. Isso parece algo que já vimos antes, cor de fundo, colocando- igual a algum valor vermelho-verde-azul. Este tipo de coisas não deve parecer que estrangeira, ainda que, quando se apresenta assim, ele pode ser um pouco esmagadora. Nós não vamos olhar para este arquivo CSS ou gastar muito tempo com isso, porque é, mais uma vez, muito difícil de ler. Vamos voltar a este Página HTML para CS50. E vamos rolar para o corpo. E dentro vemos essa tag div. Vemos um cabeçalho bem aqui. Vemos a tag âncora. E este elemento da lista é dada uma classe específica. E vemos que a classe repetido uma e outra vez. Aí está você Curtis. Há o comentário em HTML5. E, como você observou, ainda podemos ver -lo, mas ele não está aparecendo. É realmente muito interessante. Parece que esta lista pontuação elemento está comentada. Se formos para esta página, mais uma vez, ainda Aparece lá, tão interessante. Ah, é por isso, porque desta linha seguinte. O que mais vemos de interesse? O resto é mais confuso, em lidar com esta metade direita do site, que é um pouco pouco mais complexa. Então é isso que um pouco de HTML vai ser parecida. Para mim, porém, isso é um pouco avassaladora, e isso não faz me ajuda muito. No entanto, há algo que se, de fato, me ajudar muito. E isso é o que eu uso sempre que estou tentando descobrir como algo olha o jeito que ele faz, ou como pode I fazer alterações no meu site. E essa é uma ferramenta de desenvolvimento que está embutido no Chrome. Então, se você vai para este três bares direita aqui e ir até ferramentas, clique em Ferramentas de Desenvolvimento, uma pequena janela será aparecer na parte inferior da página. E, em particular, de cromo, uma vez que é maravilhoso, irá formatar esta janela e tomar o HTML e torná-la muito mais agradável para você. Então agora é realmente alguma dobrável HTML que você pode explorar para inspecionar os elementos da página. Se quisermos olhar para o corpo, ele realmente destaca. Quando se desloca sobre uma parte do HTML, para baixo nesta janela, ele será destacar a parte que está falando sobre na grande janela. Então deixe-me tentar de novo soprar esta um pouco. OK. Então, vamos abrir o corpo. E eu estou rolando sobre esta div esquerda. E você percebe que ele está destacando esta metade esquerda da tela. Então, vamos clicar em que e expandir isso. Dentro dela, parece que existem dois divs. Há essa primeira div. Eu não vejo que destacou. Eu não sei, mas parece que esta uma segunda, para a esquerda interior, é o conteúdo no lado esquerdo do ecrã. Então há essa coisa chamada de cabeçalho. Parece que está destacando a parte CS50. Se abrirmos que acima, vemos que é nada mais do que um cabeçalho. É dado um ID, e é dado o CS50 texto. Então, novamente, olhando para ele através deste console ou usando as ferramentas de desenvolvedor painel na parte inferior das marcas de tela explorar este site, espero, um muito menos intimidante e muito mais acessível. Ele também permite-nos compreender que Neste site, embora pareça muito bonita e agradável, não é tanto assim mais do que o que você vai ser fazendo no Conjunto de Problemas 7. E isto está totalmente dentro sua capacidade de criar. Se queremos - outra coisa legal sobre o uso desses ferramentas é, se você clique direito sobre o título, você pode editar o código HTML. Então, vamos chamá-lo de Jason. E agora você vai perceber que eu mudei o HTML nesta página. Claro, eu não mudaram -lo permanentemente. Se eu atualizar meu navegador, então seria voltar para o HTML original. Mas às vezes eu quero depurar o meu código, e eu não quero olhar apenas tenho a minha janela gedit e tentar entender o que está acontecendo. Eu quero ver o que vai acontecer ao vivo. Então, eu vou editar um código como este e obter do jeito que eu quero que ele veja. E então eu vou fazer o mudanças no meu código. E eu acho que é muito mais fácil quando você pode fazer as coisas instantaneamente, assim. Diga, novamente, queremos fazer uma outra chance, porque nós estamos explorando com HTML e CSS no momento. Posso editar o HTML agora. E eu estou indo para incluir um link. Então, eu vou mudar a casa de CS50 página, por isso ele vai ligar para - digamos - a minha home page. Qual é o nome, se alguém lembra, ou qual é o atributo que eu quero dar a um guia de âncora quando eu quero que a ligação em outro lugar? AUDIÊNCIA: href? JASON HIRSCHHORN: href - Então, agora, você vai ver que há é um sublinhado sob Jason. Isso porque o Chrome, por padrão, âncoras dá um sublinhado. Você provavelmente já viu isso antes quando você foi para uma página web. Coisas que são as ligações são sublinhado e em azul. O estilo padrão para um link é geralmente sublinham e colocá-lo em azul. Se eu não gosto disso, Eu posso mudar isso. E nós vamos mudá-lo em um segundo. Mas agora, também notar que, se eu passar o mouse por causa disso, na parte inferior esquerda do tela, logo acima dos elementos nominativos é o link que eu dei. Então, se eu fiz clique sobre isso - e podemos clique direito sobre isso, abra uma nova aba. Esta não é realmente a minha página inicial. É apenas o meu nome. Lá você vai. Nós agora transformá-lo em um link. Vamos explorar algumas CSS também. A coisa linda - e eu vou fazem deste um pouco menor - cerca de este console é que folha CSS louco vimos antes, que foi muito difícil de analisar, já está muito bem estabelecidas para nós no lado da mão esquerda deste painel. Assim, podemos olhar. E se expandir este guia estilos, nós pode ver todos os diferentes estilos que estão associadas com, neste caso, este elemento particular, esta elemento link. Se fizermos a guia estilos compostos, que apenas nos mostra, não onde tudo vem, mas, essencialmente, todos estes estilos que estão operando em este elemento em particular agora. E vamos dizer, nós queremos para mudá-la um pouco. Então, isso é todos os estilos que são operando sobre este elemento particular. Diga queremos mudá-lo, porque nós quero ver como algo parece. E estamos apenas brincando em torno de agora. Ou queremos testar alguma coisa, antes de escrevê-lo no código e empurrando lo e torná-lo viver. Nós podemos ir para a aba estilos. E na primeira caixa que diz, element.style. E aqui, você pode inserir, você pode adicionar alguma coisa. Então eu quero - vamos para o meu link eo definir a cor do fundo. E ele realmente AutoPreenchimento isso por você, todas as possíveis propriedades. Cor de fundo, e eu quero para fazer essa azul. Blus não é uma palavra. O azul é uma palavra. Será que eu vê-lo subir? Oh, porque é que ele está no href? OK. Então, eu não vejo nenhuma mudança aqui. E isso porque, se destacam o link, você notará que o link não é efectivamente controlar a propriedades deste elemento específico. É, na verdade, se abrir o link, este cabeçalho aqui que é controlar o que parece. Então, se eu quiser fazer o plano de fundo azul, eu realmente tenho que mudar cor do fundo no elemento cabeçalho. E agora vemos que o fundo é azul. Então, novamente, isso rapidamente pode estar acontecendo através deste material muito rapidamente. Mas isso é essencialmente o que você vai estar fazendo. Não é no Conjunto de Problemas 7, mas certamente quando você está codificação na web. OK. Eu quero fazer o fundo azul. Mesmo que, neste caso, azul parece muito feio. Eu posso ir aqui, brincar. Vejo que mudá-lo para o azul não funciona no a. Eu tenho que realmente alterar o cabeçalho elemento de incluir o azul fundo. E então, se então eu vou voltar para o meu CSS arquivo, como faço para realmente definir esta fundo a ser azul e fazer esta vara mudança? Porque se notar se eu atualizar a página, todas as alterações que fiz se foram. Então eu percebi, OK, a minha fundo é azul. Eu preciso ir para aquele elemento header1 e alterar cor de fundo para azul. Como posso realmente fazer essa mudança? Bem, lembre-se que, se entrar daqui, este cabeçalho, o título tem um ID. E isso é o título. E assim, em nosso arquivo CSS, podemos dizer, OK, levar nada com ID de título e dar-lhe essa propriedade adicional. Como é que vamos referenciar algo com o ID do título, todas as idéias, ou qualquer sei como é que faz referência IDs em nosso arquivo CSS? Um hash, que é exatamente correto. E você tem uma dica do que aqui. Então, em algum lugar neste arquivo CSS, há esta linha de código - # Esquerda # left-interior título # header #. E isso está dando margem inferior, que define a margem inferior do presente determinado elemento. Bem, se eu quisesse mudar isso, Gostaria de ir para esse arquivo CSS. E eu poderia encontrar este ou parte do arquivo CSS. Ou eu poderia escrever a minha própria. Eu poderia fazer de hash título encaracolado cinta e em seguida, azul cor de cólon ponto e vírgula e perto que chaveta. E que iria mudar o fundo cor deste elemento para azul. A razão que eles dão-lhe muitos aqui é isso, é necessário, neste caso, porque título é uma identificação única. Mas o que você pode fazer é coisas ninho. Então, isso está dizendo: OK, vá para a esquerda. Isso é muito pequena. Peço desculpas por isso. Mas ir para a coisa com ID esquerda. Dentro disso, olhar para o coisa com ID esquerda interior. Dentro desse olhar, olhar para a coisa com cabeçalho ID. Dentro disso, olhar para a coisa ID título e mudar o título de identificação. Portanto, esta é apenas uma maneira de coisas de nidificação. Algumas pessoas gostam de ninho, porque torna-se um pouco mais claro. Você vai ver por aqui também, né aqui, não há hash. É só H1. Isso porque h1 é dada a nome de uma marca genérica. E há algumas propriedades CSS associada a cada h1. Então, se eu encontrei um outro h1 nesta página, Também gostaria de ver que este estilo era aplicadas a ele também. Se eu quisesse aplicar um estilo a uma classe, como faço para fazer referência a uma classe ou falar de uma classe em um arquivo CSS? AUDIÊNCIA: Dot. JASON HIRSCHHORN: É com um ponto. Então, vamos voltar a esta página antes. Se eu fizer hash de identificação. Isso está mudando o estilo da coisa com ID. Ou muito, se eu fizer logotipo de hash, que é encontrar a coisa com o ID do logotipo e dando-lhe um estilo CSS particular. Se eu fizer alguma coisa. Top, que está encontrando tudo com a classe de topo e mudando seus estilos. Se eu simplesmente H1, que encontra cada h1 individuais e lhe dá o que quer que estilo que eu quero dar-lhe. Se eu fizer espaço h1 e depois. Topo. Isso vai encontrar todas as h1s e depois todos aqueles com a classe de topo e então só mudar esses estilos para o que eu quero dar. E mais uma vez, poderíamos ter escrito algumas dessas por conta própria. Mas não teria chegado tão longe. Muito melhor, parece que realmente ir em um site real ao vivo e ver como eles fazem isso e olhar para toda a coisas fantásticas que você começa a fazer. Vejamos mais um website antes de seguir em frente. E este é um que você provavelmente vai se familiarizar com. Este é CS50 Finanças. Então, novamente, você pode realmente entrar e observar este arquivo CSS em seu computador, porque você baixou este Arquivo CSS, se você baixou o conjunto de problemas. Nós podemos ir para Ferramentas e Ferramentas de Desenvolvimento. E vemos um layout HTML muito mais simples. Temos superior, central e inferior. E, novamente, algo que deve ser familiarizado, porque você olhou através do código de distribuição para definir problema desta semana. No topo está, por código, uma única imagem chamado. E essa é a fonte da imagem. Digamos que eu terminar tudo o que Eu queria para Conjunto de Problemas 7. E ele está funcionando corretamente, mas Eu quero mudar seu visual. E eu quero mudar o fundo da parte superior da página para, por exemplo, azul. Se fosse comigo, eu viria em aqui e descobrir, certo que eu quero mudar. Vamos ver, div top ID, que a aparência como a parte superior da página. Então vamos lá. Vamos tentar mudar o cor de fundo. Vamos fazer Alice azul, porque isso é um mais agradável. E você vai perceber que - você provavelmente não pode ver isso. Mas há uma luz azul, ao lado do logotipo CS50. Vamos mudá-lo em vez de vermelho. E você vai perceber agora eu só mudou a cor de fundo para vermelho. Então agora eu iria para o meu arquivo CSS e digite # top paren encaracolados aqui. Você pode ver o código de direito aqui, chaveta. E então, eu gostaria de acrescentar fundo cor, vermelho. E então, não haveria ser uma chaveta. Então é assim que eu iria explorar e experimentar com formatação no CS50 Finanças local. Eu poderia fazê-lo aqui e teste -lo em meu navegador. E então, eu poderia ir para o meu código real e fazer as mudanças que irão realmente ir ao vivo e que as pessoas realmente ver, se eles estavam a chegar a meu site específico. OK. Isso foi muito. Peço desculpas por passar por ele tão rapidamente. Alguém tem alguma dúvida em tudo sobre HTML ou CSS? AUDIÊNCIA: Você pode apenas passar por cima de como você ligada que se tornou Jason, de novo? JASON HIRSCHHORN: O que que quer dizer ligado? AUDIÊNCIA: Você forneceu um link para outro site, utilizando a âncora. JASON HIRSCHHORN: Então você está perguntando: apenas genericamente, como você faz um link? AUDIÊNCIA: Yeah. JASON HIRSCHHORN: OK. O código para fazer uma ligação - AUDIÊNCIA: Não, como no HTML. JASON HIRSCHHORN: Aqui em baixo, você quer dizer? Então, se eu quiser incluir um link em algum lugar, por exemplo, este é o HTML no meu página aqui. Este é o código HTML. Talvez seja aberto em um arquivo, index.html. Eu ir dentro Vamos ter este autor John Ligação Harvard para alguma coisa. Então, vamos editar tudo isso como HTML. Tudo que você faz é incluir a um, de forma entre parênteses um suporte de perto a começando, em seguida, suporte de barra um suporte de perto no final. Então agora eu incluí uma marca de âncora. E, na verdade, se você clicar fora disso, ele vai agora formatá-lo editar como HTML. E dizer, queremos vinculá-lo. Nós tínhamos-lhe o atributo href. E nós dizemos - E agora, como você percebe, de direitos de autor John Harvard é azul. E quando eu rolar ele, agora é um link. Assim, você pode escrever o código. Você pode cercar praticamente qualquer coisa que você quer em uma marca de âncora e transformá-lo em um link. AUDIÊNCIA: OK. Entendi. JASON HIRSCHHORN: E se eu não queria ele - é claro, às vezes as pessoas tendem para pensar essas coisas que só olham azul e sublinhado são genericamente não é o caminho mais bonito para fazer um link. Então, se eu vir aqui, você vê que, em algum lugar em um arquivo CSS, há escrevi este um e, em seguida, duas chaves. Então, vamos dizer que, para as ligações, eu não quero que eles se tornam azul, em vez I quer a cor de um link para ser este bom magenta. Vamos dar-lhe a cor. Vamos escolher magenta. Agora, todos os links na minha página tem tornar esta bela cor de magenta. Algumas pessoas não gostam de cores em tudo. Algumas pessoas não gostam de sublinhados. Você começa a escolher. Com links, você pode estilizar como eles olhar uma vez que você visitou. Como você verá em um monte de páginas, ligações ficar roxo de você visitá-los. Você pode mudar essa cor também. É. AUDIÊNCIA: Então você alterá-lo para cada link. Mas se você só queria fazer essa ligação si mesmo, se você acabou de fazer no ID inferior ou algo assim? JASON HIRSCHHORN: Tão grande questão. Como você percebeu aqui, eu mudei alguns parte do CSS que se aplica a tudo isso é um A. Se eu quisesse apenas fazer esse link em baixo, eu iria para o meu arquivo de CSS e, provavelmente, fazer exatamente como você disse, de hash espaço um fundo. E isso me daria Como todos na parte inferior. Ou eu poderia, alternativamente, dar-lhe um ID único e depois é só fazer ligação hash. E isso me permitiria para mudar isso. No entanto, apenas distribuindo IDs à ​​toa é geralmente um mau prática, porque aqueles deve ser exclusivo. E quanto mais você tem aqueles, que pode ficar um pouco confuso. É. AUDIÊNCIA: Você pode dar o mesmo ID para vários proprietários? JASON HIRSCHHORN: Tecnicamente, sim. Nada vai impedi-lo, mas você não deve Você deve dar-lhe uma classe. OK, quaisquer outras perguntas sobre HTML ou CSS? OK. Vamos passar para PHP. Oh, sim. AUDIÊNCIA: O que é sobre estes sites que significa que podemos editar los antes de atualizar. Mas uma vez que atualizá-la reverte voltar para o HTML inicial? JASON HIRSCHHORN: Ótima pergunta - por isso, quando você carregou este página web, é HTML. E é JavaScript. O PHP é executado para nos dar tudo o que tipo de site que vemos. E isso criou um pouco de HTML, alguns JavaScript, e alguns CSS. E que agora está acessível pelo nosso computador. E uma cópia desses arquivos é salvo localmente no nosso computador, por enquanto. Assim, podemos editar essa cópia local. Mas, claro, não está editando a cópia do servidor. E quando a gente atualizar a página, temos uma outra cópia do servidor. E assim vemos as coisas de volta como eram. Se fomos capazes, a partir daqui, para editar o site oficial, teríamos um monte de problemas. AUDIÊNCIA: Sim, para que possamos ler e escrever essa cópia. JASON HIRSCHHORN: Certo. Nós só estamos fazendo mudanças locais aqui, mas mais uma vez, muito útil para explorar, muitas vezes. Quando estou escrevendo o meu projeto final, para exemplo, eu quero ver como alguns site feito algo olhar da forma como fizeram. Vou entrar e usar esse painel para baixo aqui, a olhar para o que eles deram a CSS ou qual a cor que eles escolheram ou como eles entendeu de modo que, quando você pairou sobre algo, a lista desceu em uma bela cascata de moda. É uma ótima maneira de inspecionar o que as outras sites fazer e pedir emprestado deles. Vamos passar para PHP. PHP significa, de certa forma recursiva, Processador de Hipertexto PHP. E PHP, o que vai fazer é executar do lado do servidor de código. Então, nós nunca vamos ver o código PHP. No entanto, ele não jogar bem com HTML e muitas vezes gera um monte de código HTML. Mas como você vai estar familiarizado com problema Jogo 7, o código PHP vai executar, gerar algum HTML, e é isso que o usuário vai acabar vendo. PHP é incrivelmente semelhante ao C. No entanto, há um par de diferenças, e essas diferenças são importantes para a nota. Uma diferença é que as variáveis em PHP são vagamente digitado. Alguém tem um sentido do que isso significa? AUDIÊNCIA: Não há necessidade de lançá-lo a si mesmo. Como não há necessidade de escrever em texto. JASON HIRSCHHORN: Eu não usaria a elenco palavra, mas sim, não há necessidade de declarar um tipo de uma variável específica. Como em vez vamos declarar uma variável? AUDIÊNCIA: Use um sinal de dólar. JASON HIRSCHHORN: Use um sinal de dólar. Então $ x é uma variável. $ 1 é uma variável. $ String é uma variável. Essas variáveis, $ x poderia ser um número inteiro. Então, pode ser uma string. Então, poderia ser um personagem. Realmente não importa. Além disso, a coisa legal sobre PHP é, digamos, US $ x é aquele string. E $ y é o personagem um. Você pode adicionar $ x e $ y, e ele vai dar-lhe 2, o que você esperaria. Portanto, há operações em PHP. Porque é variáveis ​​fracamente tipada, alguns a conversão implícita é feito para você e algumas operações. Você pode fazer operações em coisas de diferentes tipos. Considerando que, antes, muitas vezes você obterá um erro em C ditado, este não é o tipo que é suposto para ir aqui. Somente coisas desse tipo pode ir aqui. Você não está indo para obter esse tipo de de erro, geralmente, em PHP. Então essa é uma grande diferença - como lidamos com variáveis. A segunda grande diferença é que Código PHP é interpretado. Wheres, código C é compilado. O que isso significa? Bem, para o código C que executou através de um compilador. Você gerou um arquivo binário. E você executou o arquivo binário. Você cuidou de todos os erros antes de você gerou o arquivo binário. Claro, não poderia ter sido segmentação faltas, quando executou o arquivo binário. Mas não é como se você se esqueceu de incluir a definição de printf, ou você não usar uma variável e apenas criou uma variável desperdício. Ou você não definir um função protótipo. Tudo o que aconteceu antes de você compilado. Ele deu-lhe todos os erros ou mau coisas que ele achava que poderia acontecer. E então, você teve seu 0 e 1 arquivo que você executou. Código PHP não funciona assim. Você vai escrever o seu código PHP. Então, você vai salvá-lo, provavelmente. E, pelo menos em P-Set 7, você vai para atualizar seu navegador, e você vai ver o que aconteceu. Você vai ver a saída de que o código PHP. Você também pode ver, no topo da sua página, um erro. Porque você teve algum erro no seu PHP. Você ainda pode ver o resto a página web está olhando bem. Mas uma parte é errado, e não há um erro naquele lugar. E isso é porque essa parte da seu código PHP não funciona. Na verdade, quando você executar, quando você ir para algo como by.php. Vai passar por seu PHP arquivo linha por linha e executá-lo então e só então. Não vai para compilá-lo à frente de tempo ou compilar uma cópia e, em seguida, dar que compilou cópia para todos. Cada vez, ele vai passar por linha por linha e executá-lo. Por isso, algumas linhas podem trabalhar e imprimir algo correto. E outras linhas podem ser quebradas e produzir um erro em vez disso. Então, quando a depuração de PHP, demos lhe um par de coisas úteis para ajudá-lo a depurar, como a função de despejo. Mas, geralmente, você vai para ver esses erros. E é assim que você vai sabe que fez algo errado. Mas você só vai ver o erro uma vez que você realmente executar o código. Outro aspecto importante do PHP e desenvolvimento web é a idéia de get contra post. Alguém pode explicar o que é a diferença entre GET e POST são? Ninguém - Sim. AUDIÊNCIA: Não um deles permitir que o usuário veja os dados, e um deles não? JASON HIRSCHHORN: Ótimo. Sim, você tem algo a acrescentar? AUDIÊNCIA: I pós fina é uma variável super-global. JASON HIRSCHHORN: Então ambos variáveis ​​são dadas a você. Estes são apenas variáveis. E você sabe que eles são variáveis, porque aqui eu usar o cifrão. Estas são variáveis ​​dadas para você pelo PHP. E quando você se mover entre as páginas da web, você deseja salvar algumas informações. Você provavelmente vai querer salvar se o usuário está logado pol Isso não é salvo em GET e POST. Isso está guardado em alguma outra coisa, uma variável diferente. Alguém sabe o que variável que está salvo em, ou o que você usa em variável P-Set 7, para se certificar de que o usuário está logado? $ _SESSION, Que é exatamente correto, provavelmente importante estar familiarizado com os nomes dessas coisas você usa com freqüência. Então você usa a variável de sessão para salvar informações de uma página para outra. Essa é uma variável super. Ela existe em todas as páginas, talvez como uma variável global, se você quer pensar sobre isso assim. Há um par de outras variáveis que permitem transferir informações de página para página. Em particular, os que vamos nos concentrar em são o GET e as variáveis ​​POST. No PHP eles se parecem $ _GET E $ _POST. E a diferença, como Marcus apontou para fora, entre os dois é que, informações em $ _GET é exibida na URL. Então, se nós olhamos aqui, vemos um link do YouTube. Vemos essa interrogação. Vemos v = e, em seguida, algum valor. Voltar para a ideia de valor de chave par, o v é a chave. E aqui é o valor. Então, se tivéssemos de ir a esta página ou codificação nesta página, teríamos um variável chamada $ _GET. Se fomos para $ _GET suporte aberto "v" próximo suporte, muito semelhante ao conjunto notação, esta é uma matriz associado porque não estamos usando índices. Estavam usando strings como chaves. Mas a idéia muito similar. Se fomos nós, iria receber esse valor. Nesta página, que seria capaz para usar esse valor. Se nós realmente olhar, vamos ir a uma página do YouTube. O vídeo devemos assistir? Este, são pessoas Hobbit fãs? AUDIÊNCIA: sim. JASON HIRSCHHORN: Então, eu estou copiando sua URL compartilhar e colá-lo em uma nova janela. E agora, se você olhar para cima aqui, você vai notar que, mais uma vez - Vou copiar e colar isso em gedit, para que possamos vê-la maior. Você notará que ele tem este ponto de interrogação. O ponto de interrogação que designa tudo depois é que isto vai ser salvo na variável get. Em seguida, ele tem o v, que é a primeira tecla e este primeiro valor. Ampersand é especial. Ampersand está dizendo, OK, nós terminou o primeiro valor. Estamos agora a passar para o outro par de valores chave. Aqui, a chave é chamada de função, eo valor é youtu.be. Então, se eu fosse uma codificação esta página e alguém foi para esta URL e eu tive talvez watch.php. E eu estava programando isso. E eu poderia usar a variável $ _GET. E eu gostaria de ter um v, e Eu teria um recurso. E se eu usar a tecla v, I receberia esse valor. E se eu fiz $ _GET suporte "característica" próximo suporte, gostaria de obter este valor. Mais uma vez, isso não significa necessariamente aplicam-se a - Obviamente, o YouTube chaves e valores e se a informação não se aplica a nosso problema jogo 7. Mas há certas coisas que nós passar via GET em nosso Conjunto de Problemas 7. E, certamente, quando você vai para uma página da web ou está codificando a sua própria página, o $ _GET Virá a calhar quando a sua codificação. O que é uma razão para usar $ _GET em seguida, se oferece nenhuma privacidade? Você vê todas essas informações que está sendo transferido. Está tudo exibido para o usuário. Mas o que é uma razão que você pode quer economizar algo em $ _GET, como oposição a $ _POST? Por que você pode querer fazer isso? Tudo bem. Perguntei-lhe no Quiz 1. Qual é o pro de $ _GET? O que é um pro? Sim - AUDIÊNCIA: É mais fácil compartilhar informações. JASON HIRSCHHORN: Eu acho que isso é ótimo. É mais fácil para compartilhar informações. É mais fácil para marcar. Você pode marcar agora, YouTube.com / watch? V = alguma coisa e ir para que o vídeo específica. Se o YouTube sempre fez solicitações POST para páginas diferentes, cada URL YouTube Seria YouTube.com. Você não poderia marcar um único vídeo. Porque se você disser compartilhado esse link com outra pessoa, eles não obter automaticamente a variável post. Eles estão apenas recebendo este link, eo link é o mesmo para todos. Então isso é um pró. Ele permite que você marcar esta informações ou compartilhar essas informações ou torná-lo um pouco mais user-friendly. Claro, não há privacidade, por isso temos esta variável post. E a informação post não é exibida na URL. Não é totalmente privado. Mas é marginalmente mais privado. E então você verá esta URL aqui em baixo, cs50.net. Se você está ou não conectado ao site, ele vai ter o mesmo URL, cs50.net. Obviamente, é algo diferente, se você estiver logado no site. Você tem, um, provavelmente introduzir o seu PIN. E confirmou que com o servidor. E é provavelmente salvando alguma outra informação. Mas a URL não muda em nada. E assim, esse é o caso, quando algo é enviado por POST. A URL não muda. Esta informação não é POST exibida na URL. Mas algum estado mudou, e talvez há algumas informações salvas no Variável POST. Desculpe. antes de eu ir para o SQL, qualquer perguntas sobre o PHP, em particular, perguntas sobre coisas que não passar por cima de que você encontrou ou qualquer sintaxe ou questões lógicas sobre PHP? OK. O texto final, você será interagindo com esta semana é a Structured Query Language, SQL, pronunciado sequela freqüência. Isso permite que você interaja com o banco de dados de uma maneira formalizada. E ele joga muito bem com PHP. Como você verá no Conjunto de Problemas 7, nós temos lhe dado uma função chamada de consulta. E leva uma string SQL e executa essa consulta no banco de dados. Nos últimos anos, você não estava dada esta função. Você tinha que usar funções PHP para fazer a consulta no banco de dados e de verificação para erros e, em seguida, obter os resultados. E, na verdade, não é tão difícil, porque mais uma vez, que desempenha muito bem com PHP. E PHP dá-lhe uma série de funções para interagir com uma base de dados de SQL. Então, muitas vezes, os dois estes vão juntos. Claro, você pode interagir com o banco de dados SQL com qualquer número de outras línguas. Mas o PHP é uma ótima escolha. Um banco de dados - nós falaremos sobre isso rapidamente, porque esta é uma palavra da moda que vamos começar a usar muitas vezes - é uma coleção de tabelas. Assim, podemos pensar nisso como um arquivo Excel. Um arquivo Excel tem várias abas na parte inferior do ecrã. Cada guia, vamos agora chamar uma tabela, onde uma tabela é um conjunto de linhas. E o que é uma fila? Bem, a linha é a mesma coisa no arquivo Excel. Isso apenas tem certos valores para cada campo ou cada coluna dado dado. É como uma entrada na tabela. É um estudante, que tem um ID, um específico de identificação, e um nome e um específico casa específica. Assim, um banco de dados é uma coleção de tabelas. E mesas são um número de linhas ou registros. Há também, em cada mesa, determinados campos. E que especifica o que cada registro é vai ter, às vezes chamado de campos colunas, mas geralmente chamadas de campos. Nesta tabela muito simples, eu tenho três campos, um campo de identificação, um nome de usuário campo, e um campo de hash. E eu tenho três linhas. Neste momento, eles estão vazios. Eles provavelmente não estaria vazio se esta foi a minha base de dados real. Então, se você já usou o Excel, ideia semelhante ao que você faz no Excel, no entanto, obviamente, agora vamos ser capazes de fazer muito mais poderoso coisas no a informação que é armazenada em nosso banco de dados. Você estará criando-se um banco de dados para Conjunto de Problemas 7. Mas você estará criando múltiplas tabelas no banco de dados. Você estará criando um banco de dados ou uma tabela para os usuários. Você estará também a criação de uma mesa para provavelmente transações com ações, para manter controle deles, porque você precisa implementar um recurso de histórico. Ambas as mesas terão diferentes campos. Por exemplo, em um campo de usuário, você provavelmente vai querer o seu nome de usuário e uma ID e um hash de sua senha. Na tabela de Stocks que mantém o controle de história ou a tabela de histórico, você provavelmente não precisa o nome de usuário eo hash eo ID. Você provavelmente só precisa de um desses valores que são únicas, para associar o com um determinado utilizador. Mas então, você quer armazenar outro coisas como, o tempo Foi transação feita. O estoque foi comprado ou vendido? Quantas ações do foi comprado ou vendido? Qual foi o preço a que o estoque foi comprado ou vendido? Então, novamente, você vai estar interagindo com bases de dados que há vai ter várias tabelas. Cada mesa vai ter seu próprio conjunto de campos. No entanto, provavelmente haverá um semelhante campo em cada quadro, que refere-los um ao outro. Normalmente, este é um campo ID. Porque se cada usuário tem uma identificação única e você associa essa identificação com cada transação que o usuário faz ou toda a história do usuário. E você tem o ID do usuário. Você pode obter informações de ambas as tabelas. Você pode obter o seu nome de usuário, e você pode obter todas as suas transações. Qualquer dúvida sobre bancos de dados, ou perguntas específicas? Na verdade, vamos manter isso. Nós estaremos lá em dois lados. Portanto, há quatro operações em bancos de dados que você irá utilizar em Conjunto de Problemas 7 e provável sempre estar usando. A primeira coisa que quero fazer é inserir um novo registro em uma tabela ou um nova linha em uma tabela. Esta é a função genérica, a forma genérica, de que a consulta SQL. INSERT INTO tabela, qualquer que seja colunas que deseja inserir e, em seguida, os valores que você vai querer colocar para essas colunas ou campos. Se você tiver várias tabelas em um banco de dados ou vários bancos de dados, você também pode precisar especificar o banco de dados ea tabela que você quer para colocar as coisas em. Mas muito simples, se você deseja inserir em algo, você diz, aqui estão os campos que eu quero inserir. E aqui estão os valores. Em algumas tabelas, também, e este usuário do mesa é um bom exemplo. Provavelmente na tabela do usuário e provavelmente na mesa do seu usuário em P-Set 7, não há apenas um valor de username. Não há apenas um valor em dinheiro, ou no campo, em vez. Há também um campo de identificação. Eu não estou indo para inserir esse campo ID. Isso vai ser dada a me automaticamente, quando uma é inserido novo recorde. Portanto, há algum campo que você pode definir a ser automático. Talvez você queira dar a cada usuário $ 10,000 de dinheiro fora do bastão. Então eu não preciso inserir um número de caixa aqui. Tudo que eu preciso é inserir o nome de usuário. E então, o campo de caixa será pré-preenchido, e no campo ID será ser pré-preenchida. Então, muitas vezes, não estamos inserindo algo em todos os campos, porque os outros campos são pré-povoada. Porque é assim que nós criar essa tabela. A segunda coisa que você vai quer fazer é excluir um registro. Excluindo algo é muito simples. Você dá a mesa onde você quer para apagar algo. E você diz, OK, eu quero excluir o registro que tem um nome de usuário de Milo. Ou eu quero apagar todos os registros que ter um nome de usuário de Milo ou que fosse um transação de número de identificação de usuário 2. Qualquer dúvida sobre estes dois tipos de consultas? AUDIÊNCIA: [inaudível]. JASON HIRSCHHORN: sim. Então eu vou usar linha e registro alternadamente e alguns com coluna e no campo. Mas uma linha é um registro. Uma coluna é um campo, indo voltar a esta tabela. OK. A próxima coisa que você provavelmente está vai fazer é obter algum informações da tabela. Essa é uma consulta seleção. E, novamente, que a tabela estou selecionando a partir de? E que coluna que eu quero para selecionar ou qual o valor que eu quero para selecionar e a partir de qual linha? Assim, o Select é um pouco específico. Eu digo, OK, eu quero essa tabela. E então eu quero que o nome de usuário da coluna e Eu quero-o da linha com ID 2. Essa é uma maneira de fazer um Select. Ou eu posso dizer, me dar a cada nome de usuário único. Ou eu posso dizer, me dê um todo linha desta tabela, onde o nome de usuário é 1. Portanto, há algumas maneiras diferentes para fazer consultas seleção, dependendo de como máximo de informação que você quer, Você pode sempre selecionar tudo dessa tabela específica e, em seguida, laço através dele, escolhendo as coisas que você quer. Mas lembre-se, se você está selecionando um monte de coisas a partir de uma tabela e você tem realmente uma grande mesa, que terá algum tempo, então melhor escolher apenas as coisas que você vai para acabar usando. Além disso, com Select e com todos estes outros comandos SQL, bem, eu sou dando-lhe a versão de esqueleto. Mas dizer, estou selecionando os usuários e eu quero imprimi-los em ordem alfabética, Eu poderia selecionar todos os usuários e, em seguida, tipo los em ordem alfabética no meu código. Ou há uma maneira de escrever o select consulta, que seleciona as coisas de uma moda alfabética, baseado fora de um coluna específica, ascendente ou descendente. Portanto, tenha em mente que, muito do que você quer fazer provavelmente pode ser feito em a consulta através de um adicional atributo. Então não procure essas consultas on-line ou as outras coisas que você pode fazer com estes consultas para expandi-los. Por fim, a última coisa que você quer fazer não é inserir algo ou excluir algo, mas em vez atualizar alguma coisa. E isso é feito com a atualização consulta e, novamente, o mesa. E o que a mudança que eu quero fazer? E para que linha ou registro fazer Eu quero fazer essa mudança? Qualquer dúvida sobre SQL? OK. Portanto, temos cerca de 15 minutos. E este é o último slide que eu tenho. E espero que, este último slide é uma bom segue em conjunto de problemas, porque compreender onde queremos inserir registros, excluí-los, selecione eles, e atualizá-los nos ajudará compreender a lógica maior e fluxo do Conjunto de Problemas 7. Então, eu sei todas as respostas a estas perguntas. Eu não vou dizer a você todas as respostas. Mas se alguém gostaria de apresentar uma questão ao grupo ou um responder a um destes questão, podemos usar isso como um ponto de saltar fora para falar sobre o conjunto de problemas. Ou se alguém tem um mais genérico questão fora do conjunto de problemas, sinta-se livre para fazer isso também. E podemos começar por aí. Tenha em mente que você ficar em silêncio está prejudicando a todos. É. AUDIÊNCIA: Então, é a única maneira de passar variáveis ​​de e para diferentes web páginas, ou a mais conveniente forma, utilizando POST ou GET? JASON HIRSCHHORN: Então, sim, que é o maneira mais conveniente dizer - quando alguém preenche um formulário - obter informações sobre uma outra web página, usando GET ou POST. Por causa da estrutura que estamos usando neste conjunto de problemas, você notará que, muitas vezes, tornar outra página. Ou nós prestamos um outro arquivo, não necessariamente outra página. Então nós passamos em uma variável. E, em seguida, ele processa um Página HTML, usando o informação de que variável. Isso não é tecnicamente passando informações entre diferentes páginas da web. Que está a passar informações entre arquivos diferentes. E assim, podemos usar qualquer variável para fazer isso. Mas sim, se quiséssemos passar informações de uma página específica para outra página, GET e POST faria ser o caminho para fazer isso. Quaisquer outras questões sobre o conjunto de problemas? OK. Vamos passar, então, de algum parte do conjunto de problemas. Você está indo a necessidade de, em um ponto, apresentar carteira de alguém em a tela. O que quero dizer quando digo carteira, no contexto deste problema definido? AUDIÊNCIA: É como as ações que eles tem como, muitas ações que possuem, o preço, e quanto dinheiro que lhes resta. JASON HIRSCHHORN: Isso soa muito bem. Então, eu quero mostrar todas as ações que eles próprios para estoque de cada empresa ações e, provavelmente, o quanto isso é vale a pena, e, em seguida, uma variável independente, quanto dinheiro que possuem. Então, dizer que eu quero descrever isso. Vamos começar falando sobre como eu poderia vai fazer sobre isso, o que eu estou tabelas indo a necessidade de ter que ser capaz de fazer isso. Sim - AUDIÊNCIA: usuários bem, e então, eu acho você pode fazer uma tabela chamada Acções ou algo assim, que seria quantos eles compraram. JASON HIRSCHHORN: OK. Então, eu vou precisar de uma tabela chamada Os usuários, que mantém o controle do nome de usuário, presumivelmente, provavelmente algum ID, provavelmente senha de um indivíduo. O que é outra coisa que você apenas disse que é associado? Alguém além de Michael, o que é outra coisa que esta associado cada usuário, exclusivo para eles? AUDIÊNCIA: ID. JASON HIRSCHHORN: ID - o que é uma outra coisa que nós estamos provavelmente vai querer exibir nessa página? AUDIÊNCIA: Seu nome. JASON HIRSCHHORN: Seu nome - o que é outra coisa relacionada a este determinado conjunto de problemas? AUDIÊNCIA: Que ações eles próprios - JASON HIRSCHHORN: Não vão haver um monte de ações que eles possuem. O que é um valor específico, porém, que eles vão ter associado com eles? Como é que eles vão comprar e vender as suas ações? AUDIÊNCIA: Dinheiro. JASON HIRSCHHORN: Eles são vai ter dinheiro. Assim, cada usuário vai ter um valor para o dinheiro. E isso vai ser exclusivo para cada usuário. Assim, no quadro do utilizador, que faz sentido colocar em dinheiro. Você pode, é claro, criar outra tabela que tem IDs de usuário e sua valor do dinheiro. Mas isso não faz sentido. Não faz sentido simplesmente colocar tudo isto de uma tabela. Então, nós vamos ter uma tabela com essa informação. E então, qual é a outra tabela nós vamos ter? Você disse que, uma mesa de Stocks. O que estamos colocando em tabela de Stocks? Qualquer pessoa, idéias - AUDIÊNCIA: A empresa. JASON HIRSCHHORN: Vamos para colocar no nome do empresa, de modo AAPL para a Apple. É. AUDIÊNCIA: Quantas ações e o quanto eles valem. JASON HIRSCHHORN: Quantas ações, o quanto eles valem - o que é outra coisa que precisa em que mesa? AUDIÊNCIA: A ID do usuário para indexá-lo. JASON HIRSCHHORN: A ID de usuário. Então, nesse quadro, vamos provavelmente tem - vamos dizer, se é alguém que possui três ações, três linhas, cada uma com esse ID de usuário ou usuário do indivíduo ID, mas um nome de empresa diferente, uma número diferente de ações presumivelmente, e um valor de preço diferente para cada sobre essas reservas. Mais uma vez, o que estou dizendo agora não é necessariamente a implementação, porque você percebe que há um pouco mais formas eficientes de implementá-lo. Mas este é um bom lugar para começar. OK. Portanto, estas são as duas tabelas que temos. Agora queremos apresentar esta página. Qual é o primeiro tipo de consulta seria preciso fazer. Em cada página, é assumido que um usuário é logado, que têm o seu ID de usuário. Então, qual é o primeiro tipo de query que precisamos fazer? É. AUDIÊNCIA: A ID de usuário. JASON HIRSCHHORN: Temos a sua ID de usuário, quando estamos começando a código no início da nossa página. Então, qual é o primeiro tipo de consulta que precisa fazer, dado ID de um usuário? Fomos ao longo dos quatro tipos. Há apenas quatro respostas possíveis. AUDIÊNCIA: é selecionar um registro. JASON HIRSCHHORN: Um Select - queremos selecionar o usuário do mesa para começar, vamos dizer, sua quantidade de dinheiro. E nós podemos imprimir a quantidade de dinheiro na parte superior da tela. OK. Qual é o próximo tipo de query que queremos fazer? Temos algumas outras coisas precisamos mostrar. Aqueles são salvos em outra tabela. Então, como é que vamos conseguir isso? AUDIÊNCIA: Você seleciona para eles. JASON HIRSCHHORN: Um Select - mais uma vez, há apenas quatro opções. Selecione provavelmente soa como o caminho certo. Então, precisamos fazer outra consulta seleção, novamente usando esse ID de usuário. E agora, queremos voltar e não apenas um linha, bu todas as linhas que correspondem a nossa critérios, onde ID de usuário é igual a 1. E então nós podemos ir e deixar um loop apenas imprimir todos aqueles para fora na tela, talvez imprimir a empresa de cada um deles na tela. Ótimo, isso soa como isso é exibindo uma carteira, não muito mais complicada do que isso. OK, o usuário decide, então, que eles ter muito dinheiro sobrando. E eles querem comprar alguns mais ações de um estoque. Digamos, que já possui estoque desta empresa também. Então, eles vão para a sua página de compra. Eles introdução do nome da empresa. Qual é a consulta, após a entrada do nome da empresa, o que você precisa executar o próximo? É. AUDIÊNCIA: Update. JASON HIRSCHHORN: Update - eo que mesa que você quer atualizar? AUDIÊNCIA: Sua mesa, com base em seu número de ID? JASON HIRSCHHORN: Então atualizar não a mesa do usuário - assim atualizar a tabela de Stocks, onde a ID do usuário não só corresponde, mas a nome estoque também coincide. Você vai ter algum valor. E então, você vai querer levar esse valor e adicione porém muitas ações que quer comprar dele. Então você não quer cegamente substituir esse valor. Mas você pode, de fato, levar essa inicial valorizar e apenas atualizá-lo. Você pode fazer como um plus é igual, ao invés de apenas um igual. O que é algo que embora - se estamos pensando sobre isso e queremos ser tão robusto quanto possível - que devemos fazer antes de executar a consulta atualização? Eles querem comprar cinco anos de Apple. Cada ação da Apple é de US $ 200. AUDIÊNCIA: Devemos verificar o dinheiro em primeiro lugar. JASON HIRSCHHORN: Devemos verificar o dinheiro em primeiro lugar. Devemos ter certeza de que tem dinheiro suficiente. Que tipo de consulta é que podemos executar a certifique-se que tem dinheiro suficiente? AUDIÊNCIA: Outro Select. JASON HIRSCHHORN: Um Select - vamos selecionar com base em sua ID de usuário, para obter o seu valor em dinheiro. Faça alguma matemática rápida. E se isso passa reunir, eles têm dinheiro suficiente. Então, podemos executar o nosso atualização. Ou talvez, se não, nós passamos então. Damos-lhes um aviso. OK. Dizem que não tem uma empresa. Eles estão comprando uma nova empresa. Eles estão comprando Microsoft. Que tipo de perguntas que queremos fazer, se eles querem comprar a Microsoft? E eles não possuem qualquer Microsoft. Não Manu, ninguém mais, ninguém além de Marcus? Carlos - AUDIÊNCIA: A Select, para certificar-se eles têm dinheiro suficiente. JASON HIRSCHHORN: Parece bom. AUDIÊNCIA: E então você insere no [inaudível]. JASON HIRSCHHORN: Exatamente, estamos vai querer inserir na tabela de Stocks. E vamos deseja inserir. Podemos inserir o seu ID de usuário, o nome da empresa, e quantas ações eles querem comprar. Quais são algumas outras operações que são páginas ou funcionalidades que você está vai ter que implementar na P-Set 7, de que devemos passar por cima? AUDIÊNCIA: Na verdade, eu meio que tenho uma pergunta sobre este. Antes de apresentar a carteira, deve você verifica o site do Yahoo para Verifique se o preço das ações não mudaram? JASON HIRSCHHORN: É sons como uma boa idéia. Então, o que Marcus está dizendo é que, OK, estoque os preços estão mudando constantemente. Nos estoques que possuem mesa, a nossa tabela chamada Stocks, nós poderíamos salvar o preço das ações que comprou em. Mas isso não parece que robusta, porque o preço das ações é constantemente vai mudar. Então, na verdade, você provavelmente não precisa para salvar o preço das ações. Mas cada vez que você mostrar o seu carteira, você atualizar ou atualizar o preço das ações. E se você tem - e você já tem. Eu sei que todos vocês já olhou no conjuntos de problemas de volta já. Você já percebeu que nós escrevemos algum código para você que permitirá que você para obter o preço de uma ação, dado o nome de uma empresa. Então, sim, que provavelmente soa um pouco mais robusto. Mas que a tabela não precisa necessariamente para salvar o preço das ações. OK. Quais são algumas outras funcionalidades que você precisa implementar esta semana que podemos falar? Eu quero falar sobre eles. O que você quer falar? É provavelmente neste spec. Gostaria apenas de se deslocar até o fundo da especificação e perguntar-me a primeira palavra você vê que não faz sentido. Uma outra funcionalidade - vamos falar sobre um. Vamos começar por aí. AUDIÊNCIA: Gravar as histórias. JASON HIRSCHHORN: Gravação a história, a grande. Então você vai ter que manter o controle de um histórico de transações. Então você quer manter o controle de todos os vez que comprar ou vender uma ação. Eu comprei o meu estoque. Nós acabamos de dizer, provavelmente faz sentido para incluir um Select, para obter a sua quantidade de dinheiro e cheque de volta. Provavelmente é inteligente, então para incluir uma inserção ou uma atualização, dependendo ou não possui esse estoque. Se nós também queremos manter o controle de uma história, como podemos fazer isso? Será que ir na tabela de ações? AUDIÊNCIA: Não. JASON HIRSCHHORN: Não, provavelmente vai em uma tabela diferente. Porque dizer que você comprar 10 ações da Apple. Então você comprar mais de 10 ações. Você quer rebocar registros separados. Essas são duas operações distintas. Portanto, temos uma outra tabela, uma mesa de História. Então, novamente, nós compramos. Executamos um Select, em seguida, uma inserção ou uma atualização. O que vamos fazer a seguir? Qual é a próxima consulta que executamos quando estamos comprando algo? Queremos manter o controle da história. É. AUDIÊNCIA: Você quer manter o controle transações de falha também. JASON HIRSCHHORN: Bem, antes de dizer que tipo de transação, o que queremos - Que tipo de consulta, Carlos, faria nos permitem acompanhar das coisas em geral? Você tem quatro palpites. Qual deles você acha? AUDIÊNCIA: Atualizando. JASON HIRSCHHORN: Não atualizar. Qual é o seu segundo palpite? AUDIÊNCIA: Seleção. JASON HIRSCHHORN: Se você quiser manter pista de alguma coisa, você provavelmente vai querer anotá-la em algum lugar ou salvá-lo para mais tarde. Então, se não atualizar, então - AUDIÊNCIA: Insira-o. JASON HIRSCHHORN: Inserir, lá vamos nós. Sim, para que você selecione a quantidade de dinheiro que eles têm, parece ótimo. Eles não têm dinheiro suficiente. Essa transação não está indo trabalhar. Não, você não precisa manter o controle de uma transação se ele não funciona. Ou você pode, se você quiser dar-lhes um momento difícil. Mas você não precisa. Em seguida, inserir ou atualização em sua mesa de Stocks. E agora, você tem a sua outra tabela. Você tem a sua tabela de histórico ou o que você quiser chamá-lo. E nesse quadro, você vai para inserir uma nova linha. Isso provavelmente vai ter ID do usuário. Provavelmente vai ter o nome do estoque. Provavelmente vai ter uma vez que eles fizeram isso. E, neste caso, você provavelmente vai deseja inserir o preço. Porque, para uma história, você não sabe importo com o que o preço atual é. Você se importa o que o preço é quando eles comprado ou vendido algo. Então parece que, para implementar a compra envolve completamente um número de diferentes Consultas SQL, mas honestamente, não que muito geral do código. OK. E que cuida da história. Vamos dizer, nós queremos exibir nossa história. Nós conversamos sobre a exibição nosso portfólio. Como podemos mostrar a nossa história? AUDIÊNCIA: Presumivelmente cronologicamente. JASON HIRSCHHORN: Presumivelmente cronologicamente - que consulta que você acha que usaria? AUDIÊNCIA: Uma seleção. JASON HIRSCHHORN: Um select - selecionar talvez todas as linhas dessa tabela que correspondam a identificação do usuário e, em seguida, exibi-los em ordem cronológica, Parece bom. Será que precisamos de escrever código para classificar por essa lista? AUDIÊNCIA: Não, porque você disse nós há um ascendente e descendente coisa. JASON HIRSCHHORN: Coisa? AUDIÊNCIA: Yeah. JASON HIRSCHHORN: Yeah. OK, não vire no código para mim, que classifica manualmente através de suas consultas, para classificá-los. Esse código já está dado. Você pode escrever uma consulta seleção que classifica as coisas. Classificá-los de antemão e em seguida, imprimi-los. Faz muito mais sentido fazer dessa maneira, do que o contrário. Sim. AUDIÊNCIA: Não precisamos classificá-los de antemão? Isso quer dizer que você classificar na base de dados? JASON HIRSCHHORN: A consulta seleção retorna para você ordenada. Então faça isso, ao invés de apenas tê-los voltar para você em uma ordem aleatória e em seguida, classificá-los sozinho. É. AUDIÊNCIA: Existe uma maneira de mantê-lo ordenada na própria base de dados, de modo que você não tem que classificar que cada vez que você - AUDIÊNCIA: Você pode inseri-la ordenada? JASON HIRSCHHORN: Pergunta - que importa que as coisas são classificadas no banco de dados? AUDIÊNCIA: Não. JASON HIRSCHHORN: Bem, eles são classificados. Eles estão ordenados cronologicamente. Mas vamos supor que as coisas são classificadas cronologicamente, de cima para baixo. Nós temos uma forma do Google. Sempre que alguém responde ao nosso Google formar, ele só é colocado no inferior da tabela. Será que isso importa que as coisas são não ordenados cronologicamente? AUDIÊNCIA: se não é cronológica, você não tem que classificar-lo cada vez você levar informações para fora. Mas se ele já está classificado, não pode não tem que fazer isso adicional chamada de função? JASON HIRSCHHORN: Então é isso realmente um bom ponto. Para nós, programadores, talvez importa. E podemos querer encontrar uma base de dados que não resolver as coisas cronologicamente. Ou montar o nosso banco de dados, por isso mantém coisas classificadas por ID de usuário. Então, dessa forma, por exemplo, temos 1.000 IDs de usuário. Ou Facebook, temos milhões de IDs de usuário. Nós não queremos que a nossa mesa para ser apenas aleatória ou nosso banco de dados para ser aleatória. Seria bom se todo o IDs de usuário foram ordenados. Então nós poderíamos executar pesquisas binárias na nossa mesa e, em seguida, basta localizar o pedaço específico. Então, sim, dependendo - se ampliadas, podemos querer encontrar uma base de dados que as coisas mantidos ordenados de uma forma diferente Assim, para que essas consultas levaria menos tempo. E nós não temos que passar através de nossas banco de dados inteiro em cada linha individual em uma determinada tabela. Mas o nível que estamos trabalhando, nós não precisa se preocupar em manter coisas ordenados. Podemos supor que o tempo que leva que consulta para executar vai ser negligenciável, dado que estamos lidando. Mas sim, ótima idéia - como escalar, pode fazer sentido para projetar nossa banco de dados em um pouco de uma maneira diferente. Uma coisa de design de banco de dados final que eu quero de mencionar também, porque você vai ser graduadas, ou marcados em vez disso, em o design do seu banco de dados. Nós conversamos sobre isso. O dinheiro é único para cada usuário. Então você tem uma tabela chamada de caixa que tem o seu ID de usuário e sua quantidade de dinheiro e, em seguida, uma tabela chamada usuários que tem seu usuário ID e seu nome de usuário. Essas tabelas mapear em cada outro de um-para-um. Ele provavelmente faz sentido para eles ser uma mesa. Então, vamos supor que você tem um usuário tabela que mantém o controle de nomes de usuários e dinheiro. Agora você tem uma tabela que tem a ações que um indivíduo possui. E uma pessoa pode possuir mais de um estoque. Então, esses não são mapeadas para cada um de um para o outro. Não faz sentido ter um gigante tabela com 30 registros que tudo repetir um nome de usuário, para que todos repetir uma palavra-passe, que todos repetir um número de caixa. Mas cada um tem talvez um material diferente nome ou um preço de ação diferente. Não faz sentido ter que muitas grandes registros. Seja inteligente sobre quando você criar estes bancos de dados, de modo que você não está fazendo algo bobo como esse, repetindo um monte de informações desnecessárias. OK. Temos dois minutos do fim. As pessoas do lado de fora está animado para se juntar nós ou, provavelmente, presumivelmente, começar a sua própria classe. Alguém tem alguma dúvida antes de terminar? OK, este foi realmente um turbilhão através de tudo. Peço desculpas que ele tinha que ser tão rápido e que não poderia ser tão hands-on esta semana, eu teria gostava de ter sido. Mas se você tem alguma dúvida sobre qualquer coisa que passou por cima ou qualquer coisa este conjunto de problemas - presumindo que você lê-lo e colocá- em um esforço de boa-fé - fique à vontade para me enviar e-mail ou contacte-me. Estou mais do que feliz em trabalhar com seu código com você ou responder a qualquer perguntas que você tem. Tenha em mente que, esta semana, uma série de seu tempo será gasto na aprendizagem do nova sintaxe e tentando entender como escrever consultas SQL ou PHP funções ou lidar com um framework MVC. Um monte de seu tempo esta semana, provavelmente, não será tentando descobrir o lógica maluca que estamos pedindo que você faça. Um lote de que nós apenas fomos mais é relativamente simples. Então, isso não significa que esperar até o último minuto. Mas isso não significa ajustar a maneira como você fazer o seu trabalhar nesse sentido, para certificar-se você está entendendo e aprender a sintaxe. Então você não é, de repente, sabendo exatamente o que você quer fazer, mas com nenhuma idéia de como exatamente escrevê-lo. OK, eu vou vê-lo na próxima semana.