JASON HIRSCHHORN: Bienvenido todos a la semana ocho. Tenemos una semana emocionante por delante de nosotros. Ustedes han buceado en este último par de conferencias a PHP, SQL, HTML, CSS, por lo que cuatro idiomas flamantes que se van para ocupar el resto de este curso. También aprenderemos un par de otros idiomas antes de final de curso. Pero de todos modos, no hace falta decir que esto es un momento muy emocionante en CS50, ahora usted han dominado C, ostensiblemente, y son de pasar a la programación de sitios web. Así que esta semana, vamos a seguir un viaje relámpago a través de los cuatro lenguas que acabo de mencionar, HTML, CSS, PHP y SQL. Y es de esperar, vamos a dejar un montón de tiempo al final de la sección para hablar acerca conjunto P de esta semana y respuesta cualquier pregunta que todos tenemos. Cada semana, la misma lista de recursos para ti, para ayudarte con la semana conjunto de problemas e ir sobre el material - pero esta semana en particular, para estos conjuntos de problemas basados ​​en la web, hay un gran cantidad de otros recursos fuera allí que es probable que encontrar muy atento. Los tengo aquí. Te Enviar esto después de la sección, y esto también estar online. Pero en particular, hay un montón de grandes recursos hacia fuera allí. También hay algunos no tan grande queridos, así que ten cuidado con eso. Pero en esta diapositiva, tengo cuatro buenos recursos, uno para cada uno de los idiomas que va a trabajar con esta semana - una hoja de referencia para HTML, una hoja de referencia para el CSS. Este derecho aquí es el manual de PHP. Así que en lugar de hombre escribiendo y luego un PHP comando, aquí es donde lo haría ir a buscar el prototipo de la función y ejemplos y también algunos consejos y trucos para utilizar las funciones de PHP. Que va a utilizar este sitio a menudo, así que animo a que te conviertas familiarizado con él. Puede ser un poco técnico, pero es También ofrece un montón de recursos y ejemplos para todas las funciones y incluso otros, como la forma de utilizar matrices o diferentes tipos de variables. Este sitio es muy útil para PHP. Y luego, para SQL, si se zambulló en esta conjunto de problemas de la semana, usted sabrá que estamos utilizando una base de datos. Y accedemos a esa base de datos a través de una interfaz de usuario relativamente agradable. ¿O que es una forma de acceso dicha base de datos. La interfaz de usuario es llamada phpMyAdmin. Hay una ficha SQL, que vamos a mira más adelante hoy. Y usted puede escribir en su SQL muestra consultas, de hacer las cosas en su base de datos y luego ejecutar esas consultas. Y si son correctos, que va a decir, correcto de éste. Si son correctos, que va a por ejemplo, es incorrecta. Eso es un gran lugar para practicar su Consultas SQL antes de escribirlos en su código, para asegurarse de que tienen el formato correcto. Por último, otra página web aquí. Este es el sitio web donde se puede ir y comprobar para asegurarse de que su Código HTML es válido. Así que antes de dar vuelta a sus problemas de establecer esta semana, asegúrese de que todos los el HTML es válido. La semana pasada, se había corrido valgrind, a asegúrese de que usted no tenía pérdidas de memoria. Esta semana, usted necesita para asegurarse de que todos los de su código es válido HTML5. Si no es válido HTML5, eres va a conseguir puntos fuera. Así que asegúrese de - simplemente porque funciona no significa que es completamente válido. Ejecute el código a través de este sitio web antes de dar vuelta pulg Una vez más, aquí está la página web. Si usted tiene alguna reacción para mí, tenemos un par de más secciones a la izquierda, y yo siempre quiero hacer lo que pueda para todos ustedes ofrecerle la mejor sección experiencia posible. Así que quiero saber si hay algo que podemos hacer para mejorar o si hay cosas que ves que yo podría hacerlo mejor. Gracias, Avi. Ponlo en el sitio web. Esta fue la moto que tuve cuando fue, digamos, cuatro en casa. Es un Teenage Mutant Ninja Turtle andar en bicicleta, en caso de que no se puede decir, porque es un poco borrosa. Se puede conseguir ahora en ToysRUs para, creo, alrededor de $ 100. Pero la característica de esta moto que quiero a prestar atención a son estos aquí mismo. Estas son las ruedas de entrenamiento. Hasta ahora, usted ha sido de mano a la C. Y hemos tomado un largo tiempo, dos meses más, para ir a la C. Para estos próximos dos lenguas, no vamos a pasar tanto tiempo. Las ruedas de entrenamiento están saliendo. Y vamos a sumergirse en estos idiomas rápidamente y moverse a través de de forma rápida, lo cual no quiere decir que sólo vamos a dejar la natación por ahí y no hay forma de apoyar sí mismo o averiguar cómo éstos idiomas de trabajo. Me acabo de mostrar una lista de recursos para ayudarle. Pero hay que tener en cuenta que PHP es increíblemente similar a C. Vamos a repasar hoy en día y algunas de las diferencias. Pero en su mayor parte, hay para los bucles. Hay si las condiciones. Cuando se quiere resolver un problema, usted va a utilizar un combinación de esos. Es muy similar. La lógica debe ser muy similar a lo que has hecho en el pasado. Lo que es realmente nuevo esta semana es el sintaxis y la forma en que te expresas. Y desea escribir un bucle, pero puede tener un aspecto un poco diferente. O quieres crear una matriz, pero puede tener un aspecto un poco diferente. Así que tenga en cuenta que, de seguir adelante, la lógica es muy similar a lo que has hecho en el pasado. Pero usted está ahora va a encontrarse con una gran cantidad de nueva sintaxis. Y no vamos a caminar a través todos los elementos de la sintaxis. Así que es realmente depende de usted para averiguar, en línea o contactando con el Discuta o enviando un correo electrónico a mí oa hablar con entre ellos, la forma de escribir las cosas en PHP y cómo escribir consultas SQL y cómo usar HTML y CSS. Pero para que lo sepas, no es que que estamos tratando de tirarte por ahí de nuevo a nadar a los tiburones. Esto es lo que es probable que ver con su proyecto final, si usted elige un un lenguaje diferente, al igual que iOS y Objective C, o si usted decide empezar programación en el futuro y sumergirse en otros idiomas, como Python o Ruby. A menudo, la lógica es muy similar en todas estas lenguas, y la sintaxis es lo que es diferente. Y será de ti, ya que el programador, para ir utilizar la web recursos disponibles para usted y la figura encontrar la manera de expresar lo que usted sabe cómo para expresar en C, en un un lenguaje diferente. Así que esta es una buena práctica, tanto para su proyecto final, y otra vez, para lo que probablemente va a hacer después de salir CS50. Antes de continuar, ¿alguien tiene alguna pregunta acerca de lo que Yo he hecho hasta ahora? Grande. Vamos a pasar. En primer lugar, vamos a hablar brevemente sobre el comando chmod. Esto, lo haremos en el inicio de sus problemas de set. Una de las primeras instrucciones para usted, después de descargar el código de distribución, es cambiar el permisos de los archivos y directorios que usted recibe. ¿Alguien puede aventurar una conjetura o saber por qué es importante cambiar el permisos de ciertos archivos y directorios en su ordenador? Avi - AUDIENCIA: Entonces nadie a excepción de se puede ver lo que estás haciendo? JASON HIRSCHHORN: OK. Así que si queremos poner algo en el web y que ha configurado permisos que sólo se puede ver algo, entonces nadie más puede hacerlo Ves lo que has creado. ¿Qué más? Sí. AUDIENCIA: Evitar que nadie más que usted no quieren ver algo, de ver algo. JASON HIRSCHHORN: Eso es verdad también. Probablemente hay un código que usted escribe, que no lo hace quieren que la gente vea. Probablemente usted está bien con la gente de ver el HTML y el JavaScript. Pero su PHP, un código de fin de nuevo, una gran cantidad de la lógica de su código, tal vez el cosas que almacenan algunas de las contraseñas para su base de datos, no lo hace quieren que la gente vea que tipo de información. Así que es importante que, cada archivo y directorio que creamos tiene permisos aplicable a si queremos o no la gente a ver este tipo de archivos y directorios y poder acceder a ellos y potencialmente incluso cambiarlos. Así que hay tres tipos de permisos. Hay un permiso de lectura, lo que significa se puede leer un archivo o una lista de la contenido del directorio. Ahí está el permiso de escritura, lo que significa que usted puede cambiar un archivo o un cambio un directorio y luego la ejecución de permiso, lo que significa que puede ejecutar un archivo o mejor dicho, que puede moverse en un directorio. Así CD algo, si usted tiene la permiso para ejecutarlo, puede mover en ese directorio. Este es un breve ejemplo. Una vez más, usted ha ido por este en el conjunto de problemas. Pero puedo crear un directorio con el comando mkdir. Puedo cambiar los permisos. Estas dos líneas realmente hacen exactamente lo mismo. Es para ilustrar que la sintaxis para cambiar los permisos, si lo haces la a + x o 711, los que son los mismos. Miramos hacia abajo en esta bonita mesa. Vemos que hay usuario permisos primera. Que usted, el individuo es, y su servidor, potencialmente. Y luego está el grupo y otros. Las diferencias entre los dos son relativamente trivial. Así que en general, nos agrupamos quienes juntos. Pero, en esencia, si tenemos un archivo llamado incluye que queremos ser capaz de editar a nosotros mismos y que queremos otros para ser capaz de ejecutar, es el permiso 711. Y vemos que abajo aquí en esta mesa. Tenemos una lectura, escritura y ejecución. Para cada uno de nosotros, queremos ser capaz de hacer eso. Grupo y otros, sólo queremos que sean capaces de ejecutar. La forma en que traducimos en un número de permiso es a través binario. Así que si tenemos tres más, eso es un 1 en columna de las unidades, un 1 en los grupos de dos columna, una columna 1 las cuatro patas. Eso es 7 justo ahí. Y este permiso es de 1. Este permiso es de 1. Así que 711 cuando es lo mismo que dar nos leen, escritura y ejecución, y todos los demás privilegios de ejecución. Esta línea de aquí, por lo general, habrán de leer y escribir cuando crear un directorio. Así que esta línea de aquí sólo se suma ejecutar privilegios a todos. Así que sería similar a, en Además de lo que tenemos, la adición de 1, 1, 1 a todo el mundo. Considerando que la presente, es innecesaria añadir leer y escribir. Pero si usted va a utilizar los números, no se puede simplemente añadir algo. Sobrescribe cualquier permiso eran ahí y ponerlas en práctica con el nuevo número que usted da. Eso fue muy rápido. ¿Alguien tiene alguna pregunta sobre el cambio de los permisos? Aceptar. Si tengo un archivo PHP, qué permisos Qué quieres que tenga? Esto está en la especificación conjunto de problemas. Así se puede ver en la especificación y luego me leer la respuesta. AUDIENCIA: Usted desea que el usuario tener permisos de lectura y escritura. Y usted quiere todo el mundo cosa que no tiene nada. JASON HIRSCHHORN: ¿Y qué números es eso? AUDIENCIA: 600. JASON HIRSCHHORN: 600. Así chmod 600 - cada vez que imprima un archivo PHP, chmod a 600. Aceptar. Tengo un directorio. Alguien además de Jeff, Tengo una carpeta de archivos. ¿Qué permisos quiero para dar a esa carpeta - también en el problema conjunto de especificaciones, justo debajo de esta respuesta o la respuesta anterior? También potencialmente en la diapositiva - Marcus. AUDIENCIA: Para el carpeta, que es 711. JASON HIRSCHHORN: 711 - por lo que una carpeta, usted quiere dar 711. ¿Quieres ser capaz de leer esa carpeta, cambiar de directorio, se mueven en esa carpeta. Y quiere que todos los demás para poder para navegar dentro de esa carpeta, pero no cambiará necesariamente su contenido. ¿Qué pasa con un archivo que no sea PHP, decir, un archivo de JavaScript? ¿Qué permisos es lo que queremos para dar ese tipo de archivo? AUDIENCIA: 644. JASON HIRSCHHORN: 644 - ¿por qué queremos darle 644? AUDIENCIA: Para permitir que otras personas lo lean. Y se lee o escribe. JASON HIRSCHHORN: Así que bien, todos más puede leer ese archivo JavaScript. Y usted puede cambiar eso, además de ser capaz de leerlo. Así que uno de los errores más comunes que la gente tener con este conjunto de problemas y su proyecto final, si es un final basado en web proyecto, que no han establecido los permisos correctos. Y no van a ser capaces de para ver su página web. O una parte particular de su página web. Así que asegúrese de que establece la permisos correctamente. No asuma que lo hará hacerlo de forma automática para usted. Aceptar. Eso fue una cosa pequeña que pasamos una buena cantidad de tiempo en, por lo podríamos clavarlo. Vamos a pasar a HTML. Y de nuevo, para estos próximos cuatro temas, vamos a ir a través de ellos con relativa rapidez. Así que no dude en detenerme en cualquier tiempo, si usted tiene alguna pregunta, si están relacionados con lo que yo cubro o algo de conferencia o incluso de fijar el problema. Deje de mí siempre que lo necesite. Cuando lleguemos al final, sólo tendremos que empezar a ir sobre el conjunto de problemas. Así HTML significa Hipertexto Lenguaje de marcado. No es un lenguaje de programación. Todo lo que hace es la estructura de su contenido y también proporcionar algunos metadatos. Así, por ejemplo, presumiblemente, muchos de los usted ha utilizado Facebook antes. Y usted puede incluir enlaces en, o puede poner un enlace como su estado. Y entonces, te darás cuenta de que el vínculo siempre tiene una buena foto a la misma y un poco de texto. Generalmente, es decir algunos metadatos para una página web. Y es metadatos Facebook específicos. Y entonces, cuando Facebook está leyendo que página y la inserción en ese vínculo, que busca los metadatos específica, por lo que sabe qué imagen para mostrar, lo que título para ver, y lo que texto del resumen para mostrar. Así que podemos incluir metadatos con nuestra página web usando HTML. Y también nos ayuda a estructurar el contenido, en general, lo queremos ir a donde. Todo en HTML es un elemento. Y los elementos aquí - este CS50, el texto es el elemento. Y tiene algunas etiquetas. Tiene esto una etiqueta. Y nos damos cuenta de que hay una A en la principio y luego una barra oblicua a, de modo el cierre de la etiqueta al final. A veces, no hay un proceso abierto etiqueta y una etiqueta de cierre. Hay sólo una cosa. Vamos a ver un ejemplo de ello en la siguiente diapositiva. Así que no es necesario un proceso abierto y una etiqueta de cierre. Pero para esto, estamos encerrando este Elemento CS50 en una etiqueta de ancla. Y, esencialmente, las siguientes etiquetas dicen el navegador qué hacer con el elemento en particular. Así que de nuevo, CS50 es el texto vamos a ver. Y que va a ser un tipo de anclaje. Anchor se utiliza esencialmente para los enlaces a algo. En particular, como se puede ya decir, este es un enlazar a la página CS50. La siguiente parte de la etiqueta - o, en general, una parte de las etiquetas son atributos. Y vemos aquí, que la etiqueta tiene una atribuir, este atributo href. Y que modifican una etiqueta en particular. De hecho, si usted va a una de las sitios web o las referencias que te di antes o buscar la etiqueta en línea, te darás cuenta de que hay un montón de atributos potenciales. Esta es probablemente una de las más comunes. Esto me está diciendo que cree un enlazar a la página web específica. Y atribuye generalmente se les da, Si no se da exclusivamente, en pares clave-valor. Así que aquí está la clave, href. Y el valor es esto de aquí. Y eso va a ser muy útil más adelante, cuando empezamos a usar algunas bibliotecas para ayudarnos a código en JavaScript o escribir el contenido HTML. A menudo nos vamos a ser - al igual que haría matriz soporte 0 y que nos daría algún valor. En el futuro, vamos a estar haciendo un montón de cosas como href algo soporte. Y eso nos dará el valor de la href, o si queremos actualizar el href llave y luego darle un valor particular. Así que al igual que con las matrices en los que tuvimos tecla 0 o la tecla 1 o la tecla 2 o incluso con un la tabla de hash, también, con sus tablas hash así, probablemente tenía - que era una matriz, por lo que la tecla 0, la tecla 1, tecla 2. Ese índice de ahí, podemos pensar en eso como una llave. Y el valor es lo fue almacenado allí. Todos estos atributos son pares clave-valor. Y eso va a ser importante para el cambio ellos o su actualización o la inserción de ellos más adelante. Por último, ya has visto esta estructura antes, pero esta es la más básica estructura de la página HTML. En la parte superior, le decimos que este es, de hecho HTML. Y luego tenemos un HTML abierto etiqueta y una etiqueta de cierre HTML. Así que todo el interior de la este es el código HTML. Vemos la cabeza y el cuerpo. La cabeza de su documento generalmente incluye qué? ¿Alguna idea de lo que poner en la cabeza? AUDIENCIA: Usted pone el título y el estilo. JASON HIRSCHHORN: El título. Esa fue una gran suposición. Puedo haber inclinado de usted al. ¿Qué otras cosas? Hemos mencionado a uno de ellos que podría ir en la cabeza. AUDIENCIA: El dijo, estilos. JASON HIRSCHHORN: Styles - por lo que si desea vincular en un JavaScript o incluso un CSS, lo que usted está hablando aproximadamente cuando se habla acerca de los estilos. Otro archivo, que desea vincular en un fuera del archivo, que probablemente se va en la cabeza. ¿Qué más? Hemos mencionado un par de diapositivas hace una de las cosas que HTML puede hacer por usted. Se puede proporcionar - comienza con un M - AUDIENCIA: Metadatos. JASON HIRSCHHORN: Metadatos - por lo que una gran cantidad de los metadatos irá en la cabeza, porque eso no necesariamente tienen para ser parte del cuerpo de su código. Eso es por lo general - el cuerpo es el contenido, lo que ve a alguien. Y así me di por lejos la respuesta a mi siguiente pregunta. Pero en el cuerpo es generalmente el contenido eso va a mostrar en la página web. Como vamos a ver, sitios web complicados tienden a mezclarse o cambiar hasta lo que ponen en la cabeza y el cuerpo. Pero, en general, la cabeza presenta cosas que el usuario no va a ver en la pantalla. Vincula en otros archivos y proporciona los metadatos. Considerando que, el cuerpo contiene todo el usuario va a ver. ¿Alguna idea de lo que significa esta etiqueta p? AUDIENCIA: El párrafo? AUDIENCIA: Imprimir. AUDIENCIA: No significa impresión. AUDIENCIA: ¿Significa párrafo? JASON HIRSCHHORN: párrafo - por lo que este es un párrafo. Y esta etiqueta p, yo podría haber acaba de escribir esto en la pantalla y luego incluye un salto de línea al final de la misma. ¿Alguien sabe cómo incluir un salto de línea? AUDIENCIA: pr - JASON HIRSCHHORN: pr - AUDIENCIA: Raya vertical pr? JASON HIRSCHHORN: slash pr significa salto de línea. Pero párrafos tienen específica formateo. Y vamos a llegar a formatear en un en segundo lugar, cuando hablamos de la CSS. Pero todo dentro de estas etiquetas p tendrá algún formato predeterminado asociado con él, probablemente algunos espaciamiento entre diferentes párrafos. Y va a ser una manera de diferenciar bloques de código. Cualesquiera otras etiquetas - ¿qué otras etiquetas que has visto? JASON HIRSCHHORN: H1 a H6. H1 a H6, y lo que es eso? AUDIENCIA: Se denotará lo grande y en negrita las letras son. JASON HIRSCHHORN: Derecho, que representa la cabecera. Y así header1 es un gran cabezazo. Va probablemente, por defecto, ser audaces, un tamaño de fuente grande, probablemente centrado en la pantalla, todo el camino hasta h6, que es un tipo de letra más pequeño, menos enfatizado. Por supuesto, usted puede, en estás archivo CSS o en algún lugar en el código - que, de nuevo, vamos a llegar a eso en un segundo - cambiar lo que el comportamiento por defecto de una etiqueta h1 es. Pero hay que tener en cuenta que Chrome, Safari, Firefox, Internet Explorer, todos tienen por defecto busca un montón de estas etiquetas estándar. Usted puede, de nuevo, siempre hay que cambiar lo que parecen. Cualesquiera otras etiquetas que todo el mundo ha visto? Sí - AUDIENCIA: Un sitio div. JASON HIRSCHHORN: Una etiqueta div - div etiqueta no tiene ningún formato integrado, por SE, que se utiliza para bloquear diferentes tipos de código. Cualesquiera otras etiquetas? Sí. AUDIENCIA: li - JASON HIRSCHHORN: li - lo de Li como? AUDIENCIA: Lista. AUDIENCIA: Lista JASON HIRSCHHORN: li es para los elementos de la lista. Hay dos tipos de listas. ¿Cuáles son los dos tipos? AUDIENCIA: ordenadas y desordenadas. JASON HIRSCHHORN: Pedido y desordenadas - soportes para ul para la lista desordenada. Eso es si quieres un bullet punto, una lista de las balas. Una lista ordenada es una lista numerada. Así que va a hacer una etiqueta ul abierta y luego toneladas de elementos de la lista y luego cerrar la etiqueta ul. y que la voluntad crear una lista desordenada. Vamos a ver algunos ejemplos de HTML en un rato. Pero antes de eso, quiero llegar a la CSS. Y CSS significa Cascading Hojas de estilo. Y esto es muy estrechamente relacionado a HTML, pero un poco diferente. Esto ayuda a dar formato a todo el contenido que las estructuras de HTML. Así que en CSS, por lo general, no queremos el estilo de cada encabezado de una o todas las sola imagen o todas las solo párrafo. Queremos que el estilo de algunos elementos o tal vez un elemento específico. Y la forma en que el estilo de una específica elemento es darle un ID. Así que este es un atributo. Tiene una clave y un valor. ID es la clave. Logo es el valor. Cogí logo azar. Y si le das algo un ID, en general, que sólo se debe dar a un elemento. Y entonces, en su hoja de estilo, puede estilo que en particular elemento, sin embargo usted quiere que se vea. Si usted quiere labrar una serie de elementos, tal vez es una cierta clase de las cabeceras, sólo algunas de sus cabeceras. Tal vez sea una cabecera y una imagen y un párrafo al que todos quieren estar centrado. Entonces usted puede dar a esos grupos de todos los elementos de una clase. Y usted puede dar a la clase estilos específicos. Así, una identificación y una clase dos maneras de romper el código, por lo que puede ayudar a ser más específico en lo que estilo. Hay tres formas de estilo. El primero es, con este atributo de estilo. Como puede ver, la clave de estilo es el estilo. El valor de estilo es en realidad otra lista de valores clave. En este caso, cogí una de las claves, text-align. Y yo dije: central. Es posible que se esté preguntando en este punto, ¿cómo sabía yo de text-align. ¿Qué significa que incluso lo hacen? Esa es una gran pregunta que debemos hacernos, y vamos a llegar en un segundo. Así que esa es una manera de estilizar algo, sólo le dan el atributo de estilo. Otra manera de estilizar algo es - esto es Akshar mencionó anteriormente. Usted puede utilizar las etiquetas de estilo y poner ese en el encabezado del documento HTML. Así que usted está diciendo básicamente, el contenido aquí dentro es algo de contenido estilo. Y el formato para que sea la cosa que usted desea aplicar un estilo y, a continuación, en el interior de llaves, el par de valores clave de la atributos que usted quiere dar a ese tipo particular de elemento. Finalmente, y este es el forma más común. Y esta es la forma en que hacerlo en conjunto p 7. Es una hoja de estilos externa. Así que tienes un archivo css.. Y dentro de ella, se ve una gran cantidad de las cosas que se ven así, el nombre de algún tipo de elemento o un ID o una clase y, a continuación, en el interior de rizado llaves, una lista de pares clave-valor. Por supuesto, si usted crea una externa archivo, usted va a necesario incluirlo - agudo incluir, que haría ser la analogía C - en su archivo HTML. Así que hay que incluir esta código en el archivo HTML. Este es el nombre del archivo y asumiendo que es en el mismo directorio. Aceptar. Eso fue mucho. Y ahora vamos a respirar y mirar en algún sitio Web real en vivo y explorar esto más. Pero antes de hacer eso, ¿alguien tiene alguna pregunta? Así que si usted desea hacer esto, junto con mí, que puedo ir al aparato. Y elegí la página principal CS50. Usted puede hacer esto con cualquier sitio web. Pero, ¿por qué no empezamos con la página CS50? Vamos a refrescar. En realidad le recomiendo que hacer esto junto conmigo, porque lo que van a hacer ahora va a ser increíblemente útil para usted, no sólo en P-Set 7, pero en P-Set 8 también. Sí. AUDIENCIA: ¿Hay una manera de hacer comentarios en HTML, sin necesidad de utilizar PHP? JASON HIRSCHHORN: Sí, se puede hacer comentarios en HTML. AUDIENCIA: ¿Cuál es la sintaxis? AUDIENCIA: Signo de exclamación tablero de instrumentos. AUDIENCIA: OK. JASON HIRSCHHORN: Si. Esa es la sintaxis. Usted puede hacer comentarios en HTML. Usted puede hacer comentarios en PHP. Como podrá ver, comentar en HTML seguirá apareciendo, cuando nos fijamos en la Código fuente HTML de un sitio en particular. Así que este cs50.net. Si hace clic derecho en la más moderna navegadores en la mayoría de cualquier página, ver la fuente de la página. Así que vamos a hacer eso en el CS50. Y he aquí, nos ver una cosa gigante. CS50 en realidad se ve bastante bien. Una gran cantidad de sitios web no lo hará mirar esto agradable. Si vas a la página de inicio de Google y se abre. No va a mirar esto agradable. Pero te das cuenta de que, en la parte superior - esto es un poco pequeña. Vamos a hacer esto más grande. Aceptar. En la parte superior, HTML DOCTYPE, eso es familiar. Entonces vemos la etiqueta HTML abierto y la cabeza, aquí, todo de estas etiquetas meta. Y se puede ver esta og, no va a entrar en eso ahora. Pero estoy casi seguro de que esos serían Facebook. Eso es en realidad el Facebook. Creo que es sinónimo de Open Graph. Así que recuerden, yo estaba mencionando que hay Metadatos Faceboook específica que pueda dar a una página. Eso es lo que está aquí. Así que cuando se vincula esta página en Facebook, la imagen que se va a mostrar es esta imagen aquí. Y en realidad se ve que es Facebook, porque es la imagen de Facebook. Pero de todos modos, estamos llegando a un lado. Así que tenemos algunas etiquetas de metadatos aquí. Vemos el título CS50. Y una vez más, el título es lo que pasa aquí, en la pestaña del navegador. Vemos esto es la vinculación en, aquí, un archivo JavaScript externo. No hemos hablado mucho JavaScript, pero la próxima semana - y, desde luego, si usted está haciendo una serie de problemas basada en la web, que va a utilizar JavaScript. Es así como se vincula en exterior JavaScript archivos. Vemos aquí, por último, la CSS hoja de estilo, que documenta estos estilos de este código. Vamos a abrir esa realidad y echar un vistazo muy rápido. Esto parece una locura. No hay manera de que sería capaz de leer. Así que en realidad se puede, sin embargo, si se toma una mirada, se puede ordenar de ver que hay - ahí vamos. Eso se parece a algo que hemos visto antes, color de fondo, estableciendo que igual a algún valor rojo-verde-azul. Este tipo de cosas no debe parecer que extranjera, a pesar de que, cuando se presenta como éste, puede ser un poco abrumador. No vamos a mirar a este archivo CSS o pasar mucho tiempo en ella, porque que es, de nuevo, muy difícil de leer. Volvamos a este Página HTML para CS50. Y vamos a desplazarse hacia el cuerpo. Y en el interior vemos esta etiqueta div. Vemos un encabezado aquí. Vemos la etiqueta de anclaje. Y este elemento de la lista es dada una clase específica. Y vemos que la clase repite una y otra vez. Ahí estás Curtis. Existe el comentario en HTML5. Y como te das cuenta, todavía podemos ver , pero no está mostrando. Es realmente muy interesante. Parece que esta lista puntajes elemento está comentado. Si vamos a esta página, una vez más, sigue aparece allí, tan interesante. Oh, es por eso, porque de esta línea siguiente. ¿Qué otra cosa es lo que vemos de interés? El resto de este es más confuso, en hacer frente a esta mitad derecha de la sitio web, que es un poco poco más complejo. Así que esto es lo que algunos HTML va a ser similar. Para mí, sin embargo, esto es un poco abrumadora, y esto no lo hace me ayudará mucho. Sin embargo, hay algo que que, de hecho, me ayudaría mucho. Y eso es lo que yo uso cuando estoy tratando de averiguar cómo algo se ve la forma en que lo hace, o cómo puede Hago cambios a mi sitio web. Y eso es una herramienta de desarrollo que está integrado en Chrome. Así que si vas a este tres bares justo aquí e ir a Herramientas, haga clic en Herramientas de desarrollo, una pequeña ventana se aparecerá en la parte inferior de la página. Y, en particular, cromo, ya que es maravilloso, formateará esta ventana y tomar el código HTML y hacer que se vea mucho más agradable para usted. Así que ahora es en realidad algunos plegable HTML que se puede explorar a inspeccionar los elementos de la página. Si queremos mirar el cuerpo, lo que realmente destaca. Cuando se desplaza a través de una parte del código HTML, en esta ventana, lo hará resaltar el papel que está hablando acerca de la gran ventana. Así que permítanme volver a tratar de soplar esto un poco. Aceptar. Así que vamos a abrir el cuerpo. Y estoy desplazándose sobre este div izquierda. Y te das cuenta de que está destacando esta mitad izquierda de la pantalla. Así que vamos a hacer clic en esa y ampliar eso. Dentro de ella, se ve como hay dos divs. Hay una primera div. No veo que destacó. No sé, pero parece que esta segunda, izquierda interior, es el contenido en el lado izquierdo de la pantalla. Luego está esa cosa llamada cabecera. Parece que eso es poner de relieve la parte CS50. Si abrimos eso, vemos que se trata de nada más que la cabecera 1. Se ha dado una identificación, y es dado el CS50 texto. Así que de nuevo, mirándolo a través de este consola o usando las herramientas de desarrollo panel en la parte inferior de las marcas de pantalla la exploración de esta página web, con suerte, un mucho menos intimidante y mucho más accesible. También nos permite entender que este sitio web, a pesar de que se ve muy bonito y agradable, no es todo lo que mucho más de lo que vas a ser haciendo en Problemas de 7. Y esto es totalmente dentro su capacidad de crear. Si queremos - la otra cosa fresca sobre el uso de estos herramientas es, si hace clic derecho sobre el título, puede editar el código HTML. Así que vamos a llamarlo Jason. Y ahora te darás cuenta de que he cambiado el código HTML de esta página. Por supuesto, no he cambiado de forma permanente. Si actualizo mi navegador, entonces sería volver al HTML original. Pero a veces quiero depurar mi código, y yo no quiero parecer apenas tiene mi ventana de gedit y tratar de entender ¿qué está pasando. Quiero ver qué va a pasar en vivo. Así que voy a editar código como este y consigo la forma que yo quiero que se vea. Y entonces voy a hacer la cambios en mi código. Y me parece que es mucho más fácil cuando se puede hacer las cosas instantáneamente, así. Digamos, una vez más, queremos hacer otra casualidad, porque estamos explorando con HTML y CSS en estos momentos. Puedo editar el HTML en estos momentos. Y yo voy a incluir un enlace. Así que me voy a cambiar de domicilio del CS50 la página, por lo que se vinculará a - digamos - mi página de inicio. ¿Cuál es el nombre, si alguien recuerda, o ¿cuál es el atributo que quiero dar a una pestaña de anclaje cuando quiero para vincular a otro lugar? AUDIENCIA: href? JASON HIRSCHHORN: href - Así que ahora, verás que hay es un subrayado debajo de Jason. Esto se debe a Chrome, por defecto, da anclas un subrayado. Usted probablemente ha visto que antes de cuando has ido a una página web. Las cosas que son vínculos son subrayado y en azul. El estilo predeterminado para un vínculo es generalmente subrayar y lo puso en azul. Si no me gusta, Yo puedo cambiar eso. Y vamos a cambiar en un segundo. Pero ahora, también cuenta de que, si se ciernen por esto, en la parte inferior izquierda de la pantalla, justo encima de los elementos denominativos es el vínculo que se lo di. Así que si lo hiciera clic en este - y podemos haga clic derecho sobre este, abrir una nueva pestaña. Esto no es realmente mi página de inicio. Es sólo mi nombre. Ahí lo tienes. Ahora hemos convertimos en un enlace. Vamos a explorar un poco de CSS también. Lo bonito - y voy a hacer de esto un poco más pequeño - aproximadamente esta consola es que la hoja CSS loco vimos antes, que era realmente difícil de analizar, ya está bien trazado para nosotros en el lado izquierdo de este panel. Así que podemos ver. Y si ampliamos esta ficha los estilos, puede ver todos los diferentes estilos que están asociados con, en este caso, este elemento particular, esta elemento de enlace. Si lo hacemos en la ficha estilos compuestos, que sólo nos muestra, no el que todo proviene de, pero esencialmente todos estos estilos que están operando en este elemento en particular en estos momentos. Y digamos que queremos para cambiar un poco. Así que esto es todos los estilos que son operando en este elemento particular. Digamos que queremos cambiarlo, porque ¿Quieres ver cómo se ve algo. Y sólo estamos jugando todo en estos momentos. ¿O queremos probar algo, antes de escrito en código y empujando y lo que es vivir. Podemos ir a la pestaña de estilos. Y en el primer cuadro que dice, element.style. Y aquí, puede insertar, usted puede agregar algo. Así que quiero - vamos a ir a mi enlace y el establecer el color de fondo. Y lo que realmente AutoFills por ti, todas las posibles propiedades. El color de fondo, y quiero para hacer que el azul. Blus no es una palabra. Azul es una palabra. ¿Vi concretarlo? ¿Eso es porque está en el href? Aceptar. Así que no veo ningún cambio aquí. Y es que, si se destaca el enlace, te darás cuenta de que el vínculo no es en realidad el control de la propiedades de este elemento en particular. En realidad, si abrimos el enlace, esta cabecera aquí que es el control de lo que parece. Así que si quiero hacer el fondo azul, en realidad tengo que cambiar color de fondo en la elemento de cabecera. Y ahora vemos que la fondo es azul. Así que de nuevo, esto rápidamente podría ir través de este material con bastante rapidez. Pero esto es esencialmente lo que usted va a estar haciendo. No está en problemas n 7, pero ciertamente cuando estás codificación en la web. Aceptar. Quiero hacer el fondo azul. A pesar de que, en este caso, azul se ve muy feo. Yo puedo entrar aquí, jugar un poco. Veo que cambiarlo a azul no funciona en el a. Tengo que cambiar realmente la cabecera elemento para incluir el azul fondo. Y entonces, si luego vuelvo a mi CSS archivo, ¿cómo puedo realmente establece este de fondo a ser azul y hacer este cambio palo? Porque si nos damos cuenta de si restauro la página, todos los cambios que hice se han ido. Así que me di cuenta, OK, mi fondo es azul. Tengo que ir a ese elemento header1 y cambiar el color de fondo a azul. ¿Cómo puedo realmente hacer ese cambio? Bueno, recordar que, si vamos dentro de aquí, esta cabecera, el título tiene un ID. Y ese es el título. Y así, en nuestro archivo CSS, se puede decir, OK, llevar nada con ID de título y darle esta propiedad adicional. ¿Cómo nos referimos algo con el Identificación del título, cualquier idea, ni a nadie sabemos cómo hacemos referencia ID en nuestro archivo CSS? Un hash, que es exactamente correcto. Y tienes una pizca de eso aquí. Así que en algún lugar de este archivo CSS, hay esta línea de código - # # Dejó izquierda interior # header # título. Y está dando margen inferior, la definición de la parte inferior de este margen elemento particular. Bueno, si yo quería cambiar eso, Me gustaría ir en el archivo CSS. Y pude encontrar ya sea esta parte del archivo CSS. O podría escribir mi propio. Yo podría hacer picadillo corsé título rizado y luego azul el color de fondo de colon punto y coma y cerca que corchete. Y eso sería cambiar el fondo color de este elemento a azul. La razón por la que te dan tantos aquí es eso, es necesario en este caso, porque el título es un identificador único. Pero lo que puede hacer es cosas de nidos. Así que esto está diciendo, OK, vaya a la izquierda. Eso es muy pequeño. Me disculpo por eso. Pero ir a la cosa con ID izquierda. Dentro de eso, buscar la cosa con ID dejó interior. Dentro de esa mirada, buscar la cosa con cabecera ID. Dentro de eso, buscar la cosa Título ID y cambiar el título de identificación. Así que esto es sólo una manera de las cosas que anidan. Algunas personas, como el nido, porque que hace que sea un poco más clara. Usted verá aquí también, ¿no aquí, no hay hash. Es sólo H1. Eso es porque se da el h1 nombre de una etiqueta genérica. Y hay algunas propiedades CSS asociado con cada h1. Así que si he encontrado otra h1 en esta página, También me gustaría ver que este estilo era aplicado a él también. Si quisiera aplicar un estilo a una clase, ¿cómo puedo hacer referencia a una clase o hablar de una clase en un archivo CSS? AUDIENCIA: Dot. JASON HIRSCHHORN: Es un punto. Así que vamos a volver a esta página anterior. Si lo hago picadillo ID. Eso está cambiando el estilo de la cosa con ID. O lo siento, si lo hago logo hash, que es la búsqueda de la cosa con el ID de logo y dándole un estilo CSS particular. Si hago algo. Superior, eso es la búsqueda de todo con la clase de la parte superior y cambiando sus estilos. Si yo simplemente H1, que encuentra cada h1 individuales y le da el que sea estilo que quiero darle. Si lo hago espacio h1 en cuando. Superior. Eso será ir a buscar todos los H1S y luego todos los que tienen la clase de la parte superior y entonces sólo cambiar los estilos de lo que yo quiera darle. Y de nuevo, podríamos haber escrito algo de esto por nuestra cuenta. Pero no habríamos llegado tan lejos. Mucho mejor, parece que ir realmente en un verdadero sitio en línea y ver cómo lo hacen y ven toda la cosas fantásticas que usted consigue hacer. Echemos un vistazo a uno más sitio web antes de seguir adelante. Y este es uno que probablemente familiarizarse con. Esto es CS50 Finanzas. Así que de nuevo, en realidad se puede entrar y observar el archivo CSS en su ordenador, porque usted ha descargado este Archivo CSS, si descargó el establece problema. Podemos ir a Herramientas y Herramientas de Desarrollo. Y vemos un diseño HTML mucho más simple. Tenemos la parte superior, media e inferior. Y de nuevo, algo que debería ser familiarizados, porque usted ha mirado a través del código de distribución para el grupo problema de esta semana. En la parte superior es, por el código, una sola imagen llamada. Y esa es la fuente de la imagen. Digamos que yo he terminado todo lo que Quería para Problemas de 7. Y está funcionando correctamente, pero Quiero cambiar cómo se ve. Y quiero cambiar el fondo de la parte superior de la página para, por ejemplo, azul. Si se tratara de mí, yo vengo en aquí y averiguar, OK lo Qué quiero cambiar. Vamos a ver, div top ID, que se ve como la parte superior de la página. Así que vamos a ir allí. Vamos a tratar de cambiar la color de fondo. Vamos a hacer Alice azul, porque Esa es una pregunta mejor. Y te darás cuenta de que - es probable que no lo veo. Pero hay una luz azul, junto con el logotipo de CS50. Vamos a cambiar su lugar de rojo. Y te darás cuenta ahora acabo de cambiar el color de fondo rojo. Así que ahora me gustaría ir a mi archivo CSS y # Tipo mejores paren rizados aquí. Usted puede ver el código de derecho aquí, corchete. Y entonces, yo añadiría fondo color, rojo. Y luego, no lo haría ser una llave. Así que así es como me gustaría explorar y experimentar con formato en el CS50 Sitio de Hacienda. Yo podría hacerlo aquí y prueba hacia fuera en mi navegador. Y luego, podría ir en mi código real y hacer los cambios que se en realidad ir a vivir y que las personas ver realmente, si iban a venir a mi sitio específico. Aceptar. Eso fue mucho. Me disculpo por pasar por tan rápidamente. ¿Alguien tiene alguna pregunta en absoluto acerca de HTML o CSS? AUDIENCIA: ¿Puede usted sólo tiene que ir sobre cómo vinculado lo que se convirtió Jason, otra vez? JASON HIRSCHHORN: ¿Qué Qué quiere decir vinculado? AUDIENCIA: Usted ya ha proporcionado un enlace a otra sitio web, utilizando el ancla. JASON HIRSCHHORN: Así que lo preguntas, sólo genéricamente, la forma de hacer un enlace? AUDIENCIA: Si. JASON HIRSCHHORN: OK. El código para hacer un enlace - AUDIENCIA: No, como en el código HTML. JASON HIRSCHHORN: Aquí abajo, quieres decir? Así que si quiero incluir un enlace en alguna parte, por ejemplo, este es el HTML en mi página aquí. Este es el código HTML. Tal vez sea abierta en un archivo, index.html. Voy pulg Vamos a tener este derecho de autor John Enlace de Harvard para algo. Así que vamos a editar todo esto como HTML. Todo lo que hacen es incluir la una, por lo que entre paréntesis un soporte de cerca el principio, y luego barra soporte un soporte cercano al final. Así que ahora he incluido una etiqueta de ancla. Y, de hecho, si hace clic fuera de esto, lo hará ahora formatearlo editar como HTML. Y decimos, queremos vincularlo. Le estaríamos el atributo href. Y decimos - Y ahora, cuando te das cuenta, los derechos de autor John Harvard es azul. Y cuando me desplazo sobre él, es ahora un enlace. Así que usted puede escribir ese código. Puede poner en casi cualquier cosa que quieres en una etiqueta de ancla y convertirlo en un enlace. AUDIENCIA: OK. Lo tengo. JASON HIRSCHHORN: Y si yo no quería es - por supuesto, a veces la gente tiende pensar estas cosas que acaba de ver azul y subrayado son genéricamente no de la manera más linda que hacer un enlace. Así que si yo vengo por aquí, se ve que, en algún lugar de un archivo CSS, hay escrito esto una y luego dos llaves. Así que vamos a decir que, para los enlaces, no lo hago quieren que se conviertan en azul, y no me quiere que el color de un enlace a ser este lindo magenta. Vamos a darle el color. Elijamos magenta. Ahora, todos los enlaces de mi página tienen convertido este bonito color magenta. Algunas personas no les gusta los colores en absoluto. Algunas personas no les gusta subrayados. Te dan a elegir. Con los enlaces, puede estilo cómo mirar una vez que los ha visitado. Como te darás cuenta de una gran cantidad de páginas, enlaces se vuelven púrpura en usted los visita. Usted puede cambiar ese color también. Sí. AUDIENCIA: Así que lo cambie para cada enlace. Pero si lo que quería hacer ese enlace sí, habría que acaba de hacer en el ID inferior o algo así? JASON HIRSCHHORN: Así que gran pregunta. Como habrá notado aquí, he cambiado algunos parte de la CSS que se aplica a los todo lo que es una A. Si quisiera hacer eso en la parte inferior, que iría a mi archivo CSS y probablemente hacer lo mismo que usted dijo, hachís espacio inferior a. Y eso me daría Como todo en la parte inferior. O podría, en su defecto, le dan un ID único y luego simplemente hacer enlace hash. Y eso me permitiría para cambiar esto. Sin embargo, justo repartir los ID de cualquier manera es generalmente una mala práctica, porque los debe ser único. Y cuanto más usted tiene esas, puede ser un poco confuso. Sí. AUDIENCIA: ¿Puede dar la misma ID para varios propietarios? JASON HIRSCHHORN: Técnicamente, sí. Nada va a detener, pero ¿No deberías debe darle una clase. OK, cualquier otra pregunta acerca de HTML o CSS? Aceptar. Pasemos a PHP. Oh, sí. AUDIENCIA: ¿Qué pasa con estos sitios web que significa que podemos editar ellos antes de que nos refrescamos. Pero una vez que nos refrescamos revierte atrás para el código HTML inicial? JASON HIRSCHHORN: Gran pregunta - así que cuando nos hemos cargado esta página web, es HTML. Y es JavaScript. Su PHP se ejecuta para darnos lo que sea tipo de sitio web que vemos. Y ha creado algo de HTML, algunos JavaScript, y un poco de CSS. Y que ahora es accesible por nuestro equipo. Y se guarda una copia de esos archivos localmente en nuestro ordenador, por el momento. Así que podemos editar la copia local. Pero, por supuesto, no estamos editando la copia del servidor. Y cuando nos refrescamos la página, tenemos otra copia del servidor. Y así vemos cosas como estaban. Si hemos sido capaces, a partir de aquí, para editar el sitio web oficial, tendríamos mucho de problemas. AUDIENCIA: Sí, por lo que podemos leer y escribir esa copia. JASON HIRSCHHORN: Así es. Nosotros sólo estamos haciendo cambios locales aquí, pero de nuevo, muy útil para explorar, muchas veces. Cuando estoy escribiendo mi proyecto final, para ejemplo, quiero ver cómo algunos sitio web hecho algo vistazo la forma en que lo hizo. Voy a entrar y utilizar este panel hacia abajo aquí, para ver lo que CSS que le dieron a o qué color que eligieron o cómo lo consiguió de manera que, cuando se cernía por algo, la lista se redujo de una manera agradable en cascada. Es una gran manera de inspeccionar lo otro sitios web hacen y toman prestado de ellos. Vamos a pasar a PHP. PHP significa, en un sentido recursivo, Procesador de Hipertexto PHP. Y PHP, lo que va a hacer es ejecutar en el servidor de códigos. Así que nunca vamos a ver el código PHP. Sin embargo, se juega muy bien con HTML y a menudo genera una gran cantidad de código HTML. Pero como usted estará familiarizado con el problema Set 7, el código PHP ejecutará, generar algo de HTML, y eso es lo el usuario va a terminar de ver. PHP es muy similar a C. Sin embargo, hay un par de diferencias, y esas diferencias son importantes tener en cuenta. Una diferencia es que las variables en PHP están más o menos escrito. ¿Alguien tiene un sentido de lo que eso significa? AUDIENCIA: No hay necesidad de echarlo a ti mismo. Al igual que no hay necesidad de escribir en el texto. JASON HIRSCHHORN: Yo no usaría la elenco palabra, pero eso sí, no hay necesidad de declarar un tipo para una variable específica. ¿Cómo qué lugar declaramos una variable? AUDIENCIA: Utilice un signo de dólar. JASON HIRSCHHORN: Utilice un signo de dólar. Así que $ x es una variable. $ 1 es una variable. $ String es una variable. Los variables $ x pudo ser un número entero. Entonces, podría ser una cadena. Entonces, podría ser un carácter. En realidad no importa. Además, lo bueno de PHP es, por ejemplo, $ x es la cadena de uno. Y $ y es el personaje uno. Usted puede agregar $ x y $ y, y va a le dará 2, lo que se espera. Así que hay operaciones en PHP. Debido a que está vagamente tecleó las variables, algunos la conversión implícita se hace para usted y algunas operaciones. Usted puede hacer las operaciones en las cosas de diferentes tipos. Mientras que antes, a menudo se tiene un error en C dicho, este no es el tipo que se supone que ir aquí. Sólo las cosas de este tipo pueden ir aquí. Usted no va a conseguir ese tipo de error, por lo general, en PHP. Así que esa es una gran diferencia - cómo hacer frente a las variables. La segunda gran diferencia es que Se interpreta el código PHP. Dónde está, se compila código C. ¿Qué significa eso? Bueno, para el código C ejecutó a través de un compilador. Usted genera un archivo binario. Y se ejecutó ese archivo binario. Usted cuidó de todos los errores antes de se generó el archivo binario. Por supuesto, podría haber habido segmentación faltas, al ejecutar el archivo binario. Pero no es como si usted se olvidó de incluir la definición de printf o que no ha utilizado una variable y sólo creado una variable derrochador. O no ha definido un prototipo de función. Todo lo que sucedió antes de compilar. Se le dio a todos los errores o malas cosas que pensaba que podría suceder. Y entonces, usted tenía su 0 y 1 archivo que se ejecutó. Código PHP no funciona así. Vas a escribir el código PHP. Entonces, vas a guardarlo, presumiblemente. Y por lo menos en P-Set 7, vas actualizar su navegador web, y vas a ver qué pasaba. Vas ver la salida de que el código PHP. También podría ver, en la parte superior de la página, un error. Porque tenías alguna error en el PHP. Usted todavía podría ver el resto de La página web está mirando bien. Pero una parte que está mal, y no hay un error en ese lugar. Y eso es porque la parte de su código PHP no funciona. De hecho, cuando se ejecuta, cuando se ir a algo así como by.php. Se va a ir a través de su PHP presentar línea por línea y ejecutarlo entonces y sólo entonces. No va a compilarlo por delante de tiempo o compilar una copia y luego dar que compilan copia a todo el mundo. Cada vez, se va a ir a través de línea por línea y ejecutarlo. Por lo que algunas líneas pueden trabajar y seria algo correcto. Y otras líneas podrían romperse y la salida de un error en lugar. Así que cuando la depuración de PHP, hemos dado que un par de cosas útiles para ayudarle a depurar, como la función de volcado. Pero, en general, van para ver estos errores. Y así es como vas a sabes que has hecho algo mal. Pero si sólo vas a ver el error una vez que realmente ejecuta el código. Otro aspecto importante de PHP y desarrollo web es la idea de conseguir frente al puesto. ¿Alguien puede explicar cuál es la diferencia entre GET y POST son? Nadie - Sí. AUDIENCIA: No uno de ellos permite al usuario ver los datos, y uno de ellos no? JASON HIRSCHHORN: Muy bien. Sí, tiene usted algo que añadir? AUDIENCIA: Me mensaje fina es una variable de super-global. JASON HIRSCHHORN: Entonces ambos variables que se dan a usted. Estos son sólo variables. Y tú sabes que son las variables, porque aquí me utilizar el signo de dólar. Estas son variables dadas a usted por PHP. Y cuando usted se mueve entre las páginas web, quieres ahorrar un poco de información. Es posible que desee ahorrar si el usuario ha iniciado la sesión Eso no consigue marcar en GET y POST. Eso se guardan en otra cosa, una variable diferente. ¿Alguien sabe qué variable que se salvó , o lo que la variable que utiliza en P-Set 7, para asegurarse de que el usuario está conectado? $ _SESSION, Eso es exactamente correcto, probablemente importante estar familiarizado con los nombres de estas cosas que utiliza con frecuencia. Así se utiliza la variable de sesión para guardar información de una página a otra. Eso es una variable super. Existe en todas las páginas, tal vez como un variable global, si usted quiere pensar al respecto de eso. Hay un par de otras variables que le permiten transferir información de página en página. En particular, las que nos centraremos en son el GET y las variables POST. En PHP se ven como $ _GET Y $ _POST. Y la diferencia, como se señaló Marcus a cabo, entre los dos de ellos es que, información en $ _GET es que aparece en la URL. Así que si miramos aquí, vemos un enlace de YouTube. Vemos este signo de interrogación. Vemos v = y algo más de valor. Volver a esta idea del valor de la clave par, la v es la clave. Y aquí es el valor. Así que si tuviéramos que ir a esta página o codificación en esta página, tendríamos una variable llamada $ _GET. Si fuéramos a $ _GET paréntesis abierto "v" corchete de cierre, muy similar a la matriz notación, esta es una matriz asociada porque no estamos usando índices. Fueron el uso de cadenas como claves. Pero la idea es similar. Si fuimos nosotros, sería obtener este valor. En esta página, nos gustaría poder utilizando este valor. Si realmente buscamos, vamos a ir a una página de YouTube. Lo que debemos ver el vídeo? Éste, son personas Hobbit fans? AUDIENCIA: Si. JASON HIRSCHHORN: Así que estoy copiando su URL compartir y pegarla en una nueva ventana. Y ahora, si usted mira para arriba aquí, te notar que, una vez más - Voy a copiar y pegar esto en gedit, para que podamos verlo más grande. Se dará cuenta de que tiene este signo de interrogación. El signo de interrogación designa que todo después de esto va a ser guardado en la variable get. A continuación, tiene la v, que es lo primero clave y este primer valor. Ampersand es especial. Ampersand está diciendo, bien, nos terminado el primer valor. Ahora estamos entrando a otro par de valores clave. Aquí, la clave se denomina función, y el valor es youtu.be. Así que si yo era una codificación de esta página y alguien fue a esta URL y tuve quizá watch.php. Y yo estaba codificar esta. Y yo podría utilizar la variable $ _GET. Y me gustaría tener una v, y Me gustaría tener una característica. Y si uso la tecla v, I sería obtener este valor. Y si lo hice $ _GET soporte "característica" corchete de cierre, me gustaría tener este valor. Una vez más, no lo hace necesariamente aplicará a - obviamente, las claves y valores de YouTube y obtener información no se aplica a nuestro conjunto de problemas 7. Pero hay ciertas cosas que nos pasar a través de GET en nuestro Boletín de problemas 7. Y, desde luego, cuando usted va a una página Web o son la codificación de su propia página, la $ _GET Será muy útil cuando su codificación. ¿Cuál es una razón para usar $ _GET entonces, si no ofrece la privacidad? Ves toda esta información que está siendo transferido. Todo se muestra al usuario. Pero lo que es una de las razones que usted puede ser desee guardar algo en $ _GET, como diferencia de $ _POST? ¿Por qué querría hacer eso? Está bien. Te he hecho en la prueba 1. ¿Cuál es el pro de $ _GET? ¿Qué es un profesional? Sí - AUDIENCIA: Es más fácil compartir información. JASON HIRSCHHORN: Creo que eso es genial. Es más fácil compartir información. Es más fácil de marcar. Puede marcar ahora, YouTube.com / watch? V = algo e ir para que de vídeo específico. Si YouTube siempre hizo las peticiones POST para diferentes páginas, cada URL de YouTube sería YouTube.com. No se podía marcar un solo vídeo. Porque si dices compartido ese enlace con otra persona, no lo hacen obtendrá automáticamente la variable de entrada. Ellos sólo van a obtener de este enlace, y la enlace es el mismo para todos. Así que esa es una profesional. Te permite marcar esta información o compartir esta información o que sea un poco más fácil de usar. Por supuesto, no hay privacidad, así que tenemos esta variable puesto. Y la información post no es que aparece en la URL. No es completamente privada. Pero es marginalmente más privado. Y para que veas este URL aquí abajo, cs50.net. Si está o no está conectado a la sitio web, que va a tener el mismo URL, cs50.net. Obviamente, algo es diferente, si que hayas iniciado sesión en el sitio web. Usted tiene, uno, probablemente introduzca su PIN. Y se ha confirmado que con el servidor. Y probablemente el ahorro alguna otra información. Pero la URL no cambia en absoluto. Y así, ese es el caso, cuando algo se envía por correo. La URL no cambia. Esta información no es la POST que aparece en la URL. Pero algún estado ha cambiado, y tal vez hay alguna información guardada en el Variables POST. Lo siento. antes de entrar en SQL, cualquier preguntas sobre PHP, en particular, preguntas sobre cosas que no salieron más de que has encontrado o cualquier sintaxis o preguntas lógicas sobre PHP? Aceptar. El texto final que será interactuar con esta semana es la Structured Query Language, SQL, pronunciado secuela menudo. Que le permite interactuar con el base de datos de una manera formalizada. Y juega muy bien con PHP. Como se verá en problemas n 7, tenemos Le ha dado una función llamada de consulta. Y se necesita una cadena SQL y ejecuta la consulta en la base de datos. En el pasado, usted no estaba dada esta función. Tienes que usar las funciones de PHP para hacer la consulta en la base de datos y verificación de los errores y luego obtener los resultados. Y en realidad, no es tan difícil, porque, de nuevo, juega muy bien con PHP. Y PHP te da un montón de funciones para interactuar con una base de datos de SQL. Muy a menudo, los dos éstas van de la mano. Por supuesto, usted podría interactuar con la base de datos de SQL con cualquier número de otros idiomas. Pero PHP es un gran día para elegir. Una base de datos - vamos a repasar esto rápidamente, porque esta es una palabra de moda que vamos a empezar a utilizar a menudo - es una colección de tablas. Así que podemos pensar en él como un archivo de Excel. Un archivo de Excel tiene varias pestañas en la parte inferior de la pantalla. Cada pestaña ahora llamaré una mesa, donde una tabla es una colección de filas. Y lo que es una fila? Bueno, una fila es la misma cosa en el archivo de Excel. Que acaba de ciertos valores para cada campo o cada columna dada dada. Es como una entrada en la tabla. Es un estudiante, que tiene un ID, una específica ID y un nombre y una específica casa específica. Así que una base de datos es una colección de mesas. Y los propios cuadros son un número de filas o registros. También hay, en cada uno mesa, ciertos campos. Y que especifica lo que cada disco es va a tener, a veces se llaman campos columnas, pero en general denominados campos. En este muy simple mesa, tengo tres campos, un campo de ID, un nombre de usuario campo, y un campo de hash. Y tengo tres filas. Ahora mismo, están vacíos. Ellos probablemente no estarían vacíos si se trataba de mi base de datos real. Así que si usted ha usado Excel, idea similar a lo que haces en Excel, sin embargo, Obviamente, ahora que vamos a ser capaces de hacer las cosas mucho más potentes en la información que se almacena en nuestra base de datos. Que vas a crear tú mismo una base de datos de problemas 7. Pero que va a crear múltiples tablas dentro de la base de datos. Usted va a crear una base de datos o una tabla para los usuarios. Estarás también a crear una mesa para Probablemente las transacciones de acciones, para mantener un seguimiento de ellos, porque es necesario para implementar una función de historial. Tanto las tablas tendrán diferentes campos. Por ejemplo, en un campo de usuario, Probablemente quieren que su nombre de usuario y una ID y un hash de la contraseña. En la tabla de Acciones que realiza un seguimiento de la historia o la tabla Historial, Probablemente no es necesario el nombre de usuario y el hash y el ID. Es probable que sólo necesita uno de los valores que son únicos, para asociar con un usuario determinado. Pero entonces, desea almacenar otro cosas como, ¿qué hora se hizo la transacción. ¿Qué valores se compra o se vende? ¿Cuántas acciones de la acción fue comprado o vendido? ¿Cuál fue el precio al que el acciones se compra o se vende? Así que de nuevo, vas a estar interactuando con bases de datos que está en va a tener varias tablas. Cada tabla va a tener su propio conjunto de campos. Sin embargo, es probable que haya un parecido campo en cada mesa, que las relaciona entre sí. Por lo general, este es un campo de ID. Porque si cada usuario tiene un identificador único y asociar ese identificador con cada transacción que hace que el usuario o toda la historia de ese usuario. Y tienes ID del usuario. Usted puede obtener información de cualquiera de las tablas. Usted puede obtener su nombre de usuario, y que pueden obtener la totalidad de sus transacciones. ¿Una pregunta sobre bases de datos, o preguntas específicas? En realidad, vamos a sostener eso. Estaremos allí en dos lados. Así que hay cuatro operaciones en bases de datos que va a utilizar en Boletín de problemas 7 y probablemente nunca se utiliza. Lo primero que quiero hacer es insertar un nuevo registro en una tabla o una nueva fila en una tabla. Esta es la función genérica, la forma genérica, de esa consulta SQL. Inserción en la tabla, lo que sea columnas que desea insertar y, a continuación los valores que usted va a querer poner en esas columnas o campos. Si tiene varias tablas de una base de datos o varias bases de datos, También puede ser que necesite para especificar la base de datos y la tabla que desea para poner las cosas en. Pero muy simple, si desea insertar en algo, usted dice, aquí están los campos que quiero insertar en. Y aquí están los valores. En algunos cuadros, también, y este usuario de tabla es un buen ejemplo. Probablemente en la tabla del usuario y probablemente en la mesa de su usuario en P-Set 7, no es sólo un valor de nombre de usuario. No es sólo un valor en efectivo, o en el campo, en lugar. También hay un campo de ID. Yo no voy a insertar ese campo ID. Eso va a ser dado a automáticamente mí, cuando un Se inserta el nuevo registro. Así que hay un poco de campo que puede configurar para que sea automática. Tal vez usted quiere dar a cada usuario 10.000 dólares de dinero en efectivo del palo. Así que no necesito para insertar una serie de dinero aquí. Todo lo que necesito para insertar es el nombre de usuario. Y entonces, el campo efectivo será ya se encuentra completa, y el campo ID se ser pre-poblado. Así que muchas veces, no estamos insertando algo dentro de todos los campos, porque los demás campos son pre-pobladas. Porque esa es la forma en que configurar esa mesa. La segunda cosa que usted va a querer hacer es eliminar un registro. Eliminación de algo es muy simple. Usted da la tabla en la que desea eliminar algo de. Y dices, OK, quiero borrar la registro que tiene un nombre de usuario de Milo. O quiero borrar todos los registros que tener un nombre de usuario de Milo o que eran una transacción de ID de usuario número 2. Cualquier pregunta sobre estos dos tipos de consultas? AUDIENCIA: [inaudible]. JASON HIRSCHHORN: Si. Así que voy a usar fila y registro de manera intercambiable y algunos con la columna y el campo. Pero una fila es un registro. Una columna es un campo, pasando copia de esta tabla. Aceptar. Lo siguiente que usted está probablemente vamos a hacer es conseguir un poco de información de la tabla. Esa es una consulta de selección. Y de nuevo, ¿qué mesa estoy seleccionando de? Y lo que la columna es lo que quiero para seleccionar o qué valor es lo que quiero para seleccionar y desde qué fila? Así que el Select es un poco específica. Digo, está bien, yo quiero esta tabla. Y luego quiero que el nombre de usuario de columna y Quiero que desde la primera fila con ID 2. Esa es una manera de hacer un Select. O lo que puedo decir, me dan cada nombre de usuario único. O lo que puedo decir, me da toda una fila de esta tabla, donde el nombre de usuario es 1. Así que hay un par de maneras diferentes a hacer consultas de selección, en función de cómo toda la información que desee, Siempre se puede simplemente seleccionar todo de esa tabla específica y luego bucle a través de él, escogiendo las cosas que quiere. Pero hay que tener en cuenta, si usted está seleccionando un montón de cosas a partir de una tabla y tener una muy gran mesa, que se llevará a algún tiempo, así que es mejor sólo para seleccionar cosas que usted va para terminar con. También, con Seleccionar y con todos estos otros comandos SQL, así, estoy que le da la versión básica. Pero digo, estoy seleccionando usuarios y quiero imprimirlos en orden alfabético, Yo podría seleccionar todos los usuarios y luego ordenar alfabéticamente en mi código. ¿O hay una manera de escribir la selecta consulta, que selecciona las cosas en un moda alfabético, con sede fuera de un columna específica, ya sea ascendente o descendente. Así que tenga en cuenta que, mucho de lo que querer hacer, probablemente se puede hacer en la consulta a través de un adicional atribuir. Así que buscar estas consultas en línea o las otras cosas que puedes hacer con ellos consultas para ampliarlos. Finalmente, la última cosa que quieres hacer No es insertar algo o eliminar algo, sino más bien actualizar algo. Y eso se hace con la actualización consulta, y otra vez, lo que la tabla. Y lo que el cambio es lo que quiero hacer? Y a los que hacer fila o registro Quiero hacer ese cambio? Cualquier pregunta sobre SQL? Aceptar. Así que tenemos unos 15 minutos. Y esta es la última diapositiva que tengo. Y es de esperar, esta última diapositiva es una buena segue en el problema fijado, porque la comprensión de dónde queremos insertar registros, borrarlos, seleccione , y actualizarlos nos ayudarán entender la lógica y el flujo más grande del Boletín de problemas 7. Así que sé todas las respuestas a estas preguntas. No voy a decirte todas las respuestas. Pero si a alguien más le gustaría presentar una pregunta al grupo o un responder a una de estas preguntas, podemos usar eso como un punto para saltar hablar sobre el conjunto de problemas. O si alguien tiene un más genérico pregunta fuera del set problema, siente libre de hacer eso también. Y podemos empezar por ahí. Tenga en cuenta que estar en silencio perjudica a todos. Sí. AUDIENCIA: Así es la única manera de pasar las variables hacia y desde diferentes páginas web páginas, o el más conveniente manera, utilizando POST o GET? JASON HIRSCHHORN: Así que sí, que es el la forma más conveniente decir - cuando alguien rellena un formulario - obtener información sobre otra web página, usando GET o POST. Debido a la estructura que estamos utilizando en este conjunto de problemas, te darás cuenta que, muchas veces, hacer otra página. O nos rendimos otro archivo, no necesariamente otra página. Así que pasamos en una variable. Y entonces, se hace una Página HTML, usando el información de esa variable. Eso no es técnicamente pasando información entre diferentes páginas web. Eso está pasando información entre los diferentes archivos. Por esto se puede utilizar cualquier variable para hacer eso. Pero sí, si queríamos pasar información de una página en particular a otra página, GET y POST haría ser la manera de hacer eso. ¿Alguna otra pregunta sobre ajusta el problema? Aceptar. Repasemos, entonces, una específica parte del problema establecido. Usted va a necesitar, en un punto, mostrar la cartera de alguien en la pantalla. ¿Qué quiero decir cuando digo cartera, en el contexto de este problema establecido? AUDIENCIA: Es como los stocks que se tener cómo, muchas acciones que posean, el precio y la cantidad de el dinero que les queda. JASON HIRSCHHORN: Eso suena muy bien. Así que quiero mostrar todas las acciones de su propiedad para cada acción de la compañía acciones y probablemente lo mucho que eso es vale la pena, y luego una variable independiente, la cantidad de dinero que poseen. Así que digo que quiero describir eso. Vamos a empezar hablando de lo que pude voy a hacer eso, ¿qué tablas estoy va a tener que tener que ser capaz de hacer eso. Sí - AUDIENCIA: los usuarios también, y entonces, supongo usted puede hacer una tabla llamada Acciones o algo por el estilo, que sería la cantidad que han adquirido. JASON HIRSCHHORN: OK. Así que voy a necesitar una tabla llamada Los usuarios, que realiza un seguimiento de la nombre de usuario, es de suponer, probablemente, alguna identificación, Probablemente la contraseña de un individuo. ¿Qué es algo más que usted Acabas de decir que está asociada? Alguien además de Michael, lo que es algo más que está asociada con cada usuario, única para ellos? AUDIENCIA: ID. JASON HIRSCHHORN: ID - lo que es una cosa que estamos probablemente va a querer mostrar en esta página? AUDIENCIA: Su nombre. JASON HIRSCHHORN: Su nombre - lo que es otra cosa relacionada con este conjunto determinado problema? AUDIENCIA: ¿Cuál stocks de su propiedad - JASON HIRSCHHORN: No van a ser mucho más de lo que las reservas que poseen. ¿Qué es un valor específico, sin embargo, que van a tener asociados con ellos? ¿Cómo van a comprar y vender sus acciones? AUDIENCIA: Cash. JASON HIRSCHHORN: Son va a tener dinero en efectivo. Así que cada usuario va a tener un valor por dinero en efectivo. Y eso va a ser único para cada usuario. Así que en la mesa del usuario, hace sentido de poner en efectivo. Se podría, por supuesto, crear otro tabla que tiene ID de usuario y su valor del dinero en efectivo. Pero eso no tiene sentido. Tiene sentido sólo hay que poner todo eso en una sola tabla. Así que vamos a tener una mesa con esa información. Y entonces, ¿qué hay de la otra tabla vamos a tener? Usted ha dicho, una mesa de Stocks. Lo que estamos poniendo en la tabla de acciones? Cualquier persona, las ideas - AUDIENCIA: La empresa. JASON HIRSCHHORN: Vamos poner en el nombre de la empresa, por lo AAPL para Apple. Sí. AUDIENCIA: ¿Cuántas acciones y lo mucho que valen. JASON HIRSCHHORN: ¿Cuántas acciones, lo mucho que vale la pena - lo que es algo más que necesitar en esa mesa? AUDIENCIA: Un ID de usuario para indexarlo. JASON HIRSCHHORN: Un ID de usuario. Así que en esa mesa, vamos a probablemente - digamos, si se trata de alguien que es dueño de tres acciones, tres filas, cada una con ese ID de usuario o el usuario de ese individuo ID, pero otro nombre de empresa, un diferente número de acciones presumiblemente, y un valor de precio diferente para cada de esas poblaciones. Una vez más, lo que estoy diciendo ahora no es necesariamente la aplicación, porque te das cuenta de que hay algo más formas eficientes para ponerla en práctica. Pero este es un buen lugar para empezar. Aceptar. Así que esas son las dos tablas que tenemos. Ahora queremos mostrar esta página. ¿Cuál es el primer tipo de consulta tendríamos que hacer. En cada página, supone que es un usuario es conectado, tenemos su ID de usuario. Entonces, ¿cuál es el primer tipo de consulta tenemos que hacer? Sí. AUDIENCIA: Su ID de usuario. JASON HIRSCHHORN: Tenemos su ID de usuario, cuando estamos empezando a código en la a partir de nuestra página. Así que ¿cuál es el primer tipo de consulta que que tenga que hacer, teniendo en cuenta ID de un usuario? Fuimos más de los cuatro tipos. Hay solamente cuatro respuestas posibles. AUDIENCIA: Es seleccione un registro. JASON HIRSCHHORN: A Seleccione - queremos seleccionar desde el usuario de mesa para conseguir, digamos, su cantidad de dinero en efectivo. Y podemos imprimir la cantidad de dinero en efectivo en la parte superior de la pantalla. Aceptar. ¿Cuál es el siguiente tipo de consulta que queremos hacer? Tenemos algunas otras cosas tenemos que mostrar. Estos se guardan en otra mesa. Entonces, ¿cómo vamos a conseguir eso? AUDIENCIA: Usted selecciona para ellos. JASON HIRSCHHORN: A Select - una vez más, sólo hay cuatro opciones. Seleccione probablemente sonidos como la correcta. Así que tenemos que hacer otra consulta de selección, de nuevo utilizando el ID de usuario. Y ahora, queremos volver no sólo uno fila, bu todas las filas que coinciden con nuestra criterios, en los que el ID de usuario es igual a 1. Y luego podemos ir y dejar que un bucle de sólo imprimir todos aquellos a cabo en la pantalla, tal vez imprimir la empresa de cada uno de los de la pantalla. Genial, eso suena como que es mostrando una cartera, no mucho más complicado que eso. Aceptar, el usuario decide entonces que tienen un montón de dinero de sobra. Y quieren comprar algo de más acciones de una acción. Digamos, que ya poseen Las acciones de esta empresa también. Así que van a la página de compra. Ellos de entrada del nombre de la compañía. ¿Qué es la consulta, después de la entrada de la El nombre de la empresa, que es necesario ejecutar el siguiente? Sí. AUDIENCIA: Actualizar. JASON HIRSCHHORN: Actualización - y lo que mesa quieres actualizar? AUDIENCIA: Su tabla, basada en su número de identificación? JASON HIRSCHHORN: Así actualizar No Mesa del usuario - por lo que actualizar la tabla de acciones, donde el ID de usuario no sólo coincide, pero la nombre de valores también coincide. Usted obtendrá algún valor. Y entonces, usted querrá tomar ese valor y añade, sin embargo muchas de las poblaciones que quiere comprar de la misma. Así que usted no quiere a ciegas sobrescribir este valor. Pero se puede, de hecho, dar ese primer valorar y simplemente actualizarlo. Usted puede hacer como un punto a favor es igual, y no sólo un signo de igual. ¿Qué es algo, aunque - si estamos pensando en esto y queremos ser lo más sólidos posibles - que debemos hacer antes de correr que consulta de actualización? Ellos quieren comprar cinco años de Apple. Cada acción de Apple es de $ 200. AUDIENCIA: Hay que comprobar el dinero primero. JASON HIRSCHHORN: Deberíamos comprobar el dinero primero. Debemos asegurarnos de que tener suficiente dinero. ¿Qué tipo de consulta podemos ejecutar para asegúrese de que tiene suficiente dinero? AUDIENCIA: Otro Select. JASON HIRSCHHORN: A Seleccione - seleccionamos en función de su ID de usuario, para obtener su valor de dinero en efectivo. Haga un cálculo rápido. Y si eso fuera aprobado, que tienen suficiente dinero en efectivo. Después podemos ejecutar nuestra actualización. O tal vez, si no, se pasa a continuación. Les damos una advertencia. Aceptar. Decir que no tienen una empresa. Están comprando una nueva empresa. Están comprando Microsoft. ¿Qué tipo de consultas es lo que queremos hacer, si quieren comprar Microsoft? Y ellos no son dueños de cualquier Microsoft. No Manu, nadie, nadie además de Marcus? Carlos - AUDIENCIA: A Select, para asegurarse que tienen suficiente dinero. JASON HIRSCHHORN: Suena bien. AUDIENCIA: Y después de insertar en la [inaudible]. JASON HIRSCHHORN: Exactamente, somos va a querer insertar en la tabla de Stocks. Y vamos a querer insertar. Podemos insertar su ID de usuario, el nombre de la empresa, y el número de acciones que quieren comprar. ¿Cuáles son algunas otras operaciones que son páginas o funcionalidad que usted está va a tener que poner en práctica en el P-Set 7, para que nosotros fuésemos de nuevo? AUDIENCIA: En realidad, como que me tengo Realizar una consulta sobre este. Antes de mostrar la cartera, en caso de que cheques la página web de Yahoo para asegurarse de que los precios de las acciones no han cambiado? JASON HIRSCHHORN: Eso es sonidos como una buena idea. Así que lo que está diciendo es Marcus, OK, las acciones de los precios están cambiando constantemente. En las poblaciones de las que sean titulares de mesa, nuestra tabla llamada Stocks, podríamos salvar la precio de las acciones que compró en. Pero eso no parece que robusta, debido a que el precio de la acción es constantemente va a cambiar. Así que de hecho, es probable que no necesita para guardar el precio de la acción. Pero cada vez que muestre su cartera, actualizar o actualizar la precio de la acción. Y si usted tiene - y que ya tiene. Sé que todo ha mirado en el problema retrasa ya. Se han dado cuenta de que hemos escrito algo de código para usted que le permitirá para obtener el precio de una acción, dado el nombre de una empresa. Así que sí, que probablemente suena un poco más robusto. Pero esa mesa no necesariamente tiene para guardar el precio de la acción. Aceptar. ¿Qué otras funcionalidades le que poner en práctica esta semana que podemos hablar? Quiero hablar acerca de ellos. ¿Qué es lo que quieres hablar? Es probablemente en este spec. Me gustaría simplemente desplácese hacia abajo hasta la parte inferior de la especificación y me preguntan la primera palabra se ve que no tiene sentido. Otra funcionalidad - vamos a hablar de uno. Vamos a empezar por ahí. AUDIENCIA: Grabación de las historias. JASON HIRSCHHORN: Grabación la historia, la gran uno. Así que vas a tener que seguir la pista de una historia de las transacciones. ¿Así que quieres hacer un seguimiento de todos los vez que compran o venden una acción. Compré mi acción. Acabamos de decir, probablemente tenga sentido para incluir a Seleccione, para conseguir su cantidad de dinero en efectivo y comprobar de nuevo. Probablemente es inteligente, entonces para incluir una inserción o una actualización, dependiendo de sean o no propietarios de esas acciones. Si también queremos hacer un seguimiento de una historia, ¿cómo podemos hacer eso? ¿Eso van en la tabla acciones? AUDIENCIA: No. JASON HIRSCHHORN: No es probable va en una mesa diferente. Porque dice usted compra 10 las acciones de Apple. Luego de comprar otras 10 acciones. Usted quiere remolcar registros separados. Esos son dos operaciones separadas. Así que tenemos otra tabla, una mesa de la Historia. Así que de nuevo, que compramos. Ejecutamos un Select, a continuación, una inserción o una actualización. ¿Qué hacemos ahora? ¿Cuál es la próxima consulta ejecutamos cuando nos vamos a comprar algo? Queremos hacer un seguimiento de la historia. Sí. AUDIENCIA: Usted desea realizar un seguimiento de transacciones fallado también. JASON HIRSCHHORN: Bueno, antes de decir qué tipo de transacción, ¿qué es lo que queremos - ¿Qué tipo de consulta, Carlos, sería nos permite hacer un seguimiento de las cosas en general? Tienes cuatro conjeturas. ¿Cuál te parece? AUDIENCIA: Actualizado. JASON HIRSCHHORN: No actualizar. ¿Cuál es tu segunda suposición? AUDIENCIA: Selección. JASON HIRSCHHORN: Si desea conservar pista de algo, es probable que desee anotarlo en algún lugar o guardarlo para más tarde. Así que si no actualiza, entonces - AUDIENCIA: Inserte ella. JASON HIRSCHHORN: Insertar, allí vamos. Sí, por lo que seleccionar la cantidad de dinero que tienen, suena muy bien. Ellos no tienen suficiente dinero en efectivo. Esa transacción no va a funcionar. No, no es necesario hacer un seguimiento de una transacción si no funciona. O puede, si quiere darles un mal rato. Pero usted no tiene que hacerlo. A continuación, se inserta o actualización en su mesa de Stocks. Y ahora, usted tiene su otra tabla. Usted tiene su tabla de historial o lo que sea que quieras llamarlo. Y en esa mesa, vas para insertar una nueva fila. Eso probablemente va a tener el ID del usuario. Probablemente va a tener el nombre de la acción. Probablemente va a tener una vez que lo hicieron. Y en este caso, usted ll probablemente desee insertar el precio. Porque para una historia, no lo sabes importa lo que el precio actual es. A usted le importa lo que el precio es cuando que compran o venden algo. Así como suena, para poner en práctica la compra la plena participación de un número de diferentes Consultas SQL, pero, sinceramente, no que gran parte general de código. Aceptar. Y que se ocupa de la historia. Digamos que queremos mostrar nuestra historia. Hablamos acerca de la visualización nuestra cartera. ¿Cómo podemos mostrar nuestra historia? AUDIENCIA: Presumiblemente cronológicamente. JASON HIRSCHHORN: Presumiblemente cronológicamente - lo consulta qué crees que usaríamos? AUDIENCIA: Una selecta. JASON HIRSCHHORN: Una selecta - seleccionar tal vez todas las filas de esa tabla que coincide con el ID de usuario y luego mostrarlas cronológicamente, suena bien. ¿Tenemos que escribir el código para ordenar a través de esa lista? AUDIENCIA: No, porque usted le dijo nosotros hay una ascendente y descendiendo cosa. JASON HIRSCHHORN: Cosa? AUDIENCIA: Si. JASON HIRSCHHORN: Si. Aceptar, no encienda en el código para mí, para que ordena manualmente a través de las consultas, para ordenarlos. Ya está, ya que el código. Usted puede escribir una consulta de selección que ordena las cosas. Puede ordenar los anuncios de antemano y luego imprimirlos. Tiene mucho más sentido hacerlo de esa manera, que a la inversa. Sí. AUDIENCIA: ¿Necesitamos ordenar de antemano? ¿Eso quiere decir ordenar en la base de datos? JASON HIRSCHHORN: La consulta de selección los devuelve a usted ordenado. Así que hacer eso, y no sólo los tienen volveré a ustedes en un orden aleatorio y luego ordenar a ti mismo. Sí. AUDIENCIA: ¿Hay una manera de mantenerlo ordenados en la propia base de datos, de modo que usted no tiene que clasificar cada vez que - AUDIENCIA: ¿Puede insertarlo ordenada? JASON HIRSCHHORN: Pregunta - Qué importa que las cosas son ordenados en la base de datos? AUDIENCIA: No. JASON HIRSCHHORN: Bueno, se ordenan. Están ordenados cronológicamente. Pero vamos a suponer que las cosas se ordenan cronológicamente, de arriba a abajo. Tenemos una forma de Google. Cada vez que alguien responde a nuestro Google forma, sólo se puso en el parte inferior de la tabla. ¿Es importante que las cosas son Sin ordenar cronológicamente? AUDIENCIA: Si no es cronológico, no hay que ordenar cada vez usted toma info cabo. Pero si ya está ordenada, no puede usted no tiene que hacer eso adicional llamada a la función? JASON HIRSCHHORN: Así que eso es realmente un buen punto. Para nosotros como programadores, que podría ser importante. Y lo que se quiere encontrar una base de datos eso no quiere arreglar las cosas cronológicamente. O la creación de nuestra base de datos, por lo que mantiene cosas ordenados por ID de usuario. Así que de esa manera, por ejemplo, tenemos 1000 ID de usuario. O Facebook, tenemos millones ID de usuario. No queremos que nuestra mesa para ser sólo azar o la base de datos a ser al azar. Estaría bien si todo el ID de usuario se clasificaron. Entonces podríamos realizar búsquedas binarias en nuestra mesa y luego encontremos trozo específico. Así que sí, en función de - si aumentamos, lo que se quiere encontrar una base de datos que las cosas seguían ordenados de una manera diferente manera, de modo que estas consultas tomaría menos tiempo. Y nosotros no tenemos que ir a través de nuestro toda la base de datos en cada fila individual en una tabla dada. Pero el nivel que estamos trabajando en el, podemos no tienen que preocuparse de mantener cosas ordenadas. Podemos suponer que el tiempo que tarda esa consulta a correr va a ser insignificante, teniendo en cuenta lo que estamos tratando. Pero sí, gran idea - como podemos aumentar la escala, podría tener sentido para diseñar nuestra base de datos en un poco de una manera diferente. Una base de datos de diseño de última cosa que quiero mencionar también, porque se quiere se calificará o anotado más bien, en el diseño de su base de datos. Ya hablamos de esto. El efectivo es único para cada usuario. Así que tienes una tabla llamada en efectivo que tiene su ID de usuario y su cantidad de dinero en efectivo y luego una tabla llamada usuarios que tiene su usuario ID y su nombre de usuario. Esas tablas de mapa en cada otro uno-a-uno. Probablemente tiene sentido para que sean una sola tabla. Así que vamos a asumir que usted tiene un usuario tabla que sigue la pista de nombres de usuario y dinero en efectivo. Ahora tiene una tabla que tiene el poblaciones de un individuo posee. Y una persona puede poseer más de una población. Así que estos no se asignan a cada otro uno-a-. No tiene sentido tener un gigante tabla que tiene 30 registros que todo repetir un nombre de usuario, para que todos repetir una contraseña, que todos repetir un número de dinero en efectivo. Pero cada uno tiene tal vez una acción diferente nombre o precio de una acción diferente. No tiene sentido tener que muchos discos grandes. Sea inteligente al crear estos bases de datos, de modo que usted no está haciendo algo tonto como eso, repitiendo una gran cantidad de información innecesaria. Aceptar. Tenemos dos minutos para el final. La gente fuera muy contentos de unirse a nosotros o probablemente, es de suponer, crear su propia clase. ¿Alguien tiene alguna pregunta antes de terminar para arriba? OK, esto era de hecho un torbellino través de todo. Pido disculpas de que tenía que ser tan rápido y que no podíamos ser tan práctico esta semana, ya lo habría hecho gustado ser. Pero si usted tiene alguna pregunta acerca de todo lo que fuimos o nada en este problema set - presumiendo que usted lo ha leído y poner en un esfuerzo de buena fe - no dude en enviarme un correo electrónico o póngase en contacto conmigo. Estoy más que feliz de trabajar a través de su código con usted o responder a cualquier preguntas que usted tenga. Tenga en cuenta que, esta semana, una gran cantidad de su tiempo se gastará el aprendizaje de la nueva sintaxis y tratando de entender cómo escribir consultas SQL o PHP funciones o trato con un framework MVC. Una gran cantidad de su tiempo esta semana, probablemente no se trata de averiguar la lógica loca que estamos pidiendo que hagas. Mucho de esto nos fuimos otra vez es relativamente sencillo. Así que eso no significa que espere hasta el último minuto. Pero sí significa ajustar la forma de hacer su trabajar en consecuencia, para asegurarse usted está entendiendo y el aprendizaje de la sintaxis. Así que no eres, de repente, a sabiendas exactamente lo que quieres hacer, pero sin tener ni idea de cómo exactamente escribirlo. Bien, nos vemos la próxima semana.