Jason Hirschhorn: Welcome todos a oito semanas. Temos unha semana emocionante na nosa fronte. Vostedes teñen mergullou neste últimos de conferencias para PHP, SQL, HTML, CSS, de xeito catro linguas nova marca que van para asumir o resto do curso. Tamén imos aprender un par doutro linguas antes de fin de curso. Pero de calquera xeito, é necesario dicir, esta é unha momento moi emocionante en CS50, agora domina C, ostensivamente, e son pasar programación para sitios web. Entón, esta semana, estamos indo a ir en un rápido tour por catro linguas que acabo de mencionar, HTML, CSS, PHP e SQL. E, esperamos, imos deixar moito tempo ao final da sección de falar sobre set P esta semana e resposta calquera dúbida que todos teñen. Cada semana, a mesma lista de recursos para ti, para axudar coa semana de conxunto de problemas e indo sobre o material - pero esta semana, en particular, para estes conxuntos de problemas con base na web, hai unha serie de outros recursos para fóra alí que probablemente vai atopar incrible útil. Eu telos aquí. Vou enviar correo-e que esta tras sección, e iso tamén estar en liña. Pero, en particular, hai unha abundancia de grandes recursos alí fora. Hai tamén algúns non tan grande queridos, por iso moito coidado con estes. Pero neste foto, eu teño catro bos recursos, un para cada un dos idiomas que estará a traballar con esta semana - unha folla de referencia para HTML, unha folla de referencia para CSS. Este aquí é a guía de PHP. Entón, en vez do home de escritura e, a continuación, un PHP mando, que é o lugar onde faría ir buscar o prototipo da función e exemplos e tamén algúns consellos e trucos para usar funcións PHP. Vai usar este sitio web, moitas veces, eu animou-vos a facer-se familiarizado con el. Pode ser un pouco técnico, pero Tamén ofrece unha tonelada de recursos e exemplos para todas as funcións e mesmo outros, como forma de usar arrays ou distintos tipos de variables. Este sitio é moi útil para PHP. E, a continuación, para o SQL, se mergullou esta conxunto de problemas de semana, vai saber que estamos a usar unha base de datos. E nós acceder a este banco de datos por medio de unha interface relativamente agradable. Ou iso é unha forma de acceso Esta base de datos. A interface de usuario é chamada phpMyAdmin. Hai un separador SQL, o que nós imos mirar máis tarde hoxe. E podes escribir no seu SQL mostra consultas, de facer as cousas na súa base de datos e, a continuación, realizar estes procedementos. E se eles están correctos, que vai dicir, dun correcto iso. Se eles están incorrectas, que vai digamos, é incorrecta. Isto é un gran lugar para practicar o seu Consultas SQL antes de gravala-los en seu código, para asegurarse de que ten o formato correcto. Finalmente, outro sitio. Este é o sitio web onde podes ir e asegúrese de seu Código HTML é válido. Entón, antes de virar un problema establecer esta semana, asegúrese de todos seu HTML é válido. A semana pasada, tiña corrido Valgrind, para asegúrese de que non tiña perdas de memoria. Esta semana, ten que estar seguro de todo do seu código é HTML5 válido. Se non é HTML5 válido, está vai conseguir puntos fóra. Por iso, asegúrese - só porque non funciona significa que é completamente válido. Executa o código a través deste sitio web antes de virar-lo dentro Unha vez máis, aquí está o sitio. Se ten calquera producto para min, temos un par de máis seccións esquerda, e eu sempre quero facer o que poida para proporcionar-lle todo coa mellor sección experiencia posible. Entón deixe-me saber se hai algo que eu pode facer para mellorar ou se hai cousas que ve que eu podería facer mellor. Grazas, Avi. Poñelas na páxina web. Esta foi a bicicleta que eu tiven cando foi, digamos, catro na casa. É unha Tartaruga Ninja Teenage Mutante ciclismo, no caso de que non se pode dicir, por que é un pouco embaçado. Pode obterse agora en ToysRUs para, creo, preto de 100 dólares. Pero a característica desta moto que quero prestan atención son estes ben aquí. Estas son as Rodas pequenas. Ata agora, ten sido handheld mediante C. E tivemos un longo vez, dous meses máis, pasar por C. Para estes próximos dous idiomas, nós non imos pasar moito tempo. As Rodas pequenas están saíndo. E nós estamos indo a mergullo estes linguas rapidamente e moverse a través los rapidamente, o que non quere dicir que nós só estamos indo a deixar natación aí fóra, con ningunha forma de apoiar si ou descubrir como estes linguas funcionan. Eu só mostre unha lista de recursos para axudar. Pero teña presente que o PHP é incrible semellante ao C. Imos pasar por riba de hoxe e algúns dos cambios. Pero, na maior parte, existen para loops. Hai se as condicións. Cando quere resolver un problema, vai empregar un combinación destes. É moi similar. A lóxica debe ser moi semellante ao o que fixo no pasado. Que é realmente novo esta semana é a sintaxe e como se expresa. E quere escribir un loop for, pero pode parecer un pouco diferente. Ou quere crear unha matriz, pero pode parecer un pouco diferente. Polo tanto, teña presente que, movendo-se para a fronte, a lóxica é moi semellante ao que que fixo no pasado. Pero agora está indo a estar atopando unha morea de nova sintaxe. E nós non imos levalo a través todos os elementos de sintaxe. Entón, é realmente ata que descubrir, en liña ou a través de estender a man en Discutir ou enviando-me ou falar con uns ós outros, como escribir as cousas en PHP e como escribir consultas SQL e como usar HTML e CSS. Pero só para ti saber, non é iso estamos intentando xoga-lo por aí novo para nadar os tiburóns. Isto é o que probablemente vai facer seu proxecto final, se escolle un linguaxe diferente, como iOS e Objective C, ou se decide comezar programación no futuro e mergullo noutros idiomas, como Python ou Ruby. Moitas veces, a lóxica é moi semellante en todas as linguas, eo sintaxe é que é diferente. E será ata, como o programador, para ir utilizar a web recursos dispoñibles para ti e figura a forma de expresar o que sabe para expresar en C, nunha idioma distinto. Polo tanto, esta é unha boa práctica, tanto para a súa proxecto final, e unha vez máis, por o que probablemente vai facer despois de saír CS50. Antes de seguir adiante, fai calquera ten algunha dúbida sobre o que Eu teño feito ata agora? Grande. Imos seguir adiante. En primeiro lugar, imos falar brevemente sobre a orde chmod. Iso, imos facer ao comezo dos seus problemas de definir. Unha das primeiras instrucións para ti, despois que baixar o código de distribución, é a modificación da permisos dos ficheiros e directorios que recibe. Alguén pode arriscar un palpite ou sabe por iso que é importante para cambiar a permisos de certos ficheiros e directorios no seu ordenador? Avi - Audiencia: Entón ninguén, excepto para podes ver o que está facendo? Jason Hirschhorn: Aceptar. Polo tanto, se queremos poñer algo na web e ten permisos definidas que só pode ver algo, entón ninguén máis pode ver o que creou. Que máis? É. Audiencia: Evitar calquera outra persoa que Non quero ver algo, desde ver algo. Jason Hirschhorn: Isto é certo tamén. Probablemente hai algún código que escribe, que non quero que a xente vexan. Probablemente está OK con xente a ver seu HTML e seu JavaScript. Pero o PHP, un código de back-end, unha morea de a lóxica ao seu código, quizais o cousas que almacenan algunhas das súas claves para a súa base de datos, non quero que a xente vexan que tipo de información. Polo tanto, é importante que, cada arquivo e directorio que creamos ten permisos aplicable á posibilidade ou non queremos persoas para ver estes tipos de ficheiros e directorios e poder acceder a eles e, potencialmente, incluso cambia-los. Así, existen tres tipos de permisos. Hai un permiso de lectura, o que significa pode ler un arquivo ou unha lista a contido do directorio. Hai o permiso de escritura, o que significa que pode cambiar un ficheiro ou cambio un directorio e, a continuación, executar o permiso, o que significa que pode executar un ficheiro ou mellor, pode mover-se nun directorio. Entón algo CD, se ten o permiso para executalo, pode mover ao directorio. Este é un breve exemplo. Unha vez máis, foi ao longo deste no conxunto de problemas. Pero eu crear un directorio coa orde mkdir. Eu cambiar os permisos. Estas dúas liñas realmente facer exactamente o mesmo. Isto é para ilustrar que a sintaxe cambiar os permisos, se fai a a + x ou 711, estas son as mesmas. Nós miramos para abaixo nesta mesa agradable. Vemos que hai de usuario permisos primeiro. É vostede, o individuo, e servidor, potencialmente. E despois hai o grupo e outros. As diferenzas entre os dous son relativamente triviais. Entón, xeralmente, imos agrupar aqueles en conxunto. Pero, esencialmente, se temos un arquivo chamado inclúe que queremos ser capaces de nos editar e que queremos outros para poder realizar, é o permiso 711. E vemos que abaixo aquí nesta mesa. Temos unha lectura, gravación e execución. Para cada un de nós, queremos ser capaz de facer aquelas. Grupo e outros, nós só queremos que sexan capaces de realizar. A nosa forma de traducir isto a un número de permiso é a través de binario. Entón, se temos tres uns, iso é un 1 na columna queridos, un 1 nos pares columna, unha columna dun dos catro. Isto é 7 alí mesmo. E esa autorización é 1. Este permiso é 1. Entón, 711 cando é a mesma que dar nos ler, escribir e executar, e todos os outros dereitos de execución. Esta liña aquí, xeralmente terá que ler e escribir cando crear un directorio. Polo tanto, esta liña aquí só engade realizar dereitos de todos. Así que sería semellante a, en Ademais de que temos, suma de 1, 1, 1 a todos. Considerando que é necesario engadir ler e escribir. Pero se está indo a usar os números, non pode simplemente engadir algo. Substituír o que quere que fose permiso alí e implementar los co novo número que dá. Iso foi moi rápido. Alguén ten algunha dúbida sobre como cambiar permisos? Aceptar. Se eu tivera un arquivo PHP, que permisos quero que ten? É dicir, o conxunto de especificacións problema. Así, pode ollar para a especificación e logo, le-me a resposta. Audiencia: Quere que o usuario ter permisos de lectura e escritura. E quere que todo o mundo máis o que non ten nada. Jason Hirschhorn: E o números é isto? Audiencia: 600. Jason Hirschhorn: 600. Entón chmod 600 - sempre que imprime un arquivo PHP, chmod-lo para 600. Aceptar. Eu teño un directorio. Alguén ademais de Jeff, Eu teño unha carpeta de arquivo. Cales os permisos que quero para dar a esa carpeta - tamén no conxunto de problemas de especificación, debaixo esta resposta ou a resposta anterior? Tamén potencialmente no slide - Marcus. Audiencia: Para o cartafol, é 711. Jason Hirschhorn: 711 - entón un cartafol, quere dar 711. Quere ser capaz de ler este cartafol, cambiar os directorios, moverse en esa carpeta. E quere que todo o mundo sexa capaz para navegar dentro desa carpeta, pero non necesariamente cambiar o seu contido. E sobre un arquivo non PHP, dicir, un arquivo JavaScript? Cales os permisos que queremos para dar este tipo de ficheiro? Audiencia: 644. Jason Hirschhorn: 644 - por iso queremos darlle 644? Audiencia: Para permitir que outros lelo. E ler ou escribir. Jason Hirschhorn: Entón, así, todo o mundo máis pode ler o ficheiro JavaScript. E pode cambiar isto, ademais para poder lelo. Así, un dos erros máis comúns de persoas ter con este conxunto de problemas ea súa proxecto final, se é unha final en base á web proxecto é, eles non van ter definido os permisos correctos. E que non vai ser capaz para ver o seu sitio. Ou unha parte específica do seu sitio. Entón, asegúrese de axustar o permisos correctamente. Non basta asumir que vai facelo automáticamente para ti. Aceptar. Iso foi unha cousa pequena que pasamos unha boa cantidade de tempo, polo que podemos predica-lo. Imos pasar a HTML. E, de novo, para estes catro temas seguintes, imos pasar por eles de forma relativamente rápida. Entón, non dubide en me deixar en calquera tempo, se ten algunha preguntas, se eles están relacionados co que eu cubro ou algo de charla ou mesmo a partir do conxunto de problemas. Pare de me sempre que necesites. Cando chegamos ao final, imos comezar a ir sobre o conxunto de problemas. Así HTML significa HyperText Linguaxe de marcado. Non é unha linguaxe de programación. Todo o que fai é estrutura o seu contido e tamén proporcionar algunha metadatos. Así, por exemplo, presuntamente, moitos xa usou Facebook antes. E pode incluír enlaces, ou pode pór unha ligazón no seu estado. E entón, notarás que conexión sempre ten unha fermosa imaxe para el e texto. Xeralmente, é dicir, uns metadatos a unha páxina web. E é metadatos específicos de Facebook. E entón, cando o Facebook é a lectura que páxina e introducir ese link, el mira para os metadatos específicos, polo que sabe o que imaxe para mostrar, o que título a ser exhibido, eo que texto do resumo para mostrar. Así, podemos incluír metadatos con nosa páxina web usando HTML. E iso tamén nos axuda estrutura o contido, en xeral, o que queremos ir onde. Todo en HTML é un elemento. E elementos aquí mesmo - este CS50, o texto é o elemento. E ten algunhas marcas. Ten esta unha etiqueta. E notamos que hai unha unha no ao principio e logo unha barra de un, así pechando a unha cita ao final. Ás veces, non hai un diálogo aberto etiqueta e unha etiqueta preto. Hai só unha cousa. Imos ver un exemplo de que o próximo foto. Así, non precisa de un aberto e unha etiqueta de preto. Pero, para iso, estamos rematando este Elemento CS50 no Etiqueta ancora. E, esencialmente, estas etiquetas dicir o explorador o que facer con o elemento en particular. Entón, de novo, CS50 é o texto imos ver. E iso será un tipo de áncora. Anchor emprégase esencialmente enlaces a algo. En particular, como pode xa di, este é un enlace á páxina de inicio CS50. A seguinte parte da etiqueta - ou en xeral, unha parte de etiquetas son atributos. E vemos aquí, que a unha cita ten un atributo, este atributo href. E modificar unha determinada marca. En realidade, se é a unha das sitios ou as referencias que lle dei antes ou buscar a unha marca en liña, vai notar que hai unha tonelada de atributos potenciais. Este pode ser un dos máis comúns. Isto está me dicindo para crear un ligazón para o sitio web específico. E atribúe xeralmente son dadas, se non é dada exclusivamente, en pares chave-valor. Entón aquí está a clave, href. E o valor é este aquí. E iso virá a cadra máis tarde, cando comezar a usar algunhas bibliotecas para axudarnos a código en JavaScript ou escribir o contido HTML. Somos moitas veces vai ser - así como nós faría conxunto soporte 0 e que nos daría un valor. No futuro, nós imos estar facendo unha morea de cousas como soporte algo href. E iso vai dar o valor da href, ou se quere actualizar a href clave e, a continuación, darlle un valor particular. Así como con matrices onde tivemos tecla 0 ou a tecla 1 ou tecla 2 ou mesmo cunha Táboa de Hash, tamén, as súas táboas de hash así, probablemente tivo - el era unha matriz, entón a tecla 0, a tecla 1, tecla 2. Este índice non podemos pensar niso como unha chave. E o valor é o que quere foi gardado alí. Todos estes atributos son pares chave-valor. E iso vai ser importante para o cambio los ou actualiza-los ou inserir-los máis tarde. Por último, xa viu esa estrutura antes, pero este é o máis básico estrutura da páxina HTML. Na parte superior, nós lles dicimos que este é, de feito, en HTML. E despois temos un HTML aberto etiqueta e unha etiqueta HTML preto. Entón, todo dentro este é o código HTML. Vemos a cabeza eo corpo. A cabeza do seu documento xeralmente inclúe o que? Algún palpite para o que poñer na cabeza? Audiencia: Vostede pon o título e estilo. Jason Hirschhorn: o título. Isto foi un gran palpite. Podo ter derrubado lo fóra para o arquivo. Cales son algunhas outras cousas? Mencionados un deles que pode ir na cabeza. Audiencia: El dixo, estilos. Jason Hirschhorn: Estilos - por iso, se quere conectar nun JavaScript ou un CSS, o que está falando sobre cando está falando sobre estilos. Outro arquivo, que pretende conectar nun fóra de arquivos, que probablemente vai na cabeza. Que máis? Mencionados un par de láminas atrás unha das cousas que HTML pode facer por ti. Pode proporcionar - iníciase cun H - Audiencia: Metadatos. Jason Hirschhorn: Metadatos - entón unha morea dos metadatos vai na cabeza, porque iso non ten necesariamente para formar parte do corpo do seu código. Isto adoita ser - o corpo é o contido, o que alguén ve. E entón eu só deu a resposta á miña seguinte pregunta. Pero o corpo é xeralmente o contido que será amosado na páxina web. Como veremos, sitios complicados tenden a mesturar ou cambiar o que eles puxeron na cabeza e no corpo. Pero, xeralmente, a cabeza contén cousas que o usuario non vai ve na pantalla. Ela une noutros ficheiros e ofrece metadatos. Considerando que, o corpo contén todo o usuario vai ver. Algunha idea do que esa marca significa p? Audiencia: Parágrafo? Audiencia: Imprimir. Audiencia: Non significa impresión. Audiencia: Significa parágrafo? Jason Hirschhorn: Parágrafo - polo que este é un parágrafo. E esta etiqueta p, eu podería só ingresaran esta na pantalla e, a continuación, incluíu un salto de liña ao final do mesmo. Alguén sabe como incluir un salto de liña? Audiencia: PR - Jason Hirschhorn: PR - Audiencia: Corte pr? Jason Hirschhorn: barra pr significa salto de liña. Pero parágrafos teñen específica formato. E nós imos chegar o formato nun segundo, cando falamos de CSS. Pero todo dentro desas etiquetas p terá algunha formato estándar asociado a el, probablemente, algúns espazamento entre diferentes parágrafos. E vai ser un xeito de diferenciar bloques de código. Calquera outras marcas - cales son as outras marcas que xa viu? Jason Hirschhorn: H1 través H6. h1 través H6, eo que é isto? Audiencia: El vai denotar o quão grande e en negra as letras son. Jason Hirschhorn: Dereito, representa cabeceira. E así header1 é un gran cabeceira. El probablemente vai, por defecto, ser ousado, un tamaño da fonte grande, probablemente centrada na na pantalla, todo o camiño ata a H6, , Que é un tamaño de tipo de letra máis pequeno, menos enfatizado. Por suposto, pode, está en arquivo CSS ou nalgún lugar no seu código - o que, de novo, nós imos chegar a iso nun segundo - cambiar o comportamento predeterminado dunha etiqueta h1 é. Pero ten en conta que Chrome, Safari, Firefox, Internet Explorer todos teñen estándar mira para unha morea de estas etiquetas estándar. Pode, unha vez máis, sempre cambiar como se parecen. Calquera outras marcas que todo o mundo viu? Si - Audiencia: Un sitio div. Jason Hirschhorn: Unha etiqueta div - div tag Non ten calquera formato interno, por si, que se usa para bloquear diferentes tipos de código. Calquera outras marcas? Si Audiencia: li - Jason Hirschhorn: li - o que está li a? Audiencia: List. Audiencia: Lista Jason Hirschhorn: li é para os elementos da lista. Existen dous tipos de listas. Cales son os dous tipos? Audiencia: ordenada e non ordenada. Jason Hirschhorn: ordenados e desordenadas - posto tan ul para unha lista non ordenada. É dicir, se quere unha bala apuntar, unha lista de balas. Unha lista ordenada é unha lista numerada. E así vai facer unha etiqueta ul aberto e, a continuación, toneladas de elementos da lista e logo pechar a marca ul. e que a vontade crear unha lista non ordenada. Imos ver algúns exemplos HTML en un pouco. Pero antes diso, quero comezar a CSS. E CSS significa Cascading Follas de estilo. E iso é moi intimamente relacionado a HTML, pero un pouco diferente. Isto axuda a mellorar todo o contido que as estruturas de HTML. Así, en CSS, nós xeralmente non queremos estilo de cada cabeceira ou cada única imaxe ou cada parágrafo único. Queremos estilo algúns elementos ou que un elemento específico. E a forma como o estilo dun específico elemento é darlle un ID. Polo tanto, este é un atributo. Ten unha chave e un valor. ID é a clave. Logo é o valor. Peguei logotipo de forma aleatoria. E se der algo un ID, xeral, que só debe ser dado dun elemento. E entón, na súa folla de estilo, pode estilo que determinado elemento, con todo quere ollar. Se quere o estilo dun número de elementos, é posible que certa clase de cabeceiras, só algúns dos seus títulos. Quizais sexa unha cabeceira e unha imaxe e un parágrafo que todos queren ser centrado. Entón pode dar a estes grupos de todos os elementos dunha clase. E pode dar a clase estilos específicos. Entón, unha identificación e unha clase son dúas formas de romper o código, para que poida axudar a ser máis específico no que estilo. Hai tres formas de pente. O primeiro é, con este atributo de estilo. Entón ve, a clave estilo é estilo. O valor de estilo é realmente outra lista chave valor. Neste caso, eu escollín unha chave, text-align. E eu dixen, centro. Ten que estar se pregunta neste punto, como é que eu sei sobre text-align. O que isto fai? Esta é unha boa pregunta a facer, e nós imos chegar alí nun segundo. Así que esta é unha forma de denominar algo, só darlle o atributo de estilo. Outra forma de denominar algo é - este é Akshar mencionado anteriormente. Pode utilizar marcas de estilo e poñer este na cabeza do seu documento HTML. Entón está basicamente dicindo: o contido aquí é algún contido estilo. E o formato para iso é a cousa que quere estilo e, a continuación, dentro chaves, o par valor de clave de atributos que quere dar a este tipo particular de elemento. Finalmente, e esta é a forma máis común. E esta é a forma que nós facelo xuntos p 7. É unha folla de estilo externa. Entón tes un ficheiro css .. E dentro del, ve unha morea de cousas que se parecen con iso, o nome de calquera tipo de elemento ou un ID ou unha clase e logo, dentro rizado chaves, unha lista de pares de valores clave. Claro que, se crear un externo arquivo, vai Debe inclui-lo - afiada incluír, que faría ser a analoxía C - no seu arquivo HTML. Entón tes que incluír este código no seu arquivo HTML. Sendo este o nome do ficheiro e asumindo que é o mesmo directorio. Aceptar. Isto foi moito. E nós estamos indo agora para respirar e mirar nalgúns, web de verdade e explotar esta máis. Pero antes de facelo, alguén Ten algunha dúbida? Entón, se quere facelo xunto con me, podemos ir ao aparello. E eu escollín o páxina principal CS50. Podes facelo con calquera sitio. Pero por que non comezar con a páxina de inicio CS50? Imos actualizar. En realidade, eu recomendo que está facendo iso xunto comigo, xa que o que nós imos facer agora será moi útil para ti, non só en P-Conxunto 7, pero en P-8 Conxunto ben. É. Audiencia: Existe unha forma de facer comentarios HTML, sen o uso de PHP? Jason Hirschhorn: Si, pode facer comentarios HTML. Audiencia: Cal é a sintaxe? Audiencia: Punto de exclamación trazo trazo. Audiencia: Aceptar. Jason Hirschhorn: si. Esta é a sintaxe. Podes facer comentarios HTML. Podes facer comentarios en PHP. Como vai ver, comentar HTML será aínda aparecen cando miramos para o Código fonte HTML dun sitio específico. Polo tanto, este cs50.net. Se prema co botón dereito no máis moderno navegadores en máis calquera páxina, ve o código fonte da páxina. Entón, imos facelo no CS50. E velaquí, nós ver unha cousa xigante. CS50 realmente parece moi bo. Unha morea de sitios non vai ollar este bo. Se vai á páxina de inicio de Google e abrilo. Non vai ollar este bo. Pero entende que, na parte superior - este tipo de pequenos. Imos facer deste grande. Aceptar. Na parte superior, DOCTYPE HTML, que é familiar. Logo vemos a etiqueta HTML aberta e a cabeza, aquí, todo destas etiquetas meta. E pode ver iso og, non vai entrar niso agora. Pero teño case seguro de que estes serían Facebook. Isto é realmente Facebook. Coido que está a gráfica aberta. Entón lembre, eu estaba mencionando hai Metadatos específicos do Faceboook podes dar a unha páxina. Iso é o que está aquí. Entón, cando conectar esta páxina en Facebook, a imaxe que mostrará é esta foto aquí. E o que realmente ve que é Facebook, por que é a imaxe de Facebook. Pero de calquera xeito, estamos chegando ao lado. Entón, nós temos algunhas etiquetas de metadatos aquí. Vemos o título CS50. E unha vez máis, o título é o que pasa aquí enriba no separador do navegador. Vemos isto está conectando en, aquí, un arquivo JavaScript externo. Non falamos de Javascript moito, pero a próxima semana - e, por suposto, se está facendo un conxunto de problemas con base na web, estará usando JavaScript. Isto é como conectar no exterior JavaScript arquivos. Vemos aquí, finalmente, a CSS folla de estilo, que documenta estes estilos deste Código. Imos realmente abrir iso e dar un ollo moi rapidamente. Isto parece loucura. Non hai ningunha maneira que eu sería capaz de ler. Entón pode realmente aínda que, se tomar mirada, podes ver que tipo de existen - alí imos nós. Isto parece algo que xa vimos antes, cor de fondo, colocándose igual a algún valor vermello-verde-azul. Este tipo de cousas non debe parecer que estranxeira, aínda que, cando se presenta así, pode ser un pouco esmagadora. Non imos mirar para este ficheiro CSS ou gastar moito tempo con iso, porque é, unha vez máis, moi difícil de ler. Imos volver a esta Páxina HTML para CS50. E imos rodar para o corpo. E dentro vemos esta etiqueta div. Vemos unha cabeceira ben aquí. Vemos a etiqueta ancora. E este elemento da lista é dada unha clase específica. E vemos que a clase repetida unha e outra vez. Aí está vostede Curtis. Hai o comentario en HTML5. E, como observou, aínda podemos ver Lo, pero el non está aparecendo. É realmente moi interesante. Parece que esta lista puntuación elemento está comentada. Ou tamén a esta páxina, unha vez máis, aínda Aparece alí, tan interesante. Ah, é por iso, porque desta liña seguinte. Que máis podemos ver de interese? O resto é máis confuso, en xestionar esta metade dereita do sitio web, que é un pouco pouco máis complexa. Entón é iso que un pouco de HTML será parecida. Para min, porén, iso é un pouco avassaladora, e iso non fai me axuda moito. Con todo, hai algo que se, de feito, me axudar moito. E iso é o que eu uso sempre que estou tentando descubrir como algo mira o xeito que fai, ou como pode I escribir no meu sitio. E esa é unha ferramenta de desenvolvemento que está embutido no Chrome. Entón, se vai a este tres bares dereita aquí e ir ata ferramentas, prema en Ferramentas de Desenvolvemento, unha pequena ventá será aparecerá na parte inferior da páxina. E, en particular, de cromo, xa que é marabilloso, pode formatar esta fiestra e tomar o HTML e facela moito máis agradable para ti. Entón agora é realmente algunha antidoblante HTML que pode explotar para inspeccionar os elementos da páxina. Se queremos mirar o corpo, realmente destaca. Cando se despraza sobre unha parte do HTML, abaixo nesta fiestra, será destacar a parte que está falando sobre a gran ventá. Entón deixe-me tentar de novo golpe esta un pouco. Aceptar. Entón, imos abrir o corpo. E eu estou rodando sobre esta div esquerda. E entender que está destacando esta metade esquerda da pantalla. Entón, imos facer clic en que e ampliar iso. Dentro dela, parece que existen dous divs. Hai esa primeira div. Eu non vexo que destacou. Eu non sei, pero parece que este unha segunda, á esquerda interior, é o contido na parte esquerda da pantalla. Entón hai esa cousa chamada de cabeceira. Parece que está destacando a parte CS50. Se abrirmos que enriba, vemos que é nada máis que unha cabeceira. É xa un ID, e é dado o CS50 texto. Entón, de novo, ollando para el a través deste consola ou empregando as ferramentas de desenvolvedor panel na parte inferior das marcas de pantalla explotar esta web, espero, un moito menos intimidante e moito máis accesible. Tamén permítenos comprender que Nesta web, aínda que parece moi fermosa e agradable, non é tanto así máis que o que vai ser facendo no conxunto de problemas 7. E isto está totalmente dentro súa capacidade de crear. Se queremos - outra cousa legal sobre o uso destes ferramentas é, se prema co botón dereito sobre o título, pode editar o código HTML. Entón, imos chamalo de Jason. E agora vai entender que eu mudei HTML nesta páxina. Por suposto, eu non cambiaron De forma definitiva. Se eu actualizar meu navegador, entón sería volver ao HTML orixinal. Pero ás veces quero depurar o meu código, e eu non quero ollar só teño a miña fiestra gedit e tentar entender o que está pasando. Quero ver o que vai pasar en directo. Entón, eu vou editar un código coma este e obter do xeito que eu quero que vexa. E entón eu vou facer o cambios no meu código. E eu creo que é moito máis doado cando se pode facer as cousas instantaneamente, así. Diga, de novo, queremos facer outra oportunidade, porque estamos explotando con HTML e CSS no momento. Podo editar o HTML agora. E eu estou indo a incluír unha ligazón. Entón, eu vou cambiar a casa de CS50 páxina, polo que vai chamar a - digamos - a miña páxina principal. Cal é o nome, se alguén recorda, ou cal é o atributo que quero dar a unha guía de referencia cando quero que a conexión noutro lugar? Audiencia: href? Jason Hirschhorn: href - Entón, agora, vai ver que hai é un subliñado baixo Jason. Iso porque Chrome, por defecto, áncoras dá un subliñado. Probablemente xa viu iso antes cando foi a unha páxina web. Cousas que son as conexións son subliñado e en azul. O estilo estándar para unha ligazón adoita subliñan e poñelas en azul. Se eu non me gusta diso, Podo cambiar isto. E nós imos muda-lo en un segundo. Pero agora, tamén en conta que, se eu pasar o rato por iso, na parte inferior esquerda do pantalla, logo enriba dos elementos nominativos é a ligazón que eu dei. Entón, se eu fixen clic sobre iso - e podemos prema co botón dereito sobre iso, abre unha nova pestana. Esta non é realmente a miña páxina de inicio. É só o meu nome. Alí vai. Agora transformalo en unha ligazón. Imos explorar algunhas CSS tamén. O fermoso - e eu vou fan deste un pouco menor - preto de este consola é que folla CSS tolo vimos antes, que foi moi difícil de analizar, xa está moi ben establecidas para nós no lado da man esquerda deste panel. Así, podemos ollar. E se expandir esta guía estilos, nós podes ver as diferentes estilos que están asociadas con, neste caso, este elemento particular, esta elemento ligazón. Se facemos a guía estilos compostos, que só nos mostra, non onde todo vén, pero, esencialmente, todos estes estilos que están operando en este elemento en particular agora. E imos dicir, queremos para muda-la un pouco. Entón, iso é todos os estilos que son operando sobre este elemento particular. Diga queremos cambialo, porque nós quero ver como algo parece. E estamos só a xogar arredor de agora. Ou queremos probar algo, antes de gravala-lo no código e empurrando lo e facelo vivir. Podemos ir á pestana estilos. E na primeira caixa que di, element.style. E aquí, pode introducir, pode engadir algo. Entón eu quero - imos para o meu enlace e definir a cor do fondo. E realmente AutoPreenchimento por ti, todas as posibles propiedades. Cor de fondo, e quero para facer esa azul. Blus non é unha palabra. O azul é unha palabra. Será que eu velo subir? Oh, por que está no href? Aceptar. Entón, eu non vexo ningún cambio aquí. E iso porque, se destacan o enlace, notará que a ligazón non é efectivamente controlar a propiedades deste elemento específico. É, en realidade, se abrir a ligazón, este cabeceira aquí que é controlar o que parece. Entón, se eu queira facer o plano de fondo azul, realmente teño que cambiar cor do fondo no elemento cabeceira. E agora vemos que o fondo é azul. Entón, de novo, iso rapidamente pode estar a suceder a través deste material moi rápido. Pero iso é esencialmente o que vai estar facendo. Non é o conxunto de problemas 7, pero certamente cando está codificación na web. Aceptar. Eu quero facer o fondo azul. Aínda que, neste caso, azul parece moi feo. Podo ir aquí, xogar. Vexo que mudalo ao azul non funciona no a. Teño que realmente cambiar a cabeceira elemento de incluír o azul fondo. E entón, entón eu vou volver para o meu CSS ficheiro, como fago para realmente definir esta fondo a ser azul e facer esta vara cambio? Porque notar se eu actualizar a páxina, as modificacións que fixen se foron. Entón eu entender, OK, a miña fondo é azul. Necesito ir a aquel elemento header1 e cambiar cor de fondo para azul. Como podo realmente facer esa mudanza? Ben, lembre que, se entrar aquí, este cabeceira, o título ten un ID. E iso é o título. E así, no noso arquivo CSS, podemos dicir, OK, levar nada con ID de título e darlle esa propiedade adicional. Como é que imos referenciar algo co ID do título, as ideas, ou calquera sei como é que fai referencia IDs na nosa arquivo CSS? Un hash, que é exactamente correcto. E ten unha información do que aquí. Entón, en algún lugar neste arquivo CSS, hai esta liña de código - # Esquerda # left-interior título # header #. E iso está dando marxe inferior, que define a marxe inferior do presente determinado elemento. Ben, se eu quixese cambiar isto, Quere ir a este ficheiro CSS. E eu podería atopar este ou parte do arquivo CSS. Ou eu podería escribir a miña propia. Eu podería facer de hash Título rizado cinta e logo azul cor de colon punto e coma e preto que bosquexo. E que ía cambiar o fondo cor deste elemento para azul. A razón que eles dan-lle moitos aquí é iso, é necesario, neste caso, porque título é unha identificación única. Pero o que podes facer é cousas niño. Entón, iso está dicindo: OK, vaia á esquerda. Isto é moi pequena. Pido desculpas por iso. Pero ir a cousa con ID esquerda. Dentro diso, ollar para o cousa con ID esquerda interior. Dentro dese ollar, mirar a cousa con cabeceira ID. Dentro diso, ollar para a cousa ID título e cambiar o modo de identificación. Polo tanto, esta é só unha forma de cousas de nidificación. Algunhas persoas quere niño, xa pasa a ser un pouco máis claro. Vai ver por aquí tamén, né aquí, non hai hash. É só H1. Porque h1 é dar a nome dunha marca xenérica. E hai algunhas propiedades CSS asociada a cada H1. Entón, se eu atope outro h1 nesta páxina, Tamén quere ver que este estilo era aplicadas a el tamén. Se eu quixese aplicar un estilo a unha clase, como fago para facer referencia a unha clase ou falar dunha clase nun arquivo CSS? Audiencia: Dot. Jason Hirschhorn: É con un punto. Entón, imos voltar a esta páxina antes. Se eu fai hash de identificación. Isto está cambiando o estilo da cousa con ID. Ou moito, se eu fai logotipo de hash, que é atopar a cousa co ID do logotipo e dándolle un estilo CSS de usuario. Se eu fai algo. Top, que está atopando todo coa clase de arriba e cambiando os seus estilos. Se eu simplemente H1, que atopa cada h1 individuais e lle dá o que quere que estilo que quero darlle. Se eu fai espazo h1 e despois. Arriba. Isto vai atopar todas as h1s e despois todos aqueles coa clase de arriba e entón só cambiar estes estilos para o que quero dar. E unha vez máis, poderiamos escribir algunhas destas por conta propia. Pero non chegaría tan lonxe. Moito mellor, parece que realmente ir nunha web real en directo para ver como eles fan isto e ollar para toda a cousas fantásticas que comeza a facer. Vexamos máis un sitio web antes de seguir adiante. E este é un que probablemente vai familiarizarse con. Este é CS50 Finanzas. Entón, de novo, pode realmente entrar e observar este ficheiro CSS no seu ordenador, porque baixou este Arquivo CSS, se baixou o conxunto de problemas. Podemos ir a ferramentas e Ferramentas de Desenvolvemento. E vemos un esquema HTML moito máis simple. Temos superior, central e inferior. E, de novo, algo que debe ser familiarizado, porque mirou a través do código de distribución para definir problema desta semana. Na parte superior está, por código, unha única imaxe chamado. E esa é a fonte da imaxe. Digamos que eu rematar todo o que Quería para Conxunto de Problemas 7. E funciona correctamente, pero Quero cambiar o seu visual. E quero cambiar o fondo da parte superior da páxina para, por exemplo, azul. Se fose comigo, eu viría en aquí e descubrir, seguro que quero cambiar. A ver, div top ID, que o aspecto como a parte superior da páxina. Entón imos alí. Imos tentar cambiar o cor de fondo. Imos facer Alicia azul, porque isto é un máis agradable. E vai entender que - probablemente non pode ver iso. Pero hai unha luz azul, xunto do logotipo CS50. Imos mudalo no canto de vermello. E vai entender agora eu só cambiou a cor de fondo para vermello. Entón agora eu ía para o meu arquivo CSS e escriba # top paren rizados aquí. Podes ver o código de dereito aquí, bosquexo. E entón, gustaríame engadir fondo cor, vermello. E entón, non habería ser unha bosquexo. Entón é así que eu ía explotar e experimentar con formato no CS50 Finanzas local. Podería facelo aquí e proba Lo no meu navegador. E entón, eu podería ir ao meu código real e facer os cambios que han realmente ir en directo e que a xente realmente ver, se eles estaban a chegar a meu sitio específico. Aceptar. Isto foi moito. Pido desculpas por pasar por el tan rapidamente. Alguén ten algunha dúbida en todo sobre HTML ou CSS? Audiencia: Pode só pasar por riba de como ligada que se fixo Jason, de novo? Jason Hirschhorn: Qué que quere dicir conectado? Audiencia: Vostede forneceu un enlace a outro web, empregando a referencia. Jason Hirschhorn: Entón está pregunta: só xenericamente, como fai unha ligazón? Audiencia: Yeah. Jason Hirschhorn: Aceptar. O código para facer unha conexión - Audiencia: Non, como o HTML. Jason Hirschhorn: Aquí en baixo, quere dicir? Entón, se eu queira incluír unha ligazón en algún lugar, por exemplo, que é o HTML no meu páxina aquí. Este é o código HTML. Quizais sexa aberto nun arquivo, index.html. Ir dentro Imos ter este autor John Conexión Harvard para algo. Entón, imos modificar todo isto como HTML. Todo o que fai é incluír a un, de forma entre parénteses un soporte de preto a comezando, a continuación, soporte de barra un soporte de preto ao final. Entón agora eu inclui unha marca de referencia. E, de feito, se fai clic fóra diso, que vai agora formato-lo editar como HTML. E dicir, queremos vincula-lo. Nós tiñamos-lle o atributo href. E nós dicimos - E agora, como entende, de dereitos de autor John Harvard é azul. E cando eu rolar el, agora é unha ligazón. Así, pode escribir o código. Pode cercar practicamente calquera cousa que quere nunha marca de referencia e transformalo lo nun enlace. Audiencia: Aceptar. Entendín. Jason Hirschhorn: E se eu non quería el - por suposto, ás veces as persoas tenden a pensar esas cousas que só miran azul e subliñado son xenericamente non é o camiño máis bonito para facer unha ligazón. Entón, se eu vir aquí, ve que, nalgún lugar nun arquivo CSS, hai escribín este un e, a continuación, dúas chaves. Entón, imos dicir que, para as conexións, eu non quero que eles se fan azul, no canto I quere a cor de unha ligazón a ser este bo maxenta. Imos darlle a cor. Imos escoller maxenta. Agora, todos os enlaces na miña páxina ten facer esta fermosa cor de maxenta. Algunhas persoas non quere cores en todo. Algunhas persoas non quere subliñados. Comeza a escoller. Enlazadas, pode estilizar como mirar xa que visitou. Como podes ver en unha morea de páxinas, conexións ir vermello de ti visitalos. Pode cambiar esta cor tamén. É. Audiencia: Entón cambia-lo para cada ligazón. Pero se só quería facer esa conexión si mesmo, se acaba de facer o ID inferior ou algo así? Jason Hirschhorn: Tan grande importancia. Como entender aquí, eu mudei algúns parte do CSS que se aplica a todo isto é un A. Se eu quixese só facer ese link abaixo, eu iría para o meu arquivo de CSS e, probablemente, facer exactamente como dixo, de hash espazo un fondo. E iso me daría Como todos na parte inferior. Ou eu podería, alternativamente, darlle un ID único e despois é só facer conexión hash. E iso me permitiría para cambiar isto. Con todo, só distribuíndo IDs ás toas é xeralmente un mal práctica, xa que os debe ser exclusivo. E canto máis tes aqueles, que pode ser un pouco confuso. É. Audiencia: Pode dar a mesma ID para varios propietarios? Jason Hirschhorn: Técnicamente, si. Nada vai impedir-lo, pero non debe Debe darlle unha clase. OK, calquera outras preguntas sobre HTML ou CSS? Aceptar. Imos pasar para PHP. Oh, si. Audiencia O que é sobre estes sitios que significa que podemos editar antes de actualizar. Pero unha vez que actualiza-la reverte volver ao HTML de inicio? Jason Hirschhorn: Gran pregunta - por iso, cando cargou este páxina web, é HTML. E é JavaScript. PHP é executado para dar todo o que tipo de sitio web que vemos. E iso creou un pouco de HTML, algúns JavaScript, e algúns CSS. E que agora está accesible polo noso equipo. E unha copia destes ficheiros é salvo localmente no noso ordenador, de momento. Así, podemos editar esta copia local. Pero, claro, non está a editar a copia do servidor. E cando a xente actualizar a páxina, temos outra copia do servidor. E así vemos as cousas de volta como eran. Se fomos capaces, a partir de aquí, para modificar o web oficial, teriamos unha morea de problemas. Audiencia: Si, para que poidamos ler e escribir esa copia. Jason Hirschhorn: Certo. Nós só estamos facendo cambios locais aquí, pero unha vez máis, moi útil para explorar, moitas veces. Cando estou escribindo o meu proxecto final, para exemplo, quero ver como algúns web feito algo ollar de como fixeron. Vou entrar e utilizar este panel abaixo aquí, a ollar para o que eles deron a CSS ou que a cor que eles escolleron ou como entendeu de xeito que, cando paira sobre algo, a lista descendeu nunha fermosa fervenza de moda. É unha gran forma de inspeccionar o que as outras sitios facer e pedir prestado deles. Imos pasar para PHP. PHP significa, de certa forma recursiva, Procesador de Hipertexto PHP. E PHP, o que vai facer é realizar ao lado do servidor de código. Entón, nós nunca imos ver o código PHP. Sen embargo, non xogar ben con HTML e moitas veces xera unha morea de código HTML. Pero como vai estar familiarizado con problemas Xogo 7, o código PHP vai realizar, xerar algún HTML, e iso é o que o usuario vai acabar vendo. PHP é incrible semellante ao C. Con todo, hai un par de diferenzas, e esas diferenzas son importantes para a nota. Unha diferenza é que as variables en PHP son vagamente ingresaran. Alguén ten un sentido do que significa isto? Audiencia: Non hai necesidade de lanzalo a si mesmo. Como non hai necesidade de escribir en texto. Jason Hirschhorn: Eu non usaría a reparto palabra, mais si, non hai necesidade de declarar un tipo dunha variable específica. Como en vez imos declarar unha variable? Audiencia: Use un sinal de dólar. Jason Hirschhorn: Use un sinal de dólar. Entón $ x é unha variable. $ 1 é unha variable. $ String é unha variable. Estas variables, $ x podería ser un número enteiro. Entón, pode ser unha cadea. Entón, podería ser un personaxe. Realmente non importa. Ademais, a cousa legal sobre PHP é, digamos, US $ x é aquel cadea. E $ y é o personaxe un. Podes engadir $ xe $ y, e só pode darlle 2, o que esperar. Polo tanto, hai operacións en PHP. Por variables feblemente tipada, algúns a conversión implícita está feito para ti e algunhas operacións. Podes facer operacións en cousas de diferentes tipos. Considerando que, antes, moitas veces obterá un erro en C dito, este non é o tipo que se quere para ir aquí. Só cousas dese tipo pode ir aquí. Non está indo para obter este tipo de de erros, xeralmente, en PHP. Así que esta é unha gran diferenza - como lidamos con variables. A segunda gran diferenza é que Código PHP é interpretado. Wheres, código C é compilado. O que significa isto? Ben, para o código C que executou mediante un compilador. Vostede xerou un ficheiro binario. E executou o ficheiro binario. Vostede coidou de todos os erros antes de vostede xerou o ficheiro binario. Por suposto, non podería ser segmentación faltas, cando executou o ficheiro binario. Pero non é como se esqueceu de incluír a definición de printf, ou non usar unha variable e só creou unha variable desperdicio. Ou non establecer un función prototipo. Todo o que pasou antes de compilar. El deulle os erros ou mal cousas que cría que podería acontecer. E entón, vostede tivo o seu 0 e 1 ficheiro que executou. Código PHP non funciona así. Vai escribir o seu código PHP. Entón, vai salvalo, probablemente. E, polo menos en I-Set 7, vai para actualizar o seu navegador, e vai ver o que pasou. Vai ver a saída de que o código PHP. Tamén podes ver, na parte superior da súa páxina, un erro. Porque tivo algún erro no PHP. Aínda pode ver o resto a páxina web está mirando ben. Pero unha parte está mal, e non hai un erro naquel lugar. E iso é porque esa parte da seu código PHP non funciona. En realidade, cando realizar, cando ir a algo como by.php. Vai pasar polo seu PHP ficheiro liña por liña e executa-lo entón e só entón. Non vai a compilalo lo á fronte de tempo ou compilar unha copia e, a continuación, dar que compilou copia para todos. Cada vez, que vai pasar por liña por liña e executalo. Por iso, algunhas liñas poden traballar e imprimir algo correcto. E outras liñas poden ser quebradas e producir un erro no seu canto. Entón, cando a depuración de PHP, demos lle un par de cousas útiles para axudar a depurar, como a función de desaloxo. Pero, xeralmente, vai a ver estes erros. E é así que vai sabe que fixo algo mal. Pero só vai ver o erro xa que o que realmente executar o código. Outro aspecto importante do PHP e desenvolvemento web é a idea de obter contra post. Alguén pode explicar o que é a diferenza entre GET e POST son? Ninguén - Si Audiencia: Non un deles permitir que o usuario vexa os datos, e un deles non? Jason Hirschhorn: gran. Si, ten algo que engadir? Audiencia: I post fina é unha variable super-global. Jason Hirschhorn: Entón ambos variables son dadas a ti. Estes son só variables. E vostede sabe que son variables, porque aquí eu usar o cifrão. Estas son variables dadas para ti polo PHP. E cando moverse entre as páxinas web, quere gardar unha información. Probablemente vai querer salvar se o usuario está dentro do sistema Pol Isto non é salvo en GET e POST. Isto está gardado nalgunha outra cousa, unha variable distinta. Alguén sabe o que variable que está gardado en, ou o que usa en variable P-Set 7, para asegurarse de que o usuario está dentro do sistema? $ _SESSION, Que é exactamente correcto, probablemente importante estar familiarizado coa os nomes destas cousas usa a miúdo. Entón usa a variable de sesión para salvar información dunha páxina a outra. Esta é unha variable super. Ela existe en todas as páxinas, quizais como unha variable global, se quere pensar sobre iso así. Hai un par de outras variables que permiten transferir información de páxina para páxina. En particular, os que imos concentrar en son o get e as variables POST. O PHP se parecen $ _GET E $ _POST. E a diferenza, como Marcus apuntou para fóra, entre os dous é que, información en $ _GET é exhibida na URL. Entón, se nós miramos aquí, vemos unha ligazón de YouTube. Vemos esta interrogación. Vemos v = e logo, algún valor. Voltar á idea de valor de chave par, o v é a clave. E aquí é o valor. Entón, se tivésemos que ir a esta páxina ou codificación nesta páxina, teriamos un variable chamada $ _GET. Se fomos a $ _GET soporte aberto "v" seguinte soporte, moi semellante ao conxunto notación, esta é unha matriz asociada porque non estamos usando índices. Estaban usando cadeas como claves. Pero a idea moi similar. Se fomos nós, ía recibir ese valor. Nesta páxina, que sería capaz para usar ese valor. Se nós realmente ollar, imos ir a unha páxina de YouTube. O vídeo debemos ver? Este, son persoas Hobbit fans? Audiencia: si. Jason Hirschhorn: Entón, eu estou copiando súa URL compartir e pegalo nunha nova fiestra. E agora, se ollar para arriba aquí, vai ter en conta que, unha vez máis - Vou copiar e pegar isto en gedit, para que poidamos vela máis grande. Vostede notará que ten este punto de interrogação. O punto de interrogación que designa todo despois é que isto vai ser salvo na variable get. A continuación, el ten o v, que é a primeira tecla e este primeiro valor. Ampersand é especial. Ampersand está dicindo, OK, nós rematou o primeiro valor. Estamos agora a pasar ao outro par de valores clave. Aquí, a clave é chamada de función, eo valor é youtu.be. Entón, se eu fose unha codificación esta páxina e alguén foi para esta URL e eu tiven quizais watch.php. E eu estaba programando iso. E eu podería usar a variable $ _GET. E gustaríame ter un v, e Eu tería un recurso. E se eu usar a tecla v, I recibiría ese valor. E se eu fixen $ _GET soporte "característica" seguinte soporte, quere obter este valor. Unha vez máis, iso non significa necesariamente aplica-se a - Obviamente, YouTube claves e valores e se a información non é aplicable a noso problema xogo 7. Pero hai certas cousas que nós pasar vía GET na nosa Conxunto de Problemas 7. E, por suposto, cando vai a unha páxina web ou está codificando a súa propia páxina, o $ _GET Virá a cadra cando a súa codificación. ¿Que é unha razón para usar $ _GET logo se ofrece ningunha privacidade? Ve toda esta información que está a ser trasladado. Está todo amosado para o usuario. Pero o que é unha razón que se pode quere aforrar algo de $ _GET, como oposición a $ _POST? Por que pode querer facelo? Todo ben. Pregunta-lle o Quiz 1. Cal é o pro de $ _GET? ¿Que é un pro? Si - Audiencia: É máis fácil compartir información. Jason Hirschhorn: Eu creo que iso é gran. É máis doado para compartir información. É máis doado para marcar. Pode marcar o momento, YouTube.com / watch? V = algo e ir para que o vídeo específica. O YouTube sempre fixo solicitudes POST para páxinas diferentes, cada URL YouTube Sería YouTube.com. Non podería marcar un único vídeo. Porque se dixo compartido ese link con outra persoa, non obter automaticamente a variable post. Eles están só recibindo este enlace, eo ligazón é a mesma para todos. Entón iso é un pro. Permite que marcar esta información ou compartir esta información ou facelo un pouco máis amigable. Por suposto, non hai privacidade, polo que temos esta variable post. E a información post non é exhibida na URL. Non é totalmente privado. Pero é marxinalmente máis privado. E entón podes ver esta URL aquí en baixo, cs50.net. Se está ou non conectado ao sitio, que vai ter o mesmo URL, cs50.net. Obviamente, é algo diferente, se está rexistrado no sitio web. Ten, un, probablemente introducir o seu PIN. E confirmou que co servidor. E é probablemente a gardar outra información. Pero a URL non cambia en nada. E así, este é o caso, cando algo é enviado por POST. O URL non cambia. Esta información non é POST exhibida na URL. Pero nalgún estado cambiou, e quizais hai algunhas informacións gardadas no Variable POST. Sentímolo. antes de ir para o SQL, calquera preguntas sobre o PHP, en particular, preguntas sobre cousas que non pasar por riba de que atopou ou calquera sintaxe ou cuestións lóxicas sobre PHP? Aceptar. O texto final, será interactuar con esta semana é a Structured Query Language, SQL, pronunciado secuela frecuencia. Isto permite que interactuar co base de datos dun xeito formalizada. E el xoga moi ben con PHP. Como verás no conxunto de problemas 7, temos lle deu unha función chamada de consulta. E leva unha cadea SQL e executa esta procura de na base de datos. Nos últimos anos, non estaba dada esta función. Vostede tiña que usar funcións PHP para facer a consulta na base de datos e de comprobación para erros e logo, obter os resultados. E, de feito, non é tan difícil, porque unha vez máis, que desempeña moi ben con PHP. E PHP dálle unha serie de funcións para interactuar con unha base de datos de SQL. Entón, moitas veces, os dous estes van xuntos. Por suposto, pode interactuar con a base de datos SQL con calquera número doutras linguas. Pero o PHP é unha excelente opción. Unha base de datos - nós falaremos sobre iso axiña, porque esta é unha palabra de moda que imos comezar a usar moitas veces - é unha colección de táboas. Así, podemos pensar niso como un arquivo Excel. Un arquivo Excel ten varias pestanas na parte inferior da pantalla. Cada guía, imos agora chamar unha táboa, onde unha táboa é un conxunto de liñas. E o que é unha cola? Así, a liña é o mesmo no arquivo Excel. Isto só ten certos valores para cada campo ou cada columna dato dado. É como unha entrada na táboa. É un estudante, que ten un ID, un específico de identificación, e un nome e un específico casa específica. Así, unha base de datos é unha colección de táboas. E mesas son un número de liñas ou rexistros. Tamén hai, en cada mesa, determinados campos. E que especifica o que cada rexistro é terá, ás veces chamado de campos columnas, pero xeralmente chamadas de campos. Nesta táboa moi sinxelo, eu teño tres campos, un campo de identificación, o nome de usuario campo, e un campo de hash. E eu teño tres liñas. Neste momento, están baleiros. Eles probablemente non estaría baleira se esta foi a miña base de datos real. Entón, se xa usou Excel, idea semellante ao que fai en Excel, con todo, obviamente, agora imos ser capaces de facer moito máis poderoso cousas no a información que se garda na nosa base de datos. Estará creándose un base de datos para conxunto de problemas 7. Pero estará creando múltiples táboas na base de datos. Estará creando unha base de datos ou unha táboa para os usuarios. Estará tamén a creación dunha mesa para probablemente transaccións con accións, para manter control deles, porque precisa implantar un recurso de histórico. Ambas mesas terán diferentes campos. Por exemplo, nun campo de usuario, Probablemente vai querer o seu nome de usuario e un ID e un hash de contrasinal. Na táboa de Stocks que mantén o control de historia ou a táboa de histórico, vostede probablemente non ten o nome de usuario eo hash eo ID. Probablemente só precisa dun destes valores que son únicas, para asociar o cun determinado usuario. Pero entón, quere gardar outro cousas como, o tempo Foi transacción feita. O stock foi comprado ou vendido? Cantas accións do foi adquirido ou vendido? Cal foi o prezo a que o stock foi comprado ou vendido? Entón, de novo, vai estar interactuando con bases de datos que hai terá varias táboas. Cada mesa terá o seu propio conxunto de campos. Con todo, probablemente haberá un semellante campo en cada cadro, que refírese a eles un ao outro. Normalmente, este é un campo ID. Por cada usuario ten unha identificación única e asocia esta identificación con cada transacción que o usuario fai ou toda a historia do usuario. E ten o ID de usuario. Pode obter información de ambas as táboas. Pode obter o seu nome de usuario, e Pode obter todos os seus transaccións. Calquera dúbida sobre bases de datos, ou preguntas específicas? De feito, imos manter isto. Estaremos alí en dous lados. Polo tanto, hai catro operacións en bases de datos que ha empregar no Conxunto de Problemas 7 e probable sempre estar a usar. O primeiro que quero facer é introducir un novo rexistro nunha táboa ou un nova liña nunha táboa. Esta é a función xenérica, a forma xenérica, de que a consulta SQL. INSERT INTO táboa, calquera que sexa columnas que quere inserir e, a continuación, os valores que vai querer poñer a estas columnas ou campos. Se ten varias táboas nun base de datos ou varios bancos de datos, Tamén pode ter especificar a base de datos ea táboa que quere para poñer as cousas en. Pero moi simple, se quere inserir en algo, vostede di, aquí están os campos que quero inserir. E aquí están os valores. Nalgunhas táboas, tamén, e este usuario do mesa é un bo exemplo. Probablemente na táboa do usuario e probablemente na mesa do seu usuario en I-sep 7, non hai só un valor de usuario. Non hai só un valor en diñeiro, ou no campo, en vez. Hai tamén un campo de identificación. Eu non estou indo a introducir este campo ID. Isto vai ser dada a me automaticamente, cando unha insírese nova marca. Polo tanto, hai un campo que Pode configurar a ser automático. Quizais queira dar a cada usuario $ 10,000 de diñeiro fóra do pau. Entón eu non teño inserir un número de caixa aquí. Todo o que eu teño é introducir o nome de usuario. E entón, o campo de caixa será pre-cuberto, e no campo ID será ser pre-cuberta. Entón, moitas veces, non estamos inserindo algo en todos os campos, xa que os outros campos son pre-poboada. Porque é así que nós crear esta táboa. A segunda cousa que vai quere facer é borrar un rexistro. Excluíndo algo é moi sinxelo. Lle dá a mesa onde quere para borrar algo. E dis, OK, quero eliminar o rexistro que ten un nome de usuario de Milo. Ou quero borrar todos os rexistros que ter un nome de usuario de Milo ou que fose un transacción de número de identificación de usuario 2. Calquera dúbida sobre estes dous tipos de consultas? Audiencia: [inaudível]. Jason Hirschhorn: si. Entón eu vou usar liña e rexistro alternativamente e algúns con columna e no campo. Pero unha liña é un rexistro. Unha columna é un campo, indo volver a esta táboa. Aceptar. A seguinte cousa que probablemente está vai facer é obter un información da táboa. Esta é unha consulta selección. E, de novo, que a táboa estou escollendo a partir de? E que columna que quero para seleccionar ou cal o valor que quero para seleccionar e desde que liña? Así, o Select é algo específico. Digo, OK, quero esa táboa. E entón eu quero que o nome de usuario da columna e Quero-o da liña con ID 2. Esta é unha forma de facer un Select. Ou podo dicir, me dar a cada nome de usuario único. Ou podo dicir, me dea un todo liña desta táboa, onde o nome de usuario é 1. Polo tanto, hai algunhas formas diferentes para facer consultas selección, dependendo de como máximo de información que quere, Sempre poderá seleccionar todo desa táboa específica e, a continuación, lazo través del, escollendo as cousas que quere. Pero lembre, se está seleccionando unha morea de cousas a partir dunha táboa e ten realmente unha gran mesa, que terá algún tempo, entón mellor escoller só as cousas que vai para acabar a usar. Ademais, con Select e con todos estes outros comandos SQL, así, eu son dándolle a versión de esqueleto. Pero dicir, estou escollendo os usuarios e quero imprimilas los en orde alfabética, Podería escoller a todos os usuarios e logo, tipo los en orde alfabética no meu código. Ou hai un xeito de escribir o select consulta, que selecciona as cousas dunha moda alfabética, baseado fóra dun columna específica, ascendente ou descendente. Polo tanto, teña presente que, moito do que quere facer probablemente se pode facer en a consulta a través de un adicional atributo. Entón non busque esas consultas en liña ou as outras cousas que podes facer con estes consultas para expandir-los. Finalmente, a última cousa que quere facer non é introducir algo ou eliminar algo, pero en vez actualizar algo. E iso faise coa actualización consulta e, de novo, o escritorio. E o que o cambio que quero facer? E para que liña ou rexistro facer Eu quero facer ese cambio? Calquera dúbida sobre SQL? Aceptar. Polo tanto, temos preto de 15 minutos. E este é o último foto que eu teño. E espero que, esta última foto é unha bo segue en conxunto de problemas, porque comprender onde queremos inserir rexistros, borralos, seleccione eles, e actualiza-los axudaranos comprender a lóxica máis e fluxo do conxunto de problemas 7. Entón, sei as respostas a estas preguntas. Eu non vou dicir a vostede todas as respostas. Pero se alguén quere presentar unha pregunta ao grupo ou un responder a un destes cuestión, podemos usar isto como un punto de saltar fóra para falar do conxunto de problemas. Ou se alguén ten un máis xenérico cuestión fóra do conxunto de problemas, Sinto-se libre para facelo tamén. E podemos empezar por aí. Teña presente que estar en silencio está prexudicando a todos. É. Audiencia: Entón, é a única forma de pasar variables de e para diferentes web páxinas, ou a máis conveniente forma, utilizando POST ou GET? Jason Hirschhorn: Entón, si, que é o xeito máis cómodo dicir - cando alguén encher un formulario - obter información sobre outra web páxina, usando GET ou POST. Por mor da estrutura que estamos a usar neste conxunto de problemas, notará que, moitas veces, facer outra páxina. Ou nós prestamos outro ficheiro, non necesariamente outra páxina. Entón nós pasamos nunha variable. E, a continuación, el procesa un Páxina HTML, usando o información de que variable. Isto non é tecnicamente pasando información entre diferentes páxinas web. Que está a pasar información entre arquivos diferentes. E así, podemos utilizar calquera variable para facelo. Pero si, se quixésemos pasar información dunha páxina específica para outra páxina, GET e POST faría ser o camiño para facelo. Calquera outras cuestións sobre o conxunto de problemas? Aceptar. Imos pasar, entón, dalgún parte do conxunto de problemas. Vas a necesidade, nun punto, presentar carteira de alguén en a pantalla. O que quero dicir cando digo carteira, no contexto deste problema definido? Audiencia: É como as accións que ten como, moitas accións que posúen, o prezo, e canto diñeiro que lles queda. Jason Hirschhorn: Isto soa moi ben. Entón, quero amosar todas as accións que eles mesmos para stock de cada empresa accións e, probablemente, o que iso é paga a pena, e logo, unha variable independente, canto diñeiro que posúen. Entón, dicir que quero describir iso. Imos comezar a falar sobre como eu podería vai facer sobre iso, o que eu estou táboas indo a necesidade de ter que ser capaz de facelo. Si - Audiencia: usuarios así, e entón, eu creo pode facer unha táboa chamada Accións ou algo así, que sería cantos compraron. Jason Hirschhorn: Aceptar. Entón, eu vou ter unha táboa chamada Os usuarios, que mantén o control do nome de usuario, presuntamente, probablemente algún ID, probablemente contrasinal dun individuo. Qué é outra cousa que só dixo que é asociado? Alguén ademais de Michael, que é o outra cousa que esta asociado cada usuario, exclusivo para eles? Audiencia: ID. Jason Hirschhorn: ID - o que é outra cousa que estamos seguramente queira amosar nesa páxina? Audiencia: O seu nome. Jason Hirschhorn: O seu nome - o que é outra cousa relacionada a este determinado conxunto de problemas? Audiencia: Que accións eles mesmos - Jason Hirschhorn: Non van haber unha chea de accións que posúen. ¿Que é un valor específico, con todo, que van ter asociado con eles? Como é que eles van comprar e vender as súas accións? Audiencia: Diñeiro. Jason Hirschhorn: Son terá diñeiro. Así, cada usuario terá un valor para o diñeiro. E iso será exclusivo para cada usuario. Así, no marco do usuario, que forma sentido poñer en diñeiro. Pode, por suposto, crear outra táboa que ten IDs de usuario e valor do diñeiro. Pero isto non ten sentido. Non ten sentido simplemente poñer todo isto dunha táboa. Entón, nós imos ter unha táboa con esta información. E entón, cal é a outra táboa nós imos ter? Vostede dixo que, unha mesa de Stocks. O que estamos poñendo en táboa de Stocks? Calquera persoa, ideas - Audiencia: A empresa. Jason Hirschhorn: Imos para poñer o nome do empresa, de xeito AAPL para Apple. É. Audiencia: Cantas accións e o que eles pagan. Jason Hirschhorn: Cantas accións, o que eles pagan - o que é outra cousa que precisa en que mesa? Audiencia: A ID de usuario para indexa-lo. Jason Hirschhorn: A ID de usuario. Entón, nese marco, imos probablemente ten - imos dicir, se é alguén que posúe tres accións, tres liñas, cada unha con este ID de usuario ou usuario do individuo ID, pero un nome de empresa diferente, unha número diferente de accións presuntamente, e un valor de prezo diferente para cada a estas reservas. Unha vez máis, o que estou dicindo agora non é necesariamente a implantación, porque entende que hai algo máis formas eficaces de implementar lo. Pero este é un bo lugar para comezar. Aceptar. Polo tanto, estas son as dúas táboas que temos. Agora queremos presentar a esta páxina. Cal é o primeiro tipo de consulta habería que facer. En cada páxina, se supón que o usuario é sesión, que teñen o seu ID de usuario. Entón, cal é o primeiro tipo de query que necesitamos facer? É. Audiencia: O ID de usuario. Jason Hirschhorn: Temos o seu ID de usuario, cando estamos empezando a código no inicio da nosa páxina. Entón, cal é o primeiro tipo de consulta que que facer, dado ID de usuario? Fomos ao longo dos catro tipos. Hai só catro respostas posibles. Audiencia: é seleccionar un rexistro. Jason Hirschhorn: Un Select - queremos seleccionar o usuario do mesa para comezar, imos dicir, súa cantidade de diñeiro. E podemos imprimir a cantidade de diñeiro na parte superior da pantalla. Aceptar. Cal é o próximo tipo de query que queremos facer? Temos algunhas outras cousas necesitamos amosar. Aqueles son gardadas noutra táboa. Entón, como é que imos conseguir isto? Audiencia: Vostede selecciona para eles. Jason Hirschhorn: Un Select - unha vez máis, hai só catro opcións. Seleccione probablemente soa como o camiño correcto. Entón, necesitamos facer outra consulta selección, novo usando este ID de usuario. E agora, queremos voltar e non só un liña, bu todas as liñas que corresponden á nosa criterios, onde ID de usuario é igual a 1. E entón podemos ir e deixar un loop só imprimir todos aqueles para fóra da pantalla, quizais imprimir a empresa de cada un deles na pantalla. Gran, iso soa como iso é mostrando unha carteira, non moito máis complicado do que iso. OK, o usuario decide, entón, que ter moito diñeiro sobrando. E eles queren mercar algúns máis accións dun stock. Digamos, que xa posúe stock desta empresa tamén. Entón, eles van para a súa páxina de compra. Eles introdución do nome da empresa. Cal é a consulta, tras a entrada do nome da empresa, o que precisa realizar o seguinte? É. Audiencia: Update. Jason Hirschhorn: Update - eo que mesa que quere actualizar? Audiencia: A súa mesa, con base no seu número de identificación? Jason Hirschhorn: Entón actualizar non a mesa do usuario - así actualizar a táboa de Stocks, onde a ID de usuario non só corresponde, pero a nome stock tamén coincide. Terá algún valor. E entón, vai querer levar este valor e engade porén moitas accións que quere mercar el. Entón non quere cegamente substituír ese valor. Pero pode, de feito, levar esa inicial valorar e só actualiza-lo. Podes facer como un plus é igual, no canto de só un igual. Que é algo que aínda que - se estamos pensar sobre iso e queremos ser tan robusto como sexa posible - que temos que facer antes de realizar a consulta actualización? Queren mercar cinco anos de Apple. Cada acción de Apple é de 200 dólares. Audiencia: Debemos comprobar o diñeiro en primeiro lugar. Jason Hirschhorn: Debemos comprobar o diñeiro en primeiro lugar. Debemos ter a certeza de que ten diñeiro suficiente. Que tipo de consulta é que podemos realizar a asegúrese de que ten diñeiro suficiente? Audiencia: Outro Select. Jason Hirschhorn: Un Select - imos seleccionar en base a súa ID de usuario, para obter o seu valor en diñeiro. Faga algunha matemática rápida. E se isto pasa reunir, eles teñen diñeiro suficiente. Entón, podemos realizar o noso actualización. Ou que, se non, nós pasamos entón. Damos-lles un aviso. Aceptar. Din que non ten unha empresa. Eles están a mercar unha nova empresa. Eles están a mercar Microsoft. Que tipo de preguntas que queremos facer, se eles queren mercar a Microsoft? E eles non teñen ningunha Microsoft. Non Manu, ninguén máis, ninguén ademais de Marcus? Carlos - Audiencia: A Select, para asegurarse de que teñen diñeiro suficiente. Jason Hirschhorn: Parece bo. Audiencia: E entón inserir no [inaudível]. Jason Hirschhorn: Exactamente, estamos Vai querer inserir na táboa de Stocks. E imos quere inserir. Podemos introducir o seu ID de usuario, o nome da empresa, e cantas accións queren comprar. Cales son algunhas outras operacións que son páxinas ou funcións que está a terá que aplicar na I-sep 7, de que temos que pasar por riba? Audiencia: En realidade, eu medio que teño unha pregunta sobre este. Antes de presentar a carteira, debe vostede comprobar o sitio web do Yahoo para Asegúrese de que o prezo das accións non cambiaron? Jason Hirschhorn: É sons como unha boa idea. Entón, o que Marcus está dicindo é que, OK, stock os prezos están cambiando constantemente. Nos stocks que posúen mesa, a nosa táboa chamada Stocks, poderíamos gardar o prezo das accións que comprou en. Pero isto non parece que robusta, xa que o prezo das accións é constantemente vai cambiar. Entón, en realidade, probablemente non precisa para salvar o prezo das accións. Pero cada vez que amosar o seu carteira, actualizar ou actualizar o prezo das accións. E se ten - e xa ten. Sei que todos vostedes xa mirou no conxuntos de problemas de volta xa. Xa entendeu que escribimos algún código para ti que permitirá que para obter o prezo dunha acción, dado o nome dunha empresa. Entón, si, que probablemente soa un pouco máis robusto. Pero que a táboa non precisa necesariamente para salvar o prezo das accións. Aceptar. Cales son algunhas outras características que Debe aplicar esta semana podemos falar? Quero falar sobre eles. O que quere falar? É probablemente neste spec. Quere só de desprazarse ata o fondo da especificación e preguntar-me a primeira palabra ve que non ten sentido. Outra característica - imos falar sobre un. Imos comezar por aí. Audiencia: Gardar as historias. Jason Hirschhorn: Gravación a historia, a grande. Entón vai ter que manter o control dun historial de transaccións. Entón quere manter o control de todos os xa que comprar ou vender unha acción. Compras o meu stock. Nós acabamos de dicir, probablemente ten sentido para incluír un Select, para obter a súa cantidade de diñeiro e cheque de volta. Probablemente é intelixente, para incluír unha inserción ou unha actualización, en función ou non posúe ese stock. Se nós tamén queremos manter o control de a historia, como podemos facelo? Será que ir na táboa de accións? Audiencia: Non Jason Hirschhorn: Non, probablemente vai nunha táboa diferente. Porque dicir que comprar 10 accións de Apple. Entón mercar máis de 10 accións. Quere rebocar rexistros separados. Estas son dúas operacións distintas. Polo tanto, temos outra táboa, dunha mesa de Historia. Entón, de novo, nós compramos. Executamos un Select, a continuación, unha inserción ou actualización. O que imos facer a continuación? Cal é a seguinte consulta que executamos cando estamos a mercar algo? Queremos manter o control da historia. É. Audiencia: Quere manter o control transaccións de falla tamén. Jason Hirschhorn: Ben, antes de dicir que tipo de transacción, o que queremos - Que tipo de consulta, Carlos, faría nos permiten seguir das cousas en xeral? Ten catro historiadores. Cal deles pensas? Audiencia: Actualizar. Jason Hirschhorn: Non actualizar. Cal é o seu segundo palpite? Audiencia: Selección. Jason Hirschhorn: Se quere manter pista de algo, probablemente vai querer anota-la en algún lugar ou gardalo para máis tarde. Entón, non se actualizar, entón - Audiencia: Introduza o. Jason Hirschhorn: Inserir, alí imos nós. Si, para que escolla a cantidade de diñeiro que eles teñen, parece gran. Eles non teñen diñeiro suficiente. Esta transacción non está indo traballar. Non, non ten que manter o control de unha transacción se non funciona. Ou pode, se quere darlles un momento difícil. Pero non precisa. Logo, insira ou actualización na súa mesa de Stocks. E agora, ten a súa outra táboa. Ten a súa táboa de histórico ou o que sexa chamalo. E nese marco, vai para inserir unha nova liña. Isto probablemente vai ter ID do usuario. Probablemente terá o nome do stock. Probablemente terá xa que eles fixeron iso. E neste caso, probablemente vai quere inserir o prezo. Porque, para unha historia, non sabe importa o que o prezo actual é. Lle importa o que o prezo é cando eles mercar ou vender algo. Entón parece que, para aplicar a compra implica completamente un número de Consultas SQL, pero honestamente, non que moi xeral do código. Aceptar. E que coida da historia. Digamos, queremos amosar a nosa historia. Nós falamos sobre a exhibición noso Cartafol. Como podemos amosar a nosa historia? Audiencia: Presuntamente cronoloxicamente. Jason Hirschhorn: Presuntamente cronoloxicamente - que consulta que pensas que usaría? Audiencia: Unha selección. Jason Hirschhorn: Un select - seleccionar quizais todas as liñas desa táboa que correspondan a identificación do usuario e, a continuación, amosar-los en orde cronolóxica, Parece bo. Será que necesitamos escribir código para Ordenar por esa lista? Audiencia: Non, porque dixo nós hai un ascendente e descendente cousa. Jason Hirschhorn: Cousa? Audiencia: Yeah. Jason Hirschhorn: Yeah. OK, non Xire o código para min, que clasifica man a través das súas consultas, para clasificalos los. Este código xa está dado. Podes escribir unha consulta selección que clasifica as cousas. Clasificalos los de antemán e logo imprimir a eles. Fai moito máis sentido facer desta maneira, que o contrario. Si Audiencia: Non necesitamos clasificalos los de antemán? Iso quere dicir que clasificar na base de datos? Jason Hirschhorn: A consulta selección retorna para ti ordenada. Entón faga iso, en lugar de só telos voltar a vostede nunha orde aleatoria e logo clasificalos los só. É. Audiencia: Existe un xeito de mantelo ordenada na propia base de datos, de xeito que non ten que clasificar que cada vez que - Audiencia: Pode inserir a ordenada? Jason Hirschhorn: Pregunta - que importa que as cousas son clasificadas na base de datos? Audiencia: Non Jason Hirschhorn: Ben, son clasificados. Eles están ordenados cronoloxicamente. Pero imos supor que as cousas son clasificadas cronoloxicamente, de arriba abaixo. Temos unha forma de Google. Sempre que alguén responde ao noso Google formar, el só colócase no inferior da táboa. Será que iso importa que as cousas son non ordenados cronoloxicamente? Audiencia: se non é cronolóxica, non ten que clasificar-lo cada vez levar información para fóra. Pero se xa está clasificado, non pode non ten que facelo adicional chamada de función? Jason Hirschhorn: Entón é iso realmente un bo punto. Para nós, programadores, quizais importa. E podemos querer atopar unha base de datos que non resolver as cousas cronoloxicamente. Ou montar a nosa base de datos, polo que mantén cousas clasificadas por ID de usuario. Entón, desta forma, por exemplo, temos 1.000 IDs de usuario. Ou Facebook, temos millóns de ID de usuario. Non queremos que a nosa mesa para ser só aleatoria ou noso banco de datos para ser aleatoria. Sería bo que todo o IDs de usuario foron ordenados. Entón poderiamos realizar procuras binarias na nosa mesa e, a continuación, pode atopar o anaco específico. Entón, si, dependendo - se ampliadas, podemos querer atopar unha base de datos que as cousas mantidos ordenados dunha forma diferente Así, para que esas consultas levaría menos tempo. E nós non temos que pasar a través das nosas base de datos enteiro en cada liña individual en unha determinada táboa. Pero o nivel que estamos a traballar, nós Non se preocupe en manter cousas ordenados. Podemos supoñer que o tempo que leva que consulta para realizar será despreciable, xa que estamos lidando. Pero si, gran idea - como escalar, pode ter sentido para proxectar a nosa base de datos en algo dun xeito diferente. Unha cousa de deseño de bases de datos final que quero mencionar tamén, porque vai ser graduadas, ou marcados no seu lugar, en o deseño do seu banco de datos. Nós falamos sobre isto. O diñeiro é único para cada usuario. Entón tes unha táboa chamada de caixa que ten o seu ID de usuario e súa cantidade de diñeiro e, a continuación, unha táboa chamada usuarios que ten o seu usuario ID e o seu nome de usuario. Estas táboas mapear en cada outro de un-para-un. El probabelmente ten sentido para eles ser unha mesa. Entón, imos supor que ten un usuario táboa que mantén o control de nomes de usuarios e diñeiro. Agora tes unha táboa que ten a accións que un individuo posúe. E unha persoa pode posuír máis dun stock. Entón, eses non son mapeadas para cada un de un a outro. Non ten sentido ter un xigante táboa con 30 rexistros que todo repetir un nome de usuario, para que todos repetir un contrasinal, que todos repetir un número de caixa. Pero cada un ten quizais un material diferente nome ou un prezo de acción diferente. Non ten sentido ter que moitas grandes rexistros. Sexa intelixente sobre cando crear estes bases de datos, de xeito que non está facendo algo parvo como este, repetindo unha morea de información innecesarias. Aceptar. Temos dous minutos do final. A xente do lado de fóra está animado para unirse nós ou, probablemente, presuntamente, comezar a súa propia clase. Alguén ten algunha dúbida antes de rematar? OK, este foi realmente un turbillón a través de todo. Pido desculpas que tiña que ser tan rápido e que non podería ser tan hands-on esta semana, eu tería gustáballe ser. Pero se tes algunha dúbida sobre calquera cousa que pasou por riba ou algo este conxunto de problemas - presumindo que le-lo e colocar- nun esforzo de boa fe - sexa a vontade para me enviar correo-e ou póñase en contacto me. Estou máis que feliz en traballar con seu código con vostede ou responder a calquera preguntas que ten. Teña presente que, esta semana, unha serie de seu tempo será gasto na aprendizaxe do nova sintaxe e intentando entender como escribir consultas SQL ou PHP funcións ou xestionar un framework MVC. Unha morea do seu tempo esta semana, probablemente, non será tentando descubrir o lóxica tolo que estamos pedindo que faga. Un lote de que nós só fomos máis é relativamente simple. Entón, iso non significa que esperar ata o último minuto. Pero iso non significa axustar o xeito no que facer a súa traballar nese sentido, para asegurarse de está entendendo e aprender a sintaxe. Entón non é de súpeto, sabendo exactamente o que quere facer, pero con ningunha idea de como exactamente escribilo. OK, eu vou velo na próxima semana.