JASON Hirschhorn: Benvingut tots a la setmana vuit. Tenim una setmana emocionant per davant de nosaltres. Vostès han fet immersió en aquest últim parell de conferències a PHP, SQL, HTML, CSS, per la qual cosa quatre idiomes flamants que es per ocupar la resta d'aquest curs. També aprendrem un parell d'altres idiomes abans de final de curs. Però de totes maneres, no cal dir que això és un moment molt emocionant en CS50, ara vostè han dominat C, ostensiblement, i són de passar a la programació de llocs web. Així que aquesta setmana, seguirem un viatge llampec a través dels quatre llengües que acabo d'esmentar, HTML, CSS, PHP i SQL. I és d'esperar, deixarem un munt de temps al final de la secció per parlar sobre conjunt P d'aquesta setmana i resposta qualsevol pregunta que tots tenim. Cada setmana, la mateixa llista de recursos per a tu, per ajudar-te amb la setmana conjunt de problemes i anar sobre el material - però aquesta setmana en particular, per a aquests conjunts de problemes basats en la web, hi ha un gran quantitat d'altres recursos fora allà que és probable que trobar molt atent. Els tinc aquí. Et Envia-ho després de la secció, i això també estar online. Però en particular, hi ha un munt de grans recursos fora d'allà. També hi ha alguns no tan gran estimats, així que vés amb compte amb això. Però en aquesta diapositiva, tinc quatre bons recursos, un per a cada un dels idiomes que va a treballar amb aquesta setmana - un full de referència per a HTML, un full de referència per al CSS. Aquest dret aquí és el manual de PHP. Així que en lloc d'home escrivint i després un PHP comandament, aquí és on ho faria anar a buscar el prototip de la funció i exemples i també alguns consells i trucs per utilitzar les funcions de PHP. Que utilitzarà aquest lloc sovint, així que animo a que et converteixis familiaritzat amb ell. Pot ser una mica tècnic, però és També ofereix un munt de recursos i exemples per a totes les funcions i fins i tot altres, com la forma d'utilitzar matrius o diferents tipus de variables. Aquest lloc és molt útil per a PHP. I després, per SQL, si es va capbussar en aquesta conjunt de problemes de la setmana, vostè sabrà que estem utilitzant una base de dades. I accedim a aquesta base de dades a través d' una interfície d'usuari relativament agradable. O que és una forma d'accés aquesta base de dades. La interfície d'usuari és anomenada phpMyAdmin. Hi ha una fitxa SQL, que anem a mira més endavant avui. I vostè pot escriure en el seu SQL mostra consultes, de fer les coses a la base de dades i després executar aquestes consultes. I si són correctes, que va a dir, correcte d'aquest. Si són correctes, que va a per exemple, és incorrecta. Això és un gran lloc per practicar el seu Consultes SQL abans d'escriure el seu codi, per assegurar-se que tenen el format correcte. Finalment, una altra pàgina web aquí. Aquest és el lloc web on es pot anar i comprovar per assegurar-se que el seu Codi HTML és vàlid. Així que abans de donar volta als seus problemes d'establir aquesta setmana, assegureu-vos que tots els l'HTML és vàlid. La setmana passada, s'havia corregut valgrind, a assegureu-vos que vostè no tenia pèrdues de memòria. Aquesta setmana, vostè necessita per assegurar-se que tots els del seu codi és vàlid HTML5. Si no és vàlid HTML5, ets aconseguirà punts fora. Així que assegureu-vos - simplement perquè funciona no significa que és completament vàlid. Executeu el codi a través d'aquest lloc web abans de donar volta polz Un cop més, aquí hi ha la pàgina web. Si vostè té alguna reacció per a mi, tenim un parell de més seccions a l'esquerra, i jo sempre vull fer el que pugui per tots vostès oferir-li la millor secció experiència possible. Així que vull saber si hi ha alguna cosa que podem fer per millorar o si hi ha coses que veus que jo podria fer-ho millor. Gràcies, Avi. Posa-ho en el lloc web. Aquesta va ser la moto que vaig tenir quan va ser, diguem, quatre a casa. És un Teenage Mutant Ninja Turtle caminar amb bicicleta, en cas que no es pot dir, perquè és una mica borrosa. Es pot aconseguir ara en ToysRUs per, crec, al voltant de $ 100. Però la característica d'aquesta moto que vull a prestar atenció a són aquests aquí mateix. Aquestes són les rodes d'entrenament. Fins ara, vostè ha estat de mà a la C. I hem pres un llarg temps, dos mesos més, per anar a la C. Per a aquests propers dos llengües, no anem a passar tant de temps. Les rodes d'entrenament estan sortint. I anem a submergir-se en aquests idiomes ràpidament i moure a través de forma ràpida, cosa que no vol dir que només deixarem la natació per aquí i no hi ha manera de donar suport si mateix o esbrinar com aquests idiomes de treball. M'acabo de mostrar una llista de recursos per ajudar-lo. Però cal tenir en compte que PHP és increïblement similar a C. Anem a repassar avui en dia i algunes de les diferències. Però en la seva major part, hi ha per als bucles. Hi si les condicions. Quan es vol resoldre un problema, vostè va a utilitzar un combinació d'aquests. És molt similar. La lògica ha de ser molt similar a el que has fet en el passat. El que és realment nou aquesta setmana és el sintaxi i la manera com t'expresses. I voleu escriure un bucle, però pot tenir un aspecte una mica diferent. O vols crear una matriu, però pot tenir un aspecte una mica diferent. Així que tingui en compte que, de seguir endavant, la lògica és molt similar al que has fet en el passat. Però vostè està ara va a trobar-se amb una gran quantitat de nova sintaxi. I no anem a caminar a través tots els elements de la sintaxi. Així que és realment depèn de vostè per esbrinar, en línia o contactant amb el Discuteixi o enviant un correu electrònic a mi oa parlar amb entre ells, la forma d'escriure les coses en PHP i com escriure consultes SQL i com utilitzar HTML i CSS. Però perquè ho sàpigues, no és que que estem tractant de tirar-te per aquí de nou a nedar els taurons. Això és el que és probable que veure amb el seu projecte final, si vostè escull un un llenguatge diferent, igual que iOS i Objective C, o si vostè decideix començar programació en el futur i submergir-se en altres idiomes, com Python o Ruby. Sovint, la lògica és molt similar en totes aquestes llengües, i la sintaxi és el que és diferent. I serà de tu, ja que el programador, per anar utilitzar el web recursos disponibles per a vostè i la figura trobar la manera d'expressar el que vostè sap com per expressar en C, en un un llenguatge diferent. Així que aquesta és una bona pràctica, tant per la seva projecte final, i una altra, per el que probablement va a fer després de sortir CS50. Abans de continuar, algú té alguna pregunta sobre el que Jo he fet fins ara? Gran. Anem a passar. En primer lloc, parlarem breument sobre la comanda chmod. Això, ho farem en l'inici dels seus problemes de set. Una de les primeres instruccions per a vostè, després de descarregar el codi de distribució, és canviar el permisos dels arxius i directoris que vostè rep. Algú pot aventurar una conjectura o saber per què és important canviar el permisos de certs fitxers i directoris en el seu ordinador? Avi - AUDIÈNCIA: Llavors ningú llevat de es pot veure el que estàs fent? JASON Hirschhorn: OK. Així que si volem posar alguna cosa al web i que ha configurat permisos que només es pot veure alguna cosa, llavors ningú més pot fer-ho Veus el que has creat. Què més? Sí AUDIÈNCIA: Evitar que ningú més que vostè no volen veure alguna cosa, de veure alguna cosa. JASON Hirschhorn: Això és veritat també. Probablement hi ha un codi que escriviu, que no ho fa volen que la gent vegi. Probablement vostè està bé amb la gent de veure l'HTML i el JavaScript. Però la seva PHP, un codi de cap de nou, una gran quantitat de la lògica del seu codi, potser el coses que emmagatzemen algunes de les contrasenyes per la seva base de dades, no ho fa volen que la gent vegi que tipus d'informació. Així que és important que, cada arxiu i directori que creem té permisos aplicable a si volem o no la gent a veure aquest tipus d'arxius i directoris i poder accedir-hi i potencialment fins i tot canviar-los. Així que hi ha tres tipus de permisos. Hi ha un permís de lectura, el que significa es pot llegir un arxiu o una llista de la contingut del directori. Aquí hi ha el permís d'escriptura, el que significa que pot canviar un arxiu o un canvi un directori i després l'execució de permís, el que significa que pot executar un arxiu o millor dit, que pot moure en un directori. Així CD alguna cosa, si vostè té la permís per executar-lo, pot moure en aquest directori. Aquest és un breu exemple. Una vegada més, vostè ha anat per aquest en el conjunt de problemes. Però puc crear un directori amb la comanda mkdir. Puc canviar els permisos. Aquestes dues línies realment fan exactament el mateix. És per il · lustrar que la sintaxi per canviar els permisos, si ho fas la a + x o 711, els que són els mateixos. Mirem cap avall en aquesta bonica taula. Veiem que hi ha usuari permisos primera. Que vostè, l'individu és, i seu servidor, potencialment. I després hi ha el grup i altres. Les diferències entre els 2 són relativament trivial. Així que en general, ens agrupem qui junts. Però, en essència, si tenim un arxiu anomenat inclou que volem ser capaç d'editar a nosaltres mateixos i que volem altres per ser capaç d'executar, és el permís 711. I veiem que a baix aquí en aquesta taula. Tenim una lectura, escriptura i execució. Per a cada un de nosaltres, volem ser capaç de fer això. Grup i altres, només volem que siguin capaços d'executar. La forma en què traduïm en un nombre de permís és a través binari. Així que si tenim tres més, això és un 1 en columna de les unitats, un 1 en els grups de dos columna, una columna gener les quatre potes. Això és juliol just aquí. I aquest permís és d'1. Aquest permís és d'1. Així que 711 quan és el mateix que donar ens llegeixen, escriptura i execució, i tots els altres privilegis d'execució. Aquesta línia d'aquí, en general, hauran de llegir i escriure quan crear un directori. Així que aquesta línia d'aquí només se suma executar privilegis a tots. Així que seria similar a, en A més del que tenim, l'addició d'1, 1, 1 a tothom. Atès que la present, és innecessària afegir llegir i escriure. Però si vostè va a utilitzar els nombres, no es pot simplement afegir alguna cosa. Sobreescriu qualsevol permís eren aquí i posar-les en pràctica amb el nou nombre que vostè dóna. Això va ser molt ràpid. Algú té alguna pregunta sobre el canvi dels permisos? D'acord. Si tinc un arxiu PHP, quins permisos Què vols que tingui? Això està en l'especificació conjunt de problemes. Així es pot veure en l'especificació i després em llegir la resposta. AUDIÈNCIA: Vostè vol que l'usuari tenir permisos de lectura i escriptura. I vostè vol tot el món cosa que no té res. JASON Hirschhorn: I què nombres és això? AUDIÈNCIA: 600. JASON Hirschhorn: 600. Així chmod 600 - cada vegada que imprimeixi un arxiu PHP, chmod a 600. D'acord. Tinc un directori. Algú més de Jeff, Tinc una carpeta d'arxius. Quins permisos vull per donar a aquesta carpeta - també en el problema conjunt d'especificacions, just sota d'aquesta resposta o la resposta anterior? També potencialment a la diapositiva - Marcus. AUDIÈNCIA: Per al carpeta, que és 711. JASON Hirschhorn: 711 - de manera que una carpeta, vostè vol donar 711. Vols ser capaç de llegir aquesta carpeta, canviar de directori, es mouen en aquesta carpeta. I vol que tots els altres per poder per navegar dins d'aquesta carpeta, però no canviarà necessàriament el seu contingut. Què passa amb un arxiu que no sigui PHP, dir, un arxiu de JavaScript? Quins permisos és el que volem per donar aquest tipus de fitxer? AUDIÈNCIA: 644. JASON Hirschhorn: 644 - Per què volem donar-li 644? AUDIÈNCIA: Per permetre que altres persones el llegeixin. I es llegeix o escriu. JASON Hirschhorn: Així que bé, tots més pot llegir aquest arxiu JavaScript. I vostè pot canviar això, a més de ser capaç de llegir-lo. Així que un dels errors més comuns que la gent tenir amb aquest conjunt de problemes i la seva projecte final, si és un final basat en web projecte, que no han establert els permisos correctes. I no seran capaços de per veure la seva pàgina web. O una part particular de la seva pàgina web. Així que assegureu-vos que estableix la permisos correctament. No assumeixi que ho farà fer-ho de forma automàtica per a vostè. D'acord. Això va ser una cosa petita que passem una bona quantitat de temps en, podríem clavar. Anem a passar a HTML. I de nou, per a aquests propers quatre temes, anirem a través d'ells amb relativa rapidesa. Així que no dubti en aturar-me en qualsevol temps, si vostè té alguna pregunta, si estan relacionats amb el que jo cobreixo o alguna cosa de conferència o fins i tot de fixar el problema. Deixi de mi sempre que ho necessiti. Quan arribem al final, només haurem de començar a anar sobre el conjunt de problemes. Així HTML significa Hipertext Llenguatge de marcat. No és un llenguatge de programació. Tot el que fa és l'estructura del seu contingut i també proporcionar algunes metadades. Així, per exemple, presumiblement, molts dels vostè ha utilitzat Facebook abans. I vostè pot incloure enllaços a, o pot posar un enllaç com el seu estat. I llavors, t'adonaràs que el vincle sempre té una bona foto a la mateixa i una mica de text. Generalment, és a dir alguns metadades per a una pàgina web. I és metadades Facebook específics. I llavors, quan Facebook està llegint que pàgina i la inserció en aquest vincle, que busca les metadades específica, de manera que sap quina imatge per mostrar, el que títol per veure, i el que text del resum per mostrar. Així que podem incloure metadades amb nostra pàgina web fent servir HTML. I també ens ajuda a estructurar el contingut, en general, el volem anar a on. Tot en HTML és un element. I els elements aquí - aquest CS50, el text és l'element. I té algunes etiquetes. Té això una etiqueta. I ens adonem que hi ha una A en la principi i després una barra obliqua a, de manera el tancament de l'etiqueta al final. De vegades, no hi ha un procés obert etiqueta i una etiqueta de tancament. Hi ha només una cosa. Anem a veure un exemple d'això en la següent diapositiva. Així que no cal un procés obert i una etiqueta de tancament. Però per això, estem tancant aquest Element CS50 en una etiqueta d'àncora. I, essencialment, les següents etiquetes diuen el navegador què fer amb l'element en particular. Així que de nou, CS50 és el text anem a veure. I que serà un tipus d'ancoratge. Anchor s'utilitza essencialment per als enllaços a alguna cosa. En particular, com es pot ia dir, aquest és un enllaçar a la pàgina CS50. La següent part de l'etiqueta - o, en general, una part de les etiquetes són atributs. I veiem aquí, que l'etiqueta té una atribuir, aquest atribut href. I que modifiquen una etiqueta en particular. De fet, si vostè va a una de les llocs web o les referències que et vaig donar abans o cercar l'etiqueta en línia, t'adonaràs que hi ha un munt de atributs potencials. Aquesta és probablement una de les més comunes. Això m'està dient que creï un enllaçar a la pàgina web específica. I atribueix generalment se'ls dóna, Si no es dóna exclusivament, en parells clau-valor. Així que aquí està la clau, href. I el valor és això d'aquí. I això serà molt útil més endavant, quan vam començar a fer servir algunes biblioteques per ajudar-nos a codi en JavaScript o escriure el contingut HTML. Sovint ens serem - igual que faria matriu suport 0 i que ens donaria algun valor. En el futur, estarem fent un munt de coses com href cosa suport. I això ens donarà el valor de la href, o si volem actualitzar el href clau i després donar-li un valor particular. Així que igual que amb les matrius en què vam tenir tecla 0 o la tecla 1 o la tecla 2 o fins i tot amb un la taula de hash, també, amb les seves taules hash així, probablement tenia - que era una matriu, de manera que la tecla 0, la tecla 1, tecla 2. Aquest índex d'aquí, podem pensar en això com una clau. I el valor és el va ser emmagatzemat allà. Tots aquests atributs són parells clau-valor. I això serà important per al canvi ells o la seva actualització o la inserció d'ells més endavant. Finalment, ja has vist aquesta estructura abans, però aquesta és la més bàsica estructura de la pàgina HTML. A la part superior, li diem que aquest és, de fet HTML. I després tenim un HTML obert etiqueta i una etiqueta de tancament HTML. Així que tot l'interior de la aquest és el codi HTML. Veiem el cap i el cos. El cap del seu document generalment inclou què? Alguna idea del que posar al cap? AUDIÈNCIA: Vostè posa el títol i l'estil. JASON Hirschhorn: El títol. Aquesta va ser una gran suposició. Puc haver inclinat de vostè al. Quines altres coses? Hem esmentat a un d'ells que podria anar al cap. AUDIÈNCIA: El va dir, estils. JASON Hirschhorn: Styles - pel que si voleu vincular a un JavaScript o fins i tot un CSS, el que vostè està parlant aproximadament quan es parla sobre els estils. Un altre arxiu, que vol vincular en un fora de l'arxiu, que probablement es va al cap. Què més? Hem esmentat un parell de diapositives fa una de les coses que HTML pot fer per vostè. Es pot proporcionar - comença amb un M - AUDIÈNCIA: Metadades. JASON Hirschhorn: Metadades - de manera que una gran quantitat de les metadades anirà al cap, perquè això no necessàriament han per ser part del cos del seu codi. Això és en general - el cos és el contingut, el que veu a algú. I així em vaig donar per lluny la resposta al meu següent pregunta. Però en el cos és generalment el contingut això va a mostrar a la pàgina web. Com veurem, llocs web complicats tendeixen a barrejar o canviar fins el que posen al cap i el cos. Però, en general, el cap presenta coses que l'usuari no va a veure a la pantalla. Vincula en altres arxius i proporciona les metadades. Atès que, el cos conté tot l'usuari va a veure. Alguna idea del que significa aquesta etiqueta p? AUDIÈNCIA: El paràgraf? AUDIÈNCIA: Imprimeix. AUDIÈNCIA: No significa impressió. AUDIÈNCIA: Significa paràgraf? JASON Hirschhorn: paràgraf - pel que aquest és un paràgraf. I aquesta etiqueta p, jo podria haver acaba d'escriure això a la pantalla i després inclou un salt de línia al final de la mateixa. Algú sap com incloure un salt de línia? AUDIÈNCIA: pr - JASON Hirschhorn: pr - AUDIÈNCIA: Raya vertical pr? JASON Hirschhorn: slash pr significa salt de línia. Però paràgrafs tenen específica format. I anem a arribar a formatar en un en segon lloc, quan parlem de la CSS. Però tot dins d'aquestes etiquetes p tindrà algun format predeterminat associat amb ell, probablement alguns espaiament entre diferents paràgrafs. I serà una manera de diferenciar blocs de codi. Qualssevol altres etiquetes - Quines altres etiquetes que has vist? JASON Hirschhorn: H1 a H6. H1 a H6, i el que és això? AUDIÈNCIA: Es denotarà el gran i en negreta les lletres són. JASON Hirschhorn: Dret, que representa la capçalera. I així header1 és un gran cop de cap. Va probablement, per defecte, ser audaços, 1 mida de font gran, probablement centrat en la pantalla, tot el camí fins h6, que és un tipus de lletra més petit, menys emfatitzat. Per descomptat, vostè pot, en estàs arxiu CSS o en algun lloc en el codi - que, de nou, anem a arribar a això en un segon - canviar el que el comportament per defecte d'una etiqueta h1 és. Però cal tenir en compte que Chrome, Safari, Firefox, Internet Explorer, tots tenen per defecte cerca un munt de aquestes etiquetes estàndard. Vostè pot, de nou, sempre cal canviar el que semblen. Qualssevol altres etiquetes que tothom ha vist? Si - AUDIÈNCIA: Un lloc div. JASON Hirschhorn: Una etiqueta div - div etiqueta no té cap format integrat, per ES, que s'utilitza per bloquejar diferents tipus de codi. Qualssevol altres etiquetes? Sí AUDIÈNCIA: li - JASON Hirschhorn: li - el de Li com? AUDIÈNCIA: Llista. AUDIÈNCIA: Llista JASON Hirschhorn: li és per als elements de la llista. Hi ha dos tipus de llistes. Quins són els dos tipus? AUDIÈNCIA: ordenades i desordenades. JASON Hirschhorn: Comanda i desordenades - suports per ul per a la llista desordenada. Això és si vols un bullet punt, una llista de les bales. Una llista ordenada és una llista numerada. Així que va a fer una etiqueta ul oberta i després tones d'elements de la llista i després tancar l'etiqueta ul. i que la voluntat crear una llista desordenada. Anem a veure alguns exemples d'HTML en una estona. Però abans d'això, vull arribar a la CSS. I CSS significa Cascading Fulls d'estil. I això és molt estretament relacionat a HTML, però una mica diferent. Això ajuda a donar format a tot el contingut que les estructures d'HTML. Així que en CSS, en general, no volem l'estil de cada capçalera d'una o totes les sola imatge o totes les sol paràgraf. Volem que l'estil d'alguns elements o potser un element específic. I la manera com l'estil d'una específica element és donar-li un ID. Així que aquest és un atribut. Té una clau i un valor. ID és la clau. Logo és el valor. Vaig agafar logo atzar. I si li dónes una cosa una ID, en general, que només s'ha de donar a un element. I llavors, en el seu full d'estil, pot estil que en particular element, però vostè vol que es vegi. Si vostè vol llaurar una sèrie de elements, potser és una certa classe de les capçaleres, només algunes de les seves capçaleres. Potser sigui una capçalera i una imatge i un paràgraf al que tots volen estar centrat. Llavors vostè pot donar a aquests grups de tots els elements d'una classe. I vostè pot donar a la classe estils específics. Així, una identificació i una classe dues maneres d' trencar el codi, pel que pot ajudar a ser més específic en el que estil. Hi ha tres formes d'estil. El primer és, amb aquest atribut d'estil. Com podeu veure, la clau d'estil és l'estil. El valor d'estil és en realitat una altra llista de valors clau. En aquest cas, vaig agafar una de les claus, text-align. I jo vaig dir: central. És possible que s'estigui preguntant en aquest punt, com sabia jo de text-align. Què vol dir que fins i tot ho fan? Aquesta és una gran pregunta que ens hem de fer, i anem a arribar en un segon. Així que aquesta és una manera d'estilitzar alguna cosa, només li donen l'atribut d'estil. Una altra manera d'estilitzar alguna cosa és - això és Akshar esmentar anteriorment. Vostè pot utilitzar les etiquetes d'estil i posar aquest a la capçalera del document HTML. Així que vostè està dient bàsicament, el contingut aquí dins és una cosa de contingut estil. I el format perquè sigui la cosa que vostè vol aplicar un estil i, a continuació, a l'interior de claus, el parell de valors clau de la atributs que vostè vol donar a aquest tipus particular d'element. Finalment, i aquest és el forma més comuna. I aquesta és la forma en què fer-ho en conjunt p 7. És un full d'estils extern. Així que tens un arxiu css .. I dins d'ella, es veu una gran quantitat de les coses que es veuen així, el nom d'algun tipus d'element o un identificador o una classe i, a continuació, a l'interior d'arrissat claus, una llista de parells clau-valor. Per descomptat, si vostè crea un extern arxiu, vostè va a necessari incloure'l - agut incloure, que faria ser l'analogia C - en el seu arxiu HTML. Així que cal incloure aquesta codi a l'arxiu HTML. Aquest és el nom del fitxer i assumint que és en el mateix directori. D'acord. Això va ser molt. I ara anem a respirar i mirar en algun lloc web real en viu i explorar això més. Però abans de fer això, algú té alguna pregunta? Així que si vol fer això, juntament amb mi, que puc anar a l'aparell. I vaig triar la pàgina principal CS50. Vostè pot fer això amb qualsevol lloc web. Però, per què no comencem amb la pàgina CS50? Anem a refrescar. En realitat li recomano que fer això juntament amb mi, perquè el que faran ara serà increïblement útil per a vostè, no només en P-Set 7, però a P-8 set també. Sí AUDIÈNCIA: Hi ha una manera de fer comentaris en HTML, sense necessitat d'utilitzar PHP? JASON Hirschhorn: Sí, es pot fer comentaris en HTML. AUDIÈNCIA: Quina és la sintaxi? AUDIÈNCIA: Signe d'exclamació tauler d'instruments. AUDIÈNCIA: OK. JASON Hirschhorn: Si. Aquesta és la sintaxi. Vostè pot fer comentaris a HTML. Vostè pot fer comentaris en PHP. Com podrà veure, comentar HTML seguirà apareixent, quan ens fixem en la Codi font HTML d'un lloc en particular. Així que aquest cs50.net. Si feu clic dret en la més moderna navegadors en la majoria de qualsevol pàgina, veure la font de la pàgina. Així que farem això al CS50. I vet aquí, ens veure una cosa gegant. CS50 en realitat es veu bastant bé. Una gran quantitat de llocs web no ho farà mirar això agradable. Si vas a la pàgina d'inici de Google i s'obre. No va a mirar això agradable. Però t'adones que, a la part superior - això és una mica petita. Anem a fer-ho més gran. D'acord. A la part superior, HTML DOCTYPE, això és familiar. Llavors veiem l'etiqueta HTML obert i el cap, aquí, tot d'aquestes etiquetes meta. I es pot veure aquesta og, no entrarà en això ara. Però estic gairebé segur que aquests serien Facebook. Això és en realitat el Facebook. Crec que és sinònim d'Open Graph. Així que recordin, jo estava esmentant que hi ha Metadades Faceboook específica que pugui donar a una pàgina. Això és el que és aquí. Així que quan es vincula aquesta pàgina a Facebook, la imatge que es mostrarà és aquesta imatge aquí. I en realitat es veu que és Facebook, perquè és la imatge de Facebook. Però de totes maneres, estem arribant a un costat. Així que tenim algunes etiquetes de metadades aquí. Veiem el títol CS50. I un cop més, el títol és el que passa aquí, a la pestanya del navegador. Veiem això és la vinculació a, aquí, un arxiu JavaScript extern. No hem parlat molt JavaScript, però la setmana que - i, per descomptat, si vostè està fent una sèrie de problemes basada en la web, que utilitzarà JavaScript. És així com es vincula en exterior JavaScript arxius. Veiem aquí, finalment, la CSS full d'estil, que documenta aquests estils d'aquest codi. Obrirem aquesta realitat i fer una ullada molt ràpid. Això sembla una bogeria. No hi ha manera que seria capaç de llegir. Així que en realitat es pot, però, si es pren una mirada, es pot ordenar de veure que hi ha - aquí anem. Això s'assembla a alguna cosa que hem vist abans, color de fons, establint que igual a algun valor vermell-verd-blau. Aquest tipus de coses no ha de semblar que estrangera, tot i que, quan es presenta com aquest, pot ser una mica aclaparador. No anem a mirar aquest arxiu CSS o passar molt temps en ella, perquè que és, de nou, molt difícil de llegir. Tornem a aquest Pàgina HTML per CS50. I anem a desplaçar-se cap el cos. I a l'interior veiem aquesta etiqueta div. Veiem una capçalera aquí. Veiem l'etiqueta d'ancoratge. I aquest element de la llista és donada una classe específica. I veiem que la classe repeteix una i altra vegada. Aquí estàs Curtis. Existeix el comentari en HTML5. I com t'adones, encara podem veure , Però no està mostrant. És realment molt interessant. Sembla que aquesta llista puntuacions element està comentat. Si anem a aquesta pàgina, un cop més, segueix apareix allà, tan interessant. Oh, és per això, perquè d'aquesta línia següent. Quina altra cosa és el que veiem d'interès? La resta d'aquest és més confús, en fer front a aquesta meitat dreta de la lloc web, que és una mica mica més delicat. Així que això és el que alguns HTML serà similar. Per a mi, però, això és una mica aclaparadora, i això no ho fa m'ajudarà molt. Tanmateix, hi ha una cosa que que, de fet, m'ajudaria molt. I això és el que jo faig servir quan estic tractant d'esbrinar com alguna cosa es veu la manera com ho fa, o com pot Faig canvis al meu lloc web. I això és una eina de desenvolupament que està integrat en Chrome. Així que si vas a aquest tres bars just aquí i anar a Eines, feu clic a Eines de desenvolupament, una petita finestra apareixerà a la part inferior de la pàgina. I, en particular, crom, ja que és meravellós, formatarà aquesta finestra i prendre el codi HTML i fer que es vegi molt més agradable per a vostè. Així que ara és en realitat alguns plegable HTML que es pot explorar a inspeccionar els elements de la pàgina. Si volem mirar el cos, el que realment destaca. Quan es desplaça a través d'una part del codi HTML, en aquesta finestra, ho farà ressaltar el paper que està parlant sobre la gran finestra. Així que permetin-me tornar a intentar bufar això una mica. D'acord. Així que anem a obrir el cos. I estic desplaçant-se sobre aquest div esquerra. I t'adones que està destacant aquesta meitat esquerra de la pantalla. Així que anem a fer clic en aquesta i ampliar això. Dins d'ella, es veu com hi ha dos divs. Hi ha una primera div. No veig que va destacar. No sé, però sembla que aquesta segona, esquerra interior, és el contingut a la banda esquerra de la pantalla. Després hi aquesta cosa anomenada capçalera. Sembla que això és posar en relleu la part CS50. Si obrim això, veiem que es tracta d' res més que la capçalera 1. S'ha donat una identificació, i és donat el CS50 text. Així que de nou, mirant a través d'aquest consola o usant les eines de desenvolupament panell en la part inferior de les marques de pantalla l'exploració d'aquesta pàgina web, amb sort, un molt menys intimidant i molt més accessible. També ens permet entendre que aquest lloc web, tot i que es veu molt bonic i agradable, no és tot el que molt més del que seràs fent en Problemes de 7. I això és totalment dins seva capacitat de crear. Si volem - l'altra cosa fresca sobre l'ús d'aquests eines és, si fa clic dret sobre el títol, pot editar el codi HTML. Així que anem a cridar Jason. I ara et donaràs compte que he canviat el codi HTML d'aquesta pàgina. Per descomptat, no he canviat de forma permanent. Si actualitzo el meu navegador, llavors seria tornar a l'HTML original. Però de vegades vull depurar el meu codi, i jo no vull semblar gairebé té el meu finestra del gedit i tractar d'entendre Què està passant. Vull veure què passarà en viu. Així que vaig a editar codi com aquest i amb si la forma que jo vull que es vegi. I llavors vaig a fer la canvis en el meu codi. I em sembla que és molt més fàcil quan es pot fer les coses instantàniament, així. Diguem, un cop més, volem fer una altra casualitat, perquè estem explorant amb HTML i CSS en aquests moments. Puc editar l'HTML en aquests moments. I jo vaig a incloure un enllaç. Així que em vaig a canviar de domicili del CS50 la pàgina, de manera que es vincularà a - diguem - la meva pàgina d'inici. Quin és el nom, si algú recorda, o Quin és l'atribut que vull donar a una pestanya d'ancoratge quan vull per vincular a un altre lloc? AUDIÈNCIA: href? JASON Hirschhorn: href - Així que ara, veuràs que hi ha és un subratllat sota de Jason. Això es deu a Chrome, per defecte, dóna àncores un subratllat. Vostè probablement ha vist que abans de quan has anat a una pàgina web. Les coses que són vincles són subratllat i en blau. L'estil per defecte per a un vincle és generalment subratllar i el va posar en blau. Si no m'agrada, Jo puc canviar això. I anem a canviar en un segon. Però ara, també adonar que, si planen per això, a la part inferior esquerra de la pantalla, just a sobre dels elements denominatius és el vincle que l'hi vaig donar. Així que si ho fes clic en aquest - i podem feu clic dret sobre aquest, obrir una nova pestanya. Això no és realment la meva pàgina d'inici. És només el meu nom. Aquí el tens. Ara hem convertim en un enllaç. Anem a explorar una mica de CSS també. El bonic - i vaig a fer d'això una mica més petit - aproximadament aquesta consola és que el full CSS boig vam veure abans, que era realment difícil d'analitzar, ja està bé traçat per a nosaltres a la banda esquerra d'aquest panell. Així que podem veure. I si ampliem aquesta fitxa els estils, pot veure tots els diferents estils que estan associats amb, en aquest cas, aquest element particular, aquesta element d'enllaç. Si ho fem en la fitxa estils compostos, que només ens mostra, no el que tot prové de, però essencialment tots aquests estils que estan operant en aquest element en particular en aquests moments. I diguem que volem per canviar una mica. Així que això és tots els estils que són operant en aquest element particular. Diguem que volem canviar, perquè Vols veure com es veu alguna cosa. I només estem jugant sobretot en aquests moments. O volem provar alguna cosa, abans de escrit en codi i empenyent i el que és viure. Podem anar a la pestanya d'estils. I en el primer quadre que diu, element.style. I aquí, pot inserir, vostè pot afegir alguna cosa. Així que vull - anirem al meu enllaç i el establir el color de fons. I el que realment AutoFills per tu, totes les possibles propietats. El color de fons, i vull per fer que el blau. Blus no és una paraula. Blau és una paraula. ¿Vaig concretar? Això és perquè està en el href? D'acord. Així que no veig cap canvi aquí. I és que, si es destaca el enllaç, t'adonaràs que el vincle no és en realitat el control de la propietats d'aquest element en particular. En realitat, si obrim l'enllaç, aquesta capçalera aquí que és el control del que sembla. Així que si vull fer el fons blau, en realitat he de canviar color de fons a la element de capçalera. I ara veiem que la fons és blau. Així que de nou, això ràpidament podria anar través d'aquest material amb força rapidesa. Però això és essencialment el que vostè va a estar fent. No està en problemes n 7, però certament quan estàs codificació al web. D'acord. Vull fer el fons blau. Tot i que, en aquest cas, blau es veu molt lleig. Jo puc entrar aquí, jugar una mica. Veig que canviar a blau no funciona al a. He de canviar realment la capçalera element per incloure el blau fons. I llavors, si després torno a la meva CSS arxiu, com puc realment estableix aquest de fons a ser blau i fer aquest canvi pal? Perquè si ens adonem si restauro la pàgina, tots els canvis que vaig fer s'han anat. Així que em vaig adonar, OK, el meu fons és blau. He d'anar a aquest element header1 i canviar el color de fons a blau. Com puc realment fer aquest canvi? Bé, recordar que, si anem dins d'aquí, aquesta capçalera, el títol té un ID. I aquest és el títol. I així, en el nostre arxiu CSS, es pot dir, OK, portar res amb ID de títol i donar-li aquesta propietat addicional. Com ens referim alguna cosa amb el Identificació del títol, qualsevol idea, ni a ningú sabem com fem referència ID al nostre arxiu CSS? Un hash, que és exactament correcte. I tens una mica d'això aquí. Així que en algun lloc d'aquest arxiu CSS, hi ha aquesta línia de codi - # # Va deixar esquerra interior # header # títol. I està donant marge inferior, la definició de la part inferior d'aquest marge element particular. Bé, si jo volia canviar això, M'agradaria anar a l'arxiu CSS. I vaig poder trobar ja sigui aquesta part de l'arxiu CSS. O podria escriure el meu propi. Jo podria fer picada cotilla títol arrissat i després blau el color de fons de còlon punt i coma i prop que claudàtor. I això seria canviar el fons color d'aquest element a blau. La raó per la qual et donen tants aquí és això, és necessari en aquest cas, perquè el títol és un identificador únic. Però el que pot fer és coses de nius. Així que això està dient, OK, aneu a l'esquerra. Això és molt petit. Em disculpo per això. Però anar a la cosa amb ID esquerra. Dins d'això, buscar la cosa amb ID deixar interior. Dins d'aquesta mirada, buscar la cosa amb capçalera ID. Dins d'això, buscar la cosa Títol ID i canviar el títol d'identificació. Així que això és només una manera de les coses que nien. Algunes persones, com el niu, perquè que fa que sigui una mica més clara. Vostè veurà aquí també, no aquí, no hi ha hash. És només H1. Això és perquè es dóna el h1 nom d'una etiqueta genèrica. I hi ha algunes propietats CSS associat amb cada h1. Així que si he trobat una altra h1 en aquesta pàgina, També m'agradaria veure que aquest estil era aplicat a ell també. Si volgués aplicar un estil a una classe, Com puc fer referència a una classe o parlar d'una classe en un arxiu CSS? AUDIÈNCIA: Dot. JASON Hirschhorn: És un punt. Així que anem a tornar a aquesta pàgina anterior. Si ho faig picada ID. Això està canviant l'estil de la cosa amb ID. O ho sento, si ho faig logo hash, que és la recerca de la cosa amb l'ID de logo i donant-li un estil CSS particular. Si faig alguna cosa. Superior, això és la recerca de tot amb la classe de la part superior i canviant els seus estils. Si jo simplement H1, que troba cada h1 individuals i li dóna el que sigui estil que vull donar-li. Si ho faig espai h1 en tant. Superior. Això serà anar a buscar tots els H1S i després tots els que tenen la classe de la part superior i llavors només canviar els estils de el que jo vulgui donar-li. I de nou, podríem haver escrit una mica d'això pel nostre compte. Però no hauríem arribat tan lluny. Molt millor, sembla que anar realment en un veritable lloc en línia i veure com ho fan i veuen tota la coses fantàstiques que vostè aconsegueix fer. Fem una ullada a un més lloc web abans de seguir endavant. I aquest és un que probablement familiaritzar-se amb. Això és CS50 Finances. Així que de nou, en realitat es pot entrar i observar l'arxiu CSS en el seu ordinador, perquè vostè ha descarregat aquest Arxiu CSS, si va descarregar el estableix problema. Podem anar a Eines i Eines de Desenvolupament. I veiem un disseny HTML molt més simple. Tenim la part superior, mitjana i inferior. I de nou, cosa que hauria de ser familiaritzats, perquè vostè ha mirat a través del codi de distribució per al grup problema d'aquesta setmana. A la part superior és, pel codi, una sola imatge trucada. I aquesta és la font de la imatge. Diguem que jo he acabat tot el que Volia per a Problemes de 7. I està funcionant correctament, però Vull canviar com es veu. I vull canviar el fons de la part superior de la pàgina per, per exemple, blau. Si es tractés de mi, jo la aquí i esbrinar, OK el Què vull canviar. Anem a veure, div top ID, que es veu com la part superior de la pàgina. Així que anem a anar-hi. Anem a tractar de canviar la color de fons. Farem Alice blau, perquè Aquesta és una pregunta millor. I t'adonaràs que - és probable que no el veig. Però hi ha una llum blava, juntament amb el logotip de CS50. Anem a canviar el seu lloc de vermell. I t'adonaràs ara acabo de canviar el color de fons vermell. Així que ara m'agradaria anar al meu arxiu CSS i # Tipus millors parin arrissats aquí. Vostè pot veure el codi de dret aquí, claudàtor. I llavors, jo afegiria fons color, vermell. I després, no ho faria ser una clau. Així que així és com m'agradaria explorar i experimentar amb format al CS50 Lloc d'Hisenda. Jo podria fer-ho aquí i prova cap a fora en el meu navegador. I després, podria anar en el meu codi real i fer els canvis que es en realitat anar a viure i que les persones veure realment, si anaven a venir a meu lloc específic. D'acord. Això va ser molt. Em disculpo per passar per tan ràpidament. Algú té alguna pregunta en absolut sobre HTML o CSS? AUDIÈNCIA: Pot vostè només ha d'anar sobre com vinculat que es va convertir Jason, un altre cop? JASON Hirschhorn: Què Què vol dir vinculat? AUDIÈNCIA: Vostè ja ha proporcionat un enllaç a una altra lloc web, utilitzant l'àncora. JASON Hirschhorn: Així que ho preguntes, només genèricament, la forma de fer un enllaç? AUDIÈNCIA: Si. JASON Hirschhorn: OK. El codi per fer un enllaç - AUDIÈNCIA: No, com en el codi HTML. JASON Hirschhorn: Aquí sota, vols dir? Així que si vull incloure un enllaç en algun lloc, per exemple, aquest és el HTML a la meva pàgina aquí. Aquest és el codi HTML. Potser és oberta en un arxiu, index.html. Vaig polz Tindrem aquest dret d'autor John Enllaç de Harvard per a alguna cosa. Així que anem a editar tot això com HTML. Tot el que fan és incloure a la una, per la qual cosa entre parèntesis un suport de prop el principi, i després barra suport un suport proper al final. Així que ara he inclòs una etiqueta d'àncora. I, de fet, si fa clic fora d'això, ho farà ara formatar editar com HTML. I diem, volem vincular. Li estaríem l'atribut href. I diem - I ara, quan t'adones, els drets d'autor John Harvard és blau. I quan em desplaço sobre ell, és ara un enllaç. Així que vostè pot escriure aquest codi. Pot posar en gairebé qualsevol cosa que vols en una etiqueta d'àncora i convertir- en un enllaç. AUDIÈNCIA: OK. Ho tinc. JASON Hirschhorn: I si jo no volia és - per descomptat, de vegades la gent tendeix pensar aquestes coses que acaba de veure blau i subratllat són genèricament no de la manera més bonica de fer un enllaç. Així que si jo vinc per aquí, es veu que, en algun lloc d'un arxiu CSS, hi ha escrit això una i després dues claus. Així que anem a dir que, per als enllaços, no ho faig volen que es converteixin en blau, i no em vol que el color d'un enllaç a ser aquest bonic magenta. Anem a donar-li el color. Triem magenta. Ara, tots els enllaços de la meva pàgina tenen convertit aquest bonic color magenta. Algunes persones no els agrada els colors en absolut. Algunes persones no els agrada subratllats. Et donen a escollir. Amb els enllaços, pot estil com mirar una vegada que els ha visitat. Com et donaràs compte d'una gran quantitat de pàgines, enllaços es tornen púrpura en vostè els visita. Vostè pot canviar aquest color també. Sí AUDIÈNCIA: Així que el canviï per a cada enllaç. Però si el que volia fer aquest enllaç sí, caldria acaba de fer en l'ID inferior o alguna cosa així? JASON Hirschhorn: Així que gran pregunta. Com haurà notat aquí, he canviat alguns part de la CSS que s'aplica als tot el que és una A. Si volgués fer això en la part inferior, que aniria al meu arxiu CSS i probablement fer el mateix que vostè va dir, haixix espai inferior a. I això em donaria Com tot a la part inferior. O podria, si no, li donen un ID únic i després simplement fer enllaç hash. I això em permetria per canviar això. No obstant això, just repartir els ID de qualsevol manera és generalment una mala pràctica, perquè els ha de ser únic. I com més vostè té aquestes, pot ser una mica confús. Sí AUDIÈNCIA: Pot donar la mateixa ID per diversos propietaris? JASON Hirschhorn: Tècnicament, sí. Res va a detenir, però No hauries ha de donar una classe. OK, qualsevol altra pregunta sobre HTML o CSS? D'acord. Passem a PHP. Oh, si. AUDIÈNCIA: Què passa amb aquests llocs web que vol dir que podem editar ells abans que ens refresquem. Però una vegada que ens refresquem reverteix enrere per al codi HTML inicial? JASON Hirschhorn: Gran pregunta - així que quan ens hem carregat aquesta pàgina web, és HTML. I és JavaScript. La seva PHP s'executa per donar-nos el que sigui tipus de lloc web que veiem. I ha creat una mica d'HTML, alguns JavaScript, i una mica de CSS. I que ara accessible pel nostre equip. I es guarda una còpia d'aquests fitxers localment al nostre ordinador, de moment. Així que podem editar la còpia local. Però, per descomptat, no estem editant la còpia del servidor. I quan ens refresquem la pàgina, tenim una altra còpia del servidor. I així veiem coses com estaven. Si hem estat capaços, a partir d'aquí, per editar el lloc web oficial, tindríem molt de problemes. AUDIÈNCIA: Sí, pel que podem llegir i escriure aquesta còpia. JASON Hirschhorn: així. Nosaltres només estem fent canvis locals aquí, però de nou, molt útil per explorar, moltes vegades. Quan estic escrivint el meu projecte final, per exemple, vull veure com alguns lloc web fet alguna cosa ullada la forma en què ho va fer. Vaig a entrar i utilitzar aquest panell cap avall aquí, per veure el que CSS que li van donar a o quin color que van triar o com ho va aconseguir de manera que, quan planava per alguna cosa, la llista es va reduir d'una manera agradable en cascada. És una gran manera d'inspeccionar l'altre llocs web fan i prenen prestat d'ells. Anem a passar a PHP. PHP significa, en un sentit recursiu, Processador d'Hipertext PHP. I PHP, el que farà és executar al servidor de codis. Així que mai veurem el codi PHP. No obstant això, es juga molt bé amb HTML i sovint genera una gran quantitat de codi HTML. Però com vostè estarà familiaritzat amb el problema Setembre 7, el codi PHP executarà, generar una mica d'HTML, i això és el l'usuari va a acabar de veure. PHP és molt similar a C. No obstant això, hi ha un parell de diferències, i aquestes diferències són importants tenir en compte. Una diferència és que les variables en PHP estan més o menys escrit. Algú té un sentit del que això significa? AUDIÈNCIA: No hi ha necessitat de tirar a tu mateix. Igual que no hi ha necessitat d'escriure en el text. JASON Hirschhorn: Jo no faria servir la elenc paraula, però això sí, no hi ha necessitat de declarar un tipus per a una variable específica. Com quin lloc declarem una variable? AUDIÈNCIA: Utilitzeu un signe de dòlar. JASON Hirschhorn: Utilitzeu un signe de dòlar. Així que $ x és una variable. 1 $ és una variable. $ String és una variable. Els variables $ x poder ser un nombre enter. Llavors, podria ser una cadena. Llavors, podria ser un caràcter. En realitat no importa. A més, el bo de PHP és, per exemple, $ x és la cadena d'un. I $ i és el personatge un. Vostè pot afegir $ x i $ i, i va li donarà 2, el que s'espera. Així que hi ha operacions en PHP. Com que està vagament teclejar les variables, alguns la conversió implícita es fa per a vostè i algunes operacions. Vostè pot fer les operacions en les coses de diferents tipus. Mentre que abans, sovint es té un error en C dit, aquest no és el tipus que se suposa que anar aquí. Només les coses d'aquest tipus poden anar aquí. No va a aconseguir aquest tipus d'error, generalment, en PHP. Així que aquesta és una gran diferència - com fer front a les variables. La segona gran diferència és que S'interpreta el codi PHP. On és, es compila codi C. Què significa això? Bé, per al codi C executar a través d'un compilador. Vostè genera un arxiu binari. I es va executar aquest arxiu binari. Vostè va cuidar de tots els errors abans de es va generar el fitxer binari. Per descomptat, podria haver hagut segmentació faltes, en executar el arxiu binari. Però no és com si vostè es va oblidar d'incloure la definició de printf o que no ha utilitzat una variable i només creat una variable malgastador. O no ha definit un prototip de funció. Tot el que va succeir abans de compilar. Se li va donar a tots els errors o males coses que pensava que podria succeir. I llavors, vostè tenia el seu 0 i 1 arxiu que es va executar. Codi PHP no funciona així. Vas a escriure el codi PHP. Llavors, vas a guardar, presumiblement. I almenys en P-Set 7, vas actualitzar el seu navegador web, i vas a veure què passava. Vas veure la sortida que el codi PHP. També podria veure, a la part superior de la pàgina, un error. Perquè tenies alguna error en el PHP. Vostè encara podria veure la resta de La pàgina web està mirant bé. Però una part que està malament, i no hi ha un error en aquest lloc. I això és perquè la part de el seu codi PHP no funciona. De fet, quan s'executa, quan es anar a una cosa així com by.php. Es va a anar a través del seu PHP presentar línia per línia i executar llavors i només llavors. No va a compilar per davant de temps o compilar una còpia i després donar que compilen còpia a tothom. Cada vegada, es va a anar a través d' línia per línia i executar-lo. Pel que algunes línies poden treballar i seria alguna cosa correcte. I altres línies podrien trencar- i la sortida d'un error en lloc. Així que quan la depuració de PHP, hem donat que un parell de coses útils per ajudar a depurar, com la funció de bolcat. Però, en general, van per veure aquests errors. I així és com vas a saps que has fet alguna cosa malament. Però si només vas a veure l'error una vegada que en realitat executa el codi. Un altre aspecte important de PHP i desenvolupament web és la idea d'aconseguir enfront del lloc. Algú pot explicar quina és la diferència entre GET i POST són? Ningú - Sí AUDIÈNCIA: No un d'ells permet a l'usuari veure les dades, i un d'ells no? JASON Hirschhorn: Molt bé. Sí, té vostè alguna cosa que afegir? AUDIÈNCIA: Em missatge fina és una variable de super-global. JASON Hirschhorn: Llavors tots dos variables que es donen a vostè. Aquests són només variables. I tu saps que són les variables, perquè aquí em utilitzar el signe de dòlar. Aquestes són variables donades a vostè per PHP. I quan vostè es mou entre les pàgines web, vols estalviar una mica d'informació. És possible que vulgueu estalviar si l'usuari ha iniciat la sessió Això no aconsegueix marcar en GET i POST. Això es guarden en una altra cosa, una variable diferent. Algú sap què variable que es va salvar , O el que la variable que s'utilitza en P-Set 7, per assegurar-se que l'usuari està connectat? $ _SESSION, Això és exactament correcte, probablement important estar familiaritzat amb els noms d'aquestes coses que utilitza amb freqüència. Així s'utilitza la variable de sessió per guardar informació d'una pàgina a una altra. Això és una variable super. Existeix en totes les pàgines, potser com un variable global, si vostè vol pensar referent a això. Hi ha un parell d'altres variables que li permeten transferir informació de pàgina en pàgina. En particular, les que ens centrarem en són el GET i les variables POST. En PHP es veuen com $ _GET I $ _POST. I la diferència, com es va assenyalar Marcus a terme, entre els dos d'ells és que, informació a $ _GET és que apareix a la URL. Així que si mirem aquí, veiem un enllaç de YouTube. Veiem aquest signe d'interrogació. Veiem v = i una mica més de valor. Tornar a aquesta idea del valor de la clau parell, la v és la clau. I aquí és el valor. Així que si haguéssim d'anar a aquesta pàgina o codificació en aquesta pàgina, tindríem una variable anomenada $ _GET. Si anéssim a $ _GET parèntesi obert "v" claudàtor de tancament, molt similar a la matriu notació, aquesta és una matriu associada perquè no estem usant índexs. Van ser l'ús de cadenes com a claus. Però la idea és similar. Si vam ser nosaltres, seria obtenir aquest valor. En aquesta pàgina, ens agradaria poder utilitzant aquest valor. Si realment busquem, anem a anar a una pàgina de YouTube. El que hem de veure el vídeo? Aquest, són persones Hobbit fans? AUDIÈNCIA: Si. JASON Hirschhorn: Així que estic copiant seva URL compartir i enganxar en una nova finestra. I ara, si vostè mira cap amunt aquí, et notar que, un cop més - Vaig a copiar i enganxar això en gedit, perquè puguem veure-ho més gran. Es donarà compte de que té aquest signe d'interrogació. El signe d'interrogació designa que tot després d'això serà guardat a la variable get. A continuació, té la v, que és el primer clau i aquest primer valor. Ampersand és especial. Ampersand està dient, bé, ens acabat el primer valor. Ara estem entrant a un altre parell de valors clau. Aquí, la clau es denomina funció, i el valor és youtu.be. Així que si jo era una codificació d'aquesta pàgina i algú va anar a aquesta URL i vaig tenir potser watch.php. I jo estava codificar aquesta. I jo podria utilitzar la variable $ _GET. I m'agradaria tenir una v, i M'agradaria tenir una característica. I quan faig servir l'tecla v, I seria obtenir aquest valor. I si ho vaig fer $ _GET suport "característica" claudàtor de tancament, m'agradaria tenir aquest valor. Un cop més, no ho fa necessàriament s'aplicarà a - òbviament, les claus i valors de YouTube i obtenir informació no s'aplica a nostre conjunt de problemes 7. Però hi ha certes coses que ens passar a través de GET al nostre Butlletí de problemes 7. I, per descomptat, quan vostè va a una pàgina web o són la codificació de la seva pròpia pàgina, la $ _GET Serà molt útil quan la seva codificació. Quin és una raó per utilitzar $ _GET llavors, si no ofereix la privacitat? Veus tota aquesta informació que està sent transferit. Tot es mostra a l'usuari. Però el que és una de les raons que vostè pot ser voleu desar alguna cosa en $ _GET, com diferència de $ _POST? Per què voldria fer això? Està bé. T'he fet en la prova 1. Quin és el pro de $ _GET? Què és un professional? Si - AUDIÈNCIA: És més fàcil compartir informació. JASON Hirschhorn: Crec que això és genial. És més fàcil compartir informació. És més fàcil de marcar. Pot marcar ara, YouTube.com / watch? V = alguna cosa i anar perquè de vídeo específic. Si YouTube sempre va fer les peticions POST per diferents pàgines, cada URL de YouTube seria YouTube.com. No es podia marcar un sol vídeo. Perquè si dius compartit aquest enllaç amb una altra persona, no ho fan obtindrà automàticament la variable d'entrada. Ells només van a obtenir d'aquest enllaç, i la enllaç és el mateix per a tots. Així que aquesta és una professional. Et permet marcar aquesta informació o compartir aquesta informació o que sigui una mica més fàcil d'utilitzar. Per descomptat, no hi ha privacitat, així que tenim aquesta variable lloc. I la informació post no és que apareix a la URL. No és completament privada. Però és marginalment més privat. I perquè vegis aquest URL aquí baix, cs50.net. Si està o no està connectat a la lloc web, que tindrà el mateix URL, cs50.net. Òbviament, alguna cosa és diferent, si que hagis iniciat sessió en el lloc web. Vostè té, un, probablement introduir el PIN. I s'ha confirmat que amb el servidor. I probablement l'estalvi alguna altra informació. Però la URL no canvia en absolut. I així, aquest és el cas, quan alguna cosa s'envia per correu. La URL no canvia. Aquesta informació no és la POST que apareix a la URL. Però algun estat ha canviat, i potser hi ha alguna informació guardada a l' Variables POST. Ho sento. abans d'entrar en SQL, qualsevol preguntes sobre PHP, en particular, preguntes sobre coses que no van sortir més de que has trobat o qualsevol sintaxi o preguntes lògiques sobre PHP? D'acord. El text final que serà interactuar amb aquesta setmana és la Structured Query Language, SQL, pronunciat seqüela sovint. Que li permet interactuar amb el base de dades d'una manera formalitzada. I juga molt bé amb PHP. Com es veurà en problemes n 7, tenim Li ha donat una funció anomenada de consulta. I es necessita una cadena SQL i executa la consulta a la base de dades. En el passat, vostè no estava donada aquesta funció. Has de fer servir les funcions de PHP per fer la consulta a la base de dades i verificació dels errors i després obtenir els resultats. I en realitat, no és tan difícil, perquè, de nou, juga molt bé amb PHP. I PHP et dóna un munt de funcions per interactuar amb una base de dades de SQL. Molt sovint, els dos aquestes van de la mà. Per descomptat, vostè podria interactuar amb la base de dades de SQL amb qualsevol nombre d'altres idiomes. Però PHP és un gran dia per triar. Una base de dades - repassarem això ràpidament, perquè aquesta és una paraula de moda que anem a començar a utilitzar sovint - és una col · lecció de taules. Així que podem pensar en ell com un arxiu d'Excel. Un arxiu d'Excel té diverses pestanyes a la part inferior de la pantalla. Cada pestanya ara diré una taula, on una taula és un conjunt de files. I el que és una fila? Bé, una fila és la mateixa cosa a l'arxiu d'Excel. Que acaba de certs valors per a cada camp o cada columna donada donada. És com una entrada a la taula. És un estudiant, que té un ID, un específica ID i un nom i una específica casa específica. Així que una base de dades és una col · lecció de taules. I els propis quadres són un nombre de files o registres. També hi ha, en cadascun taula, certs camps. I que especifica el que cada disc és tindrà, de vegades es diuen camps columnes, però en general denominats camps. En aquest molt simple taula, tinc tres camps, un camp d'ID, un nom d'usuari camp, i un camp de hash. I tinc tres files. Ara mateix, estan buits. Ells probablement no estarien buits si es tractava de la meva base de dades real. Així que si vostè ha usat Excel, idea similar al que fas en Excel, però, Òbviament, ara que serem capaços de fer les coses molt més potents en la informació que s'emmagatzema a la nostra base de dades. Que vas a crear tu mateix 1 base de dades de problemes 7. Però que crearà múltiples taules dins de la base de dades. Vostè crearà una base de dades o una taula per als usuaris. Estaràs també a crear una taula per Probablement les transaccions d'accions, per mantenir un seguiment d'ells, perquè és necessari per implementar una funció d'historial. Tant les taules tindran diferents camps. Per exemple, en un camp d'usuari, Probablement volen que el seu nom d'usuari i una ID i un hash de la contrasenya. A la taula d'Accions que realitza un seguiment de la història o la taula Historial, Probablement no cal el nom d'usuari i el hash i la identificació. És probable que només necessita un dels valors que són únics, per associar amb un usuari determinat. Però llavors, desitja emmagatzemar un altre coses com, quina hora es va fer la transacció. Quins valors es compra o es ven? Quantes accions de l'acció va ser comprat o venut? Quin va ser el preu al qual el accions es compra o es ven? Així que de nou, estaràs interactuant amb bases de dades que està en tindrà diverses taules. Cada taula tindrà el seu propi conjunt de camps. No obstant això, és probable que hi hagi una semblança camp en cada taula, que les relaciona entre si. En general, aquest és un camp d'ID. Perquè si cada usuari té un identificador únic i associar aquest identificador amb cada transacció que fa que l'usuari o tota la història d'aquest usuari. I tens ID de l'usuari. Vostè pot obtenir informació de qualsevol de les taules. Vostè pot obtenir el seu nom d'usuari, i que poden obtenir la totalitat de les seves transaccions. Una pregunta sobre bases de dades, o preguntes específiques? En realitat, anem a sostenir això. Estarem allà en dos costats. Així que hi ha quatre operacions a bases de dades que utilitzarà en Butlletí de problemes 7 i probablement mai s'utilitza. El primer que vull fer és inserir un nou registre en una taula o una nova fila en una taula. Aquesta és la funció genèrica, la forma genèrica, d'aquesta consulta SQL. Inserció en la taula, el que sigui columnes que desitja inserir i, a continuació els valors que vostè va a voler posar en aquestes columnes o camps. Si té diverses taules d'una base de dades o diverses bases de dades, També pot ser que necessiti per especificar la base de dades i la taula que desitja per posar les coses en. Però molt simple, si voleu inserir en alguna cosa, vostè diu, aquí estan els camps que vull inserir en. I aquí hi ha els valors. En alguns quadres, també, i aquest usuari de taula és un bon exemple. Probablement en la taula de l'usuari i probablement a la taula del seu usuari a P-Set 7, no és només un valor de nom d'usuari. No és només un valor en efectiu, o al camp, en lloc. També hi ha un camp d'ID. Jo no vaig a inserir aquest camp ID. Això serà donat a automàticament mi, quan un S'insereix el nou registre. Així que hi ha una mica de camp que pot configurar perquè sigui automàtica. Potser vostè vol donar a cada usuari 10.000 $ de diners en efectiu del pal. Així que no necessito per inserir una sèrie de diners aquí. Tot el que necessito per inserir és el nom d'usuari. I llavors, el camp efectiu serà ja es troba completa, i el camp ID es ser pre-poblat. Així que moltes vegades, no estem inserint alguna cosa dins de tots els camps, perquè els altres camps són pre-poblades. Perquè aquesta és la forma en què configurar aquesta taula. La segona cosa que vostè va a voler fer és eliminar un registre. Eliminació d'alguna cosa és molt simple. Vostè dóna la taula en la qual desitja eliminar una mica de. I dius, OK, vull esborrar la registre que té un nom d'usuari de Milo. O vull esborrar tots els registres que tenir un nom d'usuari de Milo o que eren una transacció d'ID d'usuari número 2. Qualsevol pregunta sobre aquests dos tipus de consultes? AUDIÈNCIA: [inaudible]. JASON Hirschhorn: Si. Així que vaig a utilitzar fila i registre de manera intercanviable i alguns amb la columna i el camp. Però una fila és un registre. Una columna és un camp, passant còpia d'aquesta taula. D'acord. El següent que vostè està probablement farem és aconseguir una mica de informació de la taula. Aquesta és una consulta de selecció. I de nou, què taula estic seleccionant d'? I el que la columna és el que vull per seleccionar o quin valor és el que vull per seleccionar i des de quin fila? Així que l'Select és una mica específica. Dic, està bé, jo vull aquesta taula. I després vull que el nom d'usuari de columna i Vull que des de la primera fila amb ID 2. Aquesta és una manera de fer un Select. O el que puc dir, em donen cada nom d'usuari únic. O el que puc dir, em fa tota una fila d'aquesta taula, on el nom d'usuari és 1. Així que hi ha un parell de maneres diferents a fer consultes de selecció, en funció de com tota la informació que desitgi, Sempre es pot simplement seleccionar tot d'aquesta taula específica i després bucle a través d'ell, escollint les coses que vol. Però cal tenir en compte, si vostè està seleccionant un munt de coses a partir d'una taula i tenir una molt gran taula, que es durà a algun temps, així que és millor només per seleccionar coses que vostè va per acabar amb. També, amb Seleccionar i amb tots aquests altres comandaments SQL, així, estic que li dóna la versió bàsica. Però dic, estic seleccionant usuaris i vull imprimir-los en ordre alfabètic, Jo podria seleccionar tots els usuaris i després ordenar alfabèticament en el meu codi. O hi ha una manera d'escriure la selecta consulta, que selecciona les coses en un moda alfabètic, amb seu fora d'un columna específica, ja sigui ascendent o descendent. Així que tingui en compte que, molt del que voler fer, probablement es pot fer en la consulta a través d'un addicional atribuir. Així que buscar aquestes consultes en línia o les altres coses que pots fer amb ells consultes per ampliar-los. Finalment, l'última cosa que vols fer No és inserir alguna cosa o eliminar alguna cosa, sinó més aviat actualitzar alguna cosa. I això es fa amb l'actualització consulta, i una altra, el que la taula. I el que el canvi és el que vull fer? I als que fer fila o registre Vull fer aquest canvi? Qualsevol pregunta sobre SQL? D'acord. Així que tenim uns 15 minuts. I aquesta és l'última diapositiva que tinc. I és d'esperar, aquesta última diapositiva és una bona segue en el problema fixat, perquè la comprensió d'on volem inserir registres, esborrar-los, seleccioneu , I actualitzar-ens ajudaran entendre la lògica i el flux més gran del Butlletí de problemes 7. Llavors, jo sé totes les respostes a aquestes preguntes. No vaig a dir-te totes les respostes. Però si a algú més li agradaria presentar una pregunta al grup o respondre a una d'aquestes preguntes, podem utilitzar això com un punt per saltar parlar sobre el conjunt de problemes. O si algú té un més genèric pregunta fora del set problema, sent lliure de fer això també. I podem començar per aquí. Tingueu en compte que estar en silenci perjudica a tots. Sí AUDIÈNCIA: Així és la única manera de passar les variables cap i des de diferents pàgines web pàgines, o el més convenient manera, utilitzant POST o GET? JASON Hirschhorn: Així que sí, que és el la forma més convenient dir - quan algú omple un formulari - obtenir informació sobre una altra web pàgina, usant GET o POST. A causa de l'estructura que estem utilitzant en aquest conjunt de problemes, et donaràs compte que, moltes vegades, fer una altra pàgina. O ens rendim altre arxiu, no necessàriament una altra pàgina. Així que vam passar en una variable. I llavors, es fa una Pàgina HTML, utilitzant el informació d'aquesta variable. Això no és tècnicament passant informació entre diferents pàgines web. Això està passant informació entre els diferents arxius. Per això es pot utilitzar qualsevol variable per fer això. Però sí, si volíem passar informació d'una pàgina en particular a una altra pàgina, GET i POST faria ser la manera de fer això. Alguna altra pregunta sobre ajusta el problema? D'acord. Repassem, doncs, una específica part del problema establert. Vostè necessitarà, en un punt, mostrar la cartera d'algú en la pantalla. Què vull dir quan dic cartera, en el context d'aquest problema establert? AUDIÈNCIA: És com els estocs que es tenir com, moltes accions que posseeixin, el preu i la quantitat de els diners que els queda. JASON Hirschhorn: Això sona molt bé. Així que vull mostrar totes les accions de la seva propietat per a cada acció de la companyia accions i probablement el molt que això és val la pena, i després una variable independent, la quantitat de diners que tenen. Així que dic que vull descriure això. Anem a començar parlant del que vaig poder vaig a fer això, què taules estic haurà de haver de ser capaç de fer això. Si - AUDIÈNCIA: els usuaris també, i llavors, suposo vostè pot fer una taula anomenada Accions o alguna cosa per l'estil, que seria la quantitat que han adquirit. JASON Hirschhorn: OK. Així que vaig a necessitar una taula anomenada Els usuaris, que realitza un seguiment de la nom d'usuari, és de suposar, probablement, alguna identificació, Probablement la contrasenya d'un individu. Què és més que vostè Acabes de dir que està associada? Algú més de Michael, el que és alguna cosa més que està associada amb cada usuari, única per a ells? AUDIÈNCIA: ID. JASON Hirschhorn: ID - el que és una cosa que estem probablement voldrà mostrar en aquesta pàgina? AUDIÈNCIA: El seu nom. JASON Hirschhorn: El seu nom - el que és altra cosa relacionada amb aquest conjunt determinat problema? AUDIÈNCIA: Quin estocs de la seva propietat - JASON Hirschhorn: No van a ser molt més del que les reserves que tenen. Què és un valor específic, però, que tindran associats amb ells? Com van a comprar i vendre les seves accions? AUDIÈNCIA: Cash. JASON Hirschhorn: Són tindrà diners en efectiu. Així que cada usuari tindrà un valor per diners en efectiu. I això serà únic per a cada usuari. Així que a la taula de l'usuari, fa sentit de posar en efectiu. Es podria, per descomptat, crear un altre taula que té ID d'usuari i la valor dels diners en efectiu. Però això no té sentit. Té sentit només cal posar tot això en una sola taula. Així que tindrem una taula amb aquesta informació. I llavors, què hi ha de l'altra taula tindrem? Vostè ha dit, una taula d'Estocs. El que estem posant en la taula d'accions? Qualsevol persona, les idees - AUDIÈNCIA: L'empresa. JASON Hirschhorn: Anem posar en el nom de la empresa, per la AAPL per a Apple. Sí AUDIÈNCIA: Quantes accions i tot el que valen. JASON Hirschhorn: Quantes accions, el molt que val la pena - el que és més que necessitar en aquesta taula? AUDIÈNCIA: Un ID d'usuari per a indexar. JASON Hirschhorn: Un ID d'usuari. Així que en aquesta taula, anem a probablement - diguem, si es tracta d'algú que és amo de tres accions, tres files, cadascuna amb aquest ID d'usuari o l'usuari d'aquest individu ID, però un altre nom d'empresa, un diferent nombre d'accions presumiblement, i un valor de preu diferent per a cada d'aquestes poblacions. Un cop més, el que estic dient ara no és necessàriament l'aplicació, perquè t'adones que hi ha alguna cosa més formes eficients per posar-la en pràctica. Però aquest és un bon lloc per començar. D'acord. Així que aquestes són les dues taules que tenim. Ara volem mostrar aquesta pàgina. Quin és el primer tipus de consulta hauríem de fer. A cada pàgina, suposa que és un usuari és connectat, tenim la seva ID d'usuari. Llavors, quin és el primer tipus de consulta hem de fer? Sí AUDIÈNCIA: El seu identificador d'usuari. JASON Hirschhorn: Tenim seva ID d'usuari, quan estem començant a codi a la a partir de la nostra pàgina. Així que quin és el primer tipus de consulta que que hagi de fer, tenint en compte ID d'un usuari? Vam més dels quatre tipus. Hi ha només quatre respostes possibles. AUDIÈNCIA: És seleccioneu un registre. JASON Hirschhorn: A Seleccioni - volem seleccionar des de l'usuari de taula per aconseguir, diguem, la seva quantitat de diners en efectiu. I podem imprimir la quantitat de diners en efectiu a la part superior de la pantalla. D'acord. Quin és el següent tipus de consulta que volem fer? Tenim algunes altres coses hem de mostrar. Aquests es guarden en una altra taula. Llavors, com aconseguirem això? AUDIÈNCIA: Vostè selecciona per a ells. JASON Hirschhorn: A Select - una vegada més, només hi ha quatre opcions. Seleccioneu probablement sons com la correcta. Així que hem de fer una altra consulta de selecció, de nou utilitzant l'ID d'usuari. I ara, volem tornar no només un fila, bu totes les files que coincideixen amb la nostra criteris, en els quals l'ID d'usuari és igual a 1. I després podem anar i deixar que un bucle de només imprimir tots aquells a terme a la pantalla, potser imprimir l'empresa de cadascun dels de la pantalla. Genial, això sona com que és mostrant una cartera, no gaire més complicat que això. Acceptar, l'usuari decideix llavors que tenen un munt de diners de sobres. I volen comprar alguna cosa de més accions d'una acció. Diguem, que ja posseeixen Les accions d'aquesta empresa també. Així que van a la pàgina de compra. Ells d'entrada del nom de la companyia. Què és la consulta, després de l'entrada de la El nom de l'empresa, que cal executar el següent? Sí AUDIÈNCIA: Actualitzar. JASON Hirschhorn: Actualització - i el que taula vols actualitzar? AUDIÈNCIA: La seva taula, basada en el seu número d'identificació? JASON Hirschhorn: Així actualitzar No Mesa de l'usuari - pel que actualitzar la taula d'accions, on el ID d'usuari no només coincideix, però la nom de valors també coincideix. Vostè obtindrà algun valor. I llavors, vostè voldrà prendre aquest valor i afegeix, però moltes de les poblacions que vol comprar de la mateixa. Així que vostè no vol a cegues sobreescriure aquest valor. Però es pot, de fet, donar aquest primer valorar i simplement actualitzar-lo. Vostè pot fer com un punt a favor és igual, i no només un signe d'igual. Què és una cosa, encara que - si estem pensant en això i volem ser el més sòlids possibles - que hem de fer abans de córrer que consulta d'actualització? Ells volen comprar cinc anys d'Apple. Cada acció d'Apple és de $ 200. AUDIÈNCIA: Cal comprovar els diners primer. JASON Hirschhorn: Hauríem comprovar els diners primer. Hem d'assegurar que tenir prou diners. Quin tipus de consulta podem executar per segur de tindre prou diners? AUDIÈNCIA: Un altre Select. JASON Hirschhorn: A Seleccioni - seleccionem en funció del seu ID d'usuari, per obtenir el seu valor de diners en efectiu. Feu un càlcul ràpid. I si això fos aprovat, que tenen prou diners en efectiu. Després podem executar la nostra actualització. O potser, si no, es passa a continuació. Els donem una advertència. D'acord. Dir que no tenen una empresa. Estan comprant una nova empresa. Estan comprant Microsoft. Quin tipus de consultes és el que volem fer, si volen comprar Microsoft? I ells no són amos de qualsevol Microsoft. No Manu, ningú, ningú més de Marcus? Carlos - AUDIÈNCIA: A Select, per assegurar que tenen prou diners. JASON Hirschhorn: Sona bé. AUDIÈNCIA: I després d'inserir a la [inaudible]. JASON Hirschhorn: Exactament, som voldrà inserir a la taula d'Estocs. I anem a voler inserir. Podem afegir-li el ID d'usuari, el nom de l'empresa, i el nombre d'accions que volen comprar. Quines són algunes altres operacions que són pàgines o funcionalitat que vostè està haurà de posar en pràctica en el P-Set 7, perquè nosaltres fóssim de nou? AUDIÈNCIA: En realitat, com que m'he Realitzar una consulta sobre aquest. Abans de mostrar la cartera, en cas de que xecs la pàgina web de Yahoo per assegurar-se que els preus de les accions no han canviat? JASON Hirschhorn: Això és sons com una bona idea. Així que el que està dient és Marcus, OK, les accions de els preus estan canviant constantment. En les poblacions de les quals siguin titulars de taula, la nostra taula anomenada Estocs, podríem salvar la preu de les accions que va comprar en. Però això no sembla que robusta, pel fet que el preu de l'acció és constantment canviarà. Així que de fet, és probable que no necessita per guardar el preu de l'acció. Però cada vegada que mostri el seu cartera, actualitzar o actualitzar la preu de l'acció. I si vostè té - i que ja té. Sé que tot ha mirat al problema retarda ja. S'han adonat que hem escrit una mica de codi per a vostè que li permetrà per obtenir el preu d'una acció, donat el nom d'una empresa. Així que sí, que probablement sona una mica més robust. Però aquesta taula no necessàriament ha per guardar el preu de l'acció. D'acord. Quines altres funcionalitats li de posar en pràctica aquesta setmana que podem parlar? Vull parlar sobre ells. Què és el que vols parlar? És probablement en aquest spec. M'agradaria simplement desplaceu-vos cap avall fins a la part inferior de l'especificació i em pregunten la primera paraula es veu que no té sentit. Una altra funcionalitat - parlarem d'un. Anem a començar per aquí. AUDIÈNCIA: Gravació de les històries. JASON Hirschhorn: Enregistrament la història, la gran un. Així que hauràs de seguir la pista d'una història de les transaccions. ¿Així que vols fer un seguiment de tots els vegada que compren o venen una acció. Vaig comprar la meva acció. Acabem de dir, probablement tingui sentit per incloure Seleccioneu, per aconseguir la seva quantitat de diners en efectiu i comprovar de nou. Probablement és intel · ligent, llavors per incloure una inserció o una actualització, depenent de siguin o no propietaris d'aquestes accions. Si també volem fer un seguiment de una història, com podem fer això? Això van en la taula accions? AUDIÈNCIA: No JASON Hirschhorn: No és probable va en una taula diferent. Perquè diu vostè compra 10 les accions d'Apple. Després de comprar altres 10 accions. Vostè vol remolcar registres separats. Aquests són dues operacions separades. Així que tenim una altra taula, una taula de la Història. Així que de nou, que comprem. Executem un Select, a continuació, una inserció o una actualització. Què fem ara? Quina és la propera consulta executem quan ens anem a comprar alguna cosa? Volem fer un seguiment de la història. Sí AUDIÈNCIA: Vostè vol fer un seguiment de transaccions fallat també. JASON Hirschhorn: Bé, abans de dir quin tipus de transacció, ¿Què és el que volem - Quin tipus de consulta, Carlos, seria ens permet fer un seguiment de les coses en general? Tens quatre conjectures. Quin et sembla? AUDIÈNCIA: Actualitzat. JASON Hirschhorn: No actualitzar. Quina és la teva segona suposició? AUDIÈNCIA: Selecció. JASON Hirschhorn: Per conservar pista d'alguna cosa, és probable que vulgui anotar en algun lloc o guardar per més tard. Així que si no s'actualitza, llavors - AUDIÈNCIA: Inseriu ella. JASON Hirschhorn: Inserir, allà anem. Sí, per la qual cosa seleccionar la quantitat de diners que tenen, sona molt bé. Ells no tenen prou diners en efectiu. Aquesta transacció no funcionarà. No, no cal fer un seguiment de una transacció si no funciona. O pot, si vol donar-los una mala estona. Però vostè no ha de fer-ho. A continuació, s'insereix o actualització a la seva taula d'Estocs. I ara, vostè té la seva altra taula. Vostè té la seva taula d'historial o el que sigui que vulguis dir. I en aquesta taula, vas per inserir una nova fila. Això probablement va a tenir l'ID de l'usuari. Probablement tindrà el nom de l'acció. Probablement tindrà una vegada que ho van fer. I en aquest cas, vostè ll probablement voleu inserir el preu. Perquè per a una història, no ho saps importa el que el preu actual és. A vostè li importa el que el preu és quan que compren o venen alguna cosa. Així com sona, per posar en pràctica la compra la plena participació d'un nombre de diferents Consultes SQL, però, sincerament, no que gran part general de codi. D'acord. I que s'ocupa de la història. Diguem que volem mostrar la nostra història. Parlem sobre la visualització nostra cartera. Com podem mostrar la nostra història? AUDIÈNCIA: Presumiblement cronològicament. JASON Hirschhorn: Presumiblement cronològicament - ho consulta què creus que faríem servir? AUDIÈNCIA: Una selecta. JASON Hirschhorn: Una selecta - seleccionar potser totes les files d'aquesta taula que coincideix amb l'ID d'usuari i després mostrar cronològicament, sona bé. Hem de escriure el codi per ordenar a través d'aquesta llista? AUDIÈNCIA: No, perquè vostè li va dir nosaltres hi ha una ascendent i descendint cosa. JASON Hirschhorn: Cosa? AUDIÈNCIA: Si. JASON Hirschhorn: Si. Acceptar, no encengui en el codi per a mi, perquè ordena manualment a través de les consultes, per ordenar-los. Ja està, ja que el codi. Vostè pot escriure una consulta de selecció que ordena les coses. Pot ordenar els anuncis per endavant i després imprimir-los. Té molt més sentit fer-ho d'aquesta manera, que al revés. Sí AUDIÈNCIA: Necessitem ordenar per endavant? Això vol dir ordenar a la base de dades? JASON Hirschhorn: La consulta de selecció els torna a vostè ordenat. Així que fer això, i no només els tenen tornaré a vostès en un ordre aleatori i després ordenar a tu mateix. Sí AUDIÈNCIA: Hi ha una manera de mantenir-lo ordenats en la pròpia base de dades, de manera que vostè no ha de classificar cada vegada que - AUDIÈNCIA: Pot inserir ordenada? JASON Hirschhorn: Pregunta - Què importa que les coses són ordenats a la base de dades? AUDIÈNCIA: No JASON Hirschhorn: Bé, s'ordenen. Estan ordenats cronològicament. Però anem a suposar que les coses s'ordenen cronològicament, de dalt a baix. Tenim una forma de Google. Cada vegada que algú respon al nostre Google forma, només es va posar al part inferior de la taula. És important que les coses són Sense ordenar cronològicament? AUDIÈNCIA: Si no és cronològic, no cal ordenar cada vegada vostè pren info terme. Però si ja està ordenada, no podeu no ha de fer això addicional crida a la funció? JASON Hirschhorn: Així que això és realment un bon punt. Per a nosaltres com a programadors, que podria ser important. I el que es vol trobar una base de dades això no vol arreglar les coses cronològicament. O la creació de la nostra base de dades, de manera que manté coses ordenats per ID d'usuari. Així que d'aquesta manera, per exemple, tenim 1000 identificador d'usuari. O Facebook, tenim milions ID d'usuari. No volem que la nostra taula per ser només atzar o la base de dades a ser a l'atzar. Estaria bé si tot el ID d'usuari es van classificar. Llavors podríem fer cerques binàries a la nostra taula i després trobem tros específic. Així que sí, en funció de - si augmentem, el que es vol trobar una base de dades que les coses seguien ordenats d'una manera diferent manera, de manera que aquestes consultes prendria menys temps. I nosaltres no hem d'anar a través del nostre tota la base de dades en cada fila individual a una taula donada. Però el nivell que estem treballant en el, podem no s'han de preocupar de mantenir coses ordenades. Podem suposar que el temps que triga aquesta consulta a córrer serà insignificant, tenint en compte el que estem tractant. Però sí, gran idea - com podem augmentar l'escala, podria tenir sentit per dissenyar la nostra base de dades en una mica d'una manera diferent. Una base de dades de disseny d'última cosa que vull esmentar també, perquè es vol es qualificarà o anotat més bé, en el disseny de la base de dades. Ja parlem d'això. L'efectiu és únic per a cada usuari. Així que tens una taula anomenada en efectiu que té el seu ID d'usuari i la quantitat de diners en efectiu i després una taula anomenada usuaris que té el seu usuari ID i el seu nom d'usuari. Aquestes taules de ruta a cada altre un-a-un. Probablement té sentit per que siguin una sola taula. Així que anem a assumir que tens un usuari taula que segueix la pista de noms d'usuari i diners en efectiu. Ara té una taula que té el poblacions d'un individu posseeix. I una persona pot tenir més d'una població. Així que aquests no s'assignen a cada altre un-a-. No té sentit tenir un gegant taula que té 30 registres que tot repetir un nom d'usuari, perquè tots repetir una contrasenya, que tots repetir un nombre de diners en efectiu. Però cada un té potser una acció diferent nom o preu d'una acció diferent. No té sentit tenir que molts discs grans. Tingueu seny en crear aquests bases de dades, de manera que vostè no està fent alguna cosa ximple com això, repetint una gran quantitat d'informació innecessària. D'acord. Tenim dos minuts per al final. La gent fos molt contents d'unir-se a nosaltres o probablement, és de suposar, crear la seva pròpia classe. Algú té alguna pregunta abans d'acabar cap amunt? OK, això era de fet un remolí través de tot. Demano disculpes que havia de ser tan ràpid i que no podíem ser tan pràctic aquesta setmana, ja ho hauria fet agradat ser. Però si vostè té alguna pregunta sobre tot el que vam ser o gens en aquest problema set - presumint que vostè ho ha llegit i posar en un esforç de bona fe - no dubti en enviar-me un correu electrònic o poseu-vos en contacte amb mi. Estic més que feliç de treballar a través d' el seu codi amb vostè o respondre a qualsevol preguntes que tingui. Tingueu en compte que, aquesta setmana, una gran quantitat de seu temps es gastarà l'aprenentatge de la nova sintaxi i tractant d'entendre com escriure consultes SQL o PHP funcions o tracte amb un framework MVC. Una gran quantitat del seu temps aquesta setmana, probablement no es tracta d'esbrinar la lògica boja que estem demanant que facis. Molt d'això ens vam anar una altra vegada és relativament senzill. Així que això no vol dir que esperi fins a l'últim minut. Però sí vol dir ajustar la forma de fer la seva treballar en conseqüència, per assegurar vostè està entenent i l'aprenentatge de la sintaxi. Així que no ets, de sobte, sabent exactament el que vols fer, però sense tenir ni idea de com exactament escriure. Bé, ens veiem la setmana que ve.