[RIPRODUZIONE DI BRANI MUSICALI] ALLISON Buchholtz-AU: Va bene, tutti, bentornato alla sezione. Speriamo che abbiate passato un grande Weekend di Halloween, o Halloweekend, come mi piace dire, tutto riposato e recuperato. E per fortuna non nevica più. In realtà è fuori di sole. Sono stato vero e proprio felice di questo. Non sei ancora pronto a trascinare i miei stivali invernali. Speriamo, pset6 è andato abbastanza bene. Se siete stanchi di C, sono felice a dire il gioco è fatto con C per ora. Abbiamo pienamente la transizione in programmazione web, così potrai lavorare in HTML, PHP, forse un po 'di JavaScript. Non so che cosa la prossima settimana di pset è, quindi non posso garantire che cosa il vostro prossimo pset sarà essere, ma pset di questa settimana è CS50 Finanza, che è fondamentalmente attuare il tipo di pagina web che ti permette di acquistare e vendere magazzino, e tenere traccia di loro. Ed è abbastanza freddo, perché tutti di esso è generato dinamicamente. Si possono avere diversi utenti che hanno ciascuno le proprie informazioni, e si sta andando ad essere attuazione di tutto questo. Ci vuole un po '. Sono assolutamente convinta che questo è più facile di C p-set, ma ci vuole più tempo. Stai imparando una nuova lingua, PHP, che è molto simile a C, ma naturalmente c'è bisogno di a guardare in alto sintassi e capire come convertire da una lingua all'altra. Ma non credo che ci sia qualcosa eccellente concettualmente difficile di questo pset. E 'solo l'apprendimento della nuova lingua e ottenere attraverso tutti questi piccoli pezzi. Se voi ragazzi avete letto attraverso le specifiche, è piuttosto lungo. Penso che questo è come 21 pagine, se non ricordo male. E 'una lunga spec. Quindi, se non avete letto it-- 22. 32. Wow. Quindi ero fuori del 50% lì. Così, 32 pagine. Quindi è lunga. Ci sono un sacco di pezzi, ma nessuno dei pezzi dovrebbe essere così male. E 'solo un sacco. Quindi sicuramente iniziare presto se possibile, come al solito, ma penso che dovrebbe sentire un po ' più bello soprattutto i p-set come recuperare e ridimensionare, che sono solo molto difficile da avvolgere la testa intorno. Quindi, con questo, stiamo andando a tuffarsi in. Non ho la tua agenda far scorrere oggi, ma siamo sta per essere parlare di PHP. Sarò dando una specie di corso intensivo su alcune cose che si potrebbe desiderare di sapere su PHP. Diverse cose di sintassi, cose da guardare fuori per. Stiamo andando a parlare un po 'di SQL. Le cose molto semplici lì, e quindi anche MVC è Model View Controller, che è come il vostro pset è impostato, in modo da capire come tale opere saranno super utile. Bene. Così PHP. Voi ragazzi avrebbero dovuto fare qualcosa di molto, molto semplice con PHP, che è questa cosa qui in basso, dove hai inviato qualche forma sulla alto qui che ha avuto qualche nome che si ingresso, e sarebbe come dire ciao, Ben, o ciao, Allison, e sarebbe pop-up. Quindi, questo è in realtà quello che dovrebbe già sembrava dal pset, nel caso in cui voi ragazzi volevano sapere o non riusciva a capirlo. Ma abbiamo questi punti interrogativi qui che indicano che si tratta di PHP. Avvolgono, e poi htmlspecialcharge, ricordate, è solo, fare in modo che sei al sicuro da un eventuale attacco di iniezione pazzo o se qualcuno cerca di mettere caratteri dannosi folli nel vostro campo del nome, non è così come il server o roba del genere. E poi se notiamo, questo HTML forma aveva un metodo di $ _GET, che, se ricordiamo i nostri superglobals da PHP, $ _GET, $ _POST, andremo in quelli un po '. Ma noi sappiamo di avere qualche nome Qui corrispondente al nome che abbiamo presentato. Quindi questo è solo un po 'come il molto semplice collaborazione PHP HTML che voi ragazzi avevate da pset sei. Ma che in realtà non rispondere a ciò che è PHP. Ovviamente si tratta di una lingua, ma non abbiamo davvero parlato in questa sezione, quindi c'è un po 'di più su ciò che PHP è in realtà. Quindi PHP è solo PHP preprocessore ipertesto. In realtà è considerato un linguaggio di programmazione perché ha logico, mentre se ci ricordiamo a parlare di HTML, abbiamo chiamato che un linguaggio di markup contro un linguaggio di programmazione a causa HTML è strettamente modifica come le cose sembrano sulla pagina. E 'solo la modifica se una cosa è audace, o se si tratta di una forma, elemento, o qualcosa del genere. Non ha alcuna logica. Non ha loop o condizioni. Non è possibile errore di controllo le cose. Si potrebbe o visualizzare cose in un certo modo o chiedere le cose da parte dell'utente. Questo è tutto. Quindi, con PHP, in realtà non ci permettono a fare tutte queste cose più logiche, come convalidare l'input o manipolare in qualche modo. Siamo in grado di combinare con HTML, come abbiamo appena visto nella tua ultima pset e in questo momento, e ci permette di creare queste pagine web dinamiche. Quindi, se voi ragazzi ever-- non so se tu eri come me, ma nella scuola media ci hanno fatto prendere questa classe IT in cui abbiamo creato solo le pagine web HTML, ed erano statiche e fare clic intorno ad altre cose, ma non hanno mai cambiato. Con quelle dinamiche, quello che possiamo fare è, come con CS50 Finanza, si sta andando ad avere diversi utenti. A seconda di quegli utenti " preferenze, e che cosa stanno comprando o quello che stanno vendendo per le loro azioni, si sta andando a visualizzare cose diverse. Quindi, se c'è qualche caratteristica identificativa per l'utente che utilizza questo pagina web, possiamo in modo dinamico decidere cosa visualizzare per loro. Non è la stessa cosa per ogni singolo persona, che se abbiamo avuto solo HTML, la pagina sarebbe la stessa per ogni singola persona che ha visitato. PHP ci permette di personalizzare le pagine. E poi possiamo o metterli in lo stesso file, che, come nel caso prima qui, abbiamo visto che abbiamo HTML tutti qui e poi abbiamo questo po 'di PHP. Possiamo fare così, o con CS50 Finanza, se voi ragazzi hanno guardato il files-- e dovremmo avere il tempo per passare un paio di loro insieme alla fine del ci section-- si può vedere come si può in realtà tenerli separati, che in realtà è una cosa di meglio da fare. So. Corso accelerato. Tutte le cose veloci semplici potrebbe essere necessario conoscere per PHP. Dichiarare le variabili. Quello blu è un po 'fastidioso, ma spero che voi potete vedere. In caso contrario, ti scrivo sulla scheda di gesso. Le variabili che dichiarano. Una cosa da sapere è che, a differenza di C, PHP è liberamente o dinamicamente tipizzato, il che significa che non è necessario raccontare una variabile che tipo è. Si può semplicemente dire qualche variabile è uguale a quello che vuoi che, e deciderà il tipo di quella variabile in fase di esecuzione per voi. Come si vedrà, questo può creare alcune cose molto interessanti. Ma per la maggior parte degli scopi, si non c'è bisogno di specificare il tipo. È possibile, ed è possibile digitare lanciare le cose come si fa normalmente non avrebbe visto se si desidera costringerlo ad essere un certo tipo, ma non è necessario. Non sta andando a urlare contro di voi se si dichiara una variabile e non specificare un tipo per esso. Quindi, nel caso in cui non riesci a leggere questo-- Io so che non è il migliore. Ho pensato che sarebbe presentarsi better-- il modo si inizializza qualsiasi variabile è solo con il simbolo del dollaro, cosa si desidera chiamare, e allora quello che stai assegnandogli. Quindi, in questo caso, questo è un $ var = 3. Quindi, se mai usa $ var da qualche parte, lo farà solo essere lo stesso mettendo 3 lì. Ok? Quindi, qualsiasi variabile, solo simbolo del dollaro, a prescindere che si desidera chiamare la variabile, e quello che vuoi alla parità. Po 'più fresco. Meno di scrivere per l'inizializzazione una variabile, giusto? Questo fa senso per tutti? Basta veloce differenza sintassi tra C e PHP. Gli array sono molto più fresco in PHP. Siamo in grado di dare loro le chiavi. Quindi il modo di pensare è che, se mai voluto per accedere a un elemento all'interno di un array, abbiamo bisogno di sapere il Indice di esso, giusto? Così sappiamo che con C, si potrebbe accedere al primo elemento facendo staffa di serie pari a zero, o se ci desidera che il primo elemento, staffa di serie uno. E se volevamo qualcosa in là, potremmo solo devono scorrere, a meno che in realtà sapevamo l'indice. Una cosa che è veramente fresco con array PHP è che sono ciò che chiamiamo associativa. Così possiamo associare qualche chiave di un certo valore, e in realtà stiamo andando a-- vi mostrerò come possiamo usare questo in un secondo. Ma in fondo, se vi capitasse di voler per inizializzare un array del genere, avete un po '$ array. Quindi, nello stesso modo, è solo alcune variabili che stiamo creando. Questo potrebbe essere chiamato tutto quello che volevamo. Questo potrebbe essere $ esempio. Solo un altro variabile. Ciò che lo rende un array è la sintassi staffa che abbiamo qui. Proprio come normale C. E noi avere una chiave per un certo valore. Così key1 va a valore1, key2 due va a valore2. Queste coppie sono separate da una virgola, proprio come gli array normali. Tuttavia. Grande. Le chiavi sono opzionali. Non è necessario usarli. E se non lo fai, allora è solo normale. Domanda? O, oh. PUBBLICO: Beh, sulla destra. Dov'è la memoria viene? Può anche essere la stessa come [Incomprensibile] e dalla pila? È che anche con PHP? Come quando li stiamo collegamento? ALLISON Buchholtz-AU: Con PHP, Noi non tendiamo preoccuparsi di dove il nostro memoria viene. Non spendiamo un sacco di tempo a parlare di questo, quindi non è davvero niente avete bisogno di preoccuparsi. Così tasti sono opzionali. Allo stesso modo, se non lo fai Per rendere questa associati, si desidera solo una matrice normale in cui matrice zero è il primo elemento e la matrice è il secondo elemento, si può fare esattamente come si farebbe in C. avete un po ' variabile che sta per essere l'array, ed è uguale a queste parentesi qui. Sì. PUBBLICO: Ha il stesso punto alla notazione. Come posso fare come una matrice ++, e che punti al secondo. ALLISON Buchholtz-AU: è possibile fare-- Beh, si può avere un po 'iteratore, i, che si può fare i ++ e fare un array di i nella stessa maniera. Ma questo è tutto. Così, come in questo caso, serie di 1 sarebbe pari 20. Stesso tipo di notazione di indicizzazione. Questo è fondamentalmente solo una cosa implicita Qui, dove si dice zero, zero a 10, 1 a 20, 2 a 30. E 'solo chiavi implicite per esso. Cosa cambia con PHP è che ora avete il potere riassegnare le chiavi per fare tutto ciò che vuoi. Quindi una cosa è qui. Così ho solo alcuni esempi qui che ho scritto per voi ragazzi perché mi sento come esempi sempre aiutare di più che la semplice astratta. Quindi, in questo caso qui, avere qualche array associativo questo è il mio primo nome, il mio cognome, e io sto facendo eco, che è solo a tutti gli effetti qui andare in stampa verso l'uscita qui. E dice, OK. Stampate il valore che corrisponde alla matrice a chiave Allison. E posso anche inviare voi ragazzi tutto questo codice dopo le lezioni. Così, quando si corre questo, che cosa fare pensi che succederà? Cosa sta succedendo a stampare? PUBBLICO: Il tuo cognome. ALLISON Buchholtz-AU: Il mio cognome. Lo fa. Proprio qui. Stampare. Quindi, se dovessimo cambiare questo e noi dovevano aggiungere qualcun altro al nostro list-- Quindi diciamo che abbiamo Emma qui, e noi associamo la tua ultima nome-- Vediamo se ho incantesimo questo diritto. PUBBLICO: Sì. ALLISON Buchholtz-AU: Sì. PUBBLICO: Buon lavoro. ALLISON Buchholtz-AU: Lovely. Così ora se abbiamo questo qui e abbiamo voluto trovare il tuo cognome, hai lì. Così si può solo pensare di esso la sostituzione di questa chiave qui. Stai solo sostituendo l'indice. Quindi consente di cercare solo attraverso una matrice molto più facile. Non è necessario conoscere l'indice. Fino a quando questo tasto che stai cercando per esiste da qualche parte nella matrice, PHP lo troverà e restituirà il valore ad essa associato. Quindi ti dà molto di più il potere con gli array. Sì. PUBBLICO: Se si dispone di due tasti le stesso, intende dare un errore? ALLISON Buchholtz-AU: Si dovrebbe darvi un errore, sì. Questo fa un po ' più senso per voi ragazzi? E nello stesso modo, abbiamo un array qui che non ha alcun tasto. Anche questo è una sintassi che si potrebbe desiderare di essere a conoscenza, perché si necessario utilizzare questo nella vostra pset. Ogni volta che si sta facendo un eco, ci sono queste citazioni, e ogni volta che ti riferisci a parte di un array, è necessario disporre di questi parentesi graffe intorno a loro. È un po 'fastidioso, ma devi solo farlo. Quindi, solo una cosa da tenere a mente. Se si sta eseguendo in errori di, So che questo esiste nella mia matrice ma sta gettando errori a me, provare a mettere parentesi intorno ad esso e dovrebbe funzionare. Quindi in questo caso qui, questo è un normale serie C che siamo abituati. Dispone di tre, cinque e sei, e abbiamo appena Per stampare il primo elemento, quindi questo dovrebbe stampare tre. E ho fatto eseguire tutti questi, in modo da speriamo che nulla è cambiato. Vediamo in fondo qui, esso stampa solo tre. Freddo. Che senso ha per tutti? Array associativi. Molto più fresco rispetto array normali. Questo è why-- fece Davide si mostra l'attuazione di PHP pset6 durante la lezione a tutti? Ok. Quindi, ti faccio vedere. Non so fuori dal t-- PUBBLICO: Ha fatto la settimana scorsa. ALLISON Buchholtz-AU: Era la settimana scorsa? PUBBLICO: Sì. ALLISON Buchholtz-AU: Sì. Così ortografico può essere realizzata in come sei linee con PHP, e parte del potere di quella è questo array associativo dove si può solo caricare ogni parola, e lo avete uguale vero o falso. E così si può dire, oh. Dizionario tornare a un certo termine, e se è lì, restituirà true. Altrimenti, non troverà e si tornerà falso. Quindi una specie di piccola cosa fredda. Bene. Quindi questi sono gli array associativi. Sono piuttosto fresco. Mi piacciono molto. E ovviamente Questa poi Ah. Ok. Ora si sta lavorando. Forse. Ok. Un'altra cosa. Così, con l'uguaglianza, solo un cosa interessante da tenere a mente. Con PHP, perché viene digitato in modo dinamico, il tipo può variare a seconda di quando lo si esegue, come si sta eseguendo esso. Io in realtà sono un po 'di fresco esempi che io vi mostrerò ragazzi. Ma == verifica solo per la parità dopo tipo giocoleria. Quindi, se avete qualcosa che è come il personaggio 1 e il numero 1, PHP vi direbbe che quelli sono uguali perché in grado di destreggiarsi tra i tipi di due di loro fino a quando è uguale, che forse per il tuo caso va bene. Se avete bisogno di vedere se sono il stesso tipo di valore e lo stesso tipo, si desidera che questo ===. E non pensi di avere un caso in cui è necessario utilizzare tale nel pset, ma per un sacco di voi che andrete a fare pagine web per i vostri progetti finali e le cose, è una buona cosa sapere che == e === sono diversi, ed è una buona distinzione per capire. Ok. So. I cicli foreach. Sono un modo per scorrere un array. Così, proprio come gli array sono diventati così molto più fresco in PHP, il tuo modo di iterare attraverso una serie, credo, diventa anche molto più fresco e molto più potente. Così, invece di dover creare un po 'per i è uguale a 0 e qualsiasi altra cosa, e quindi aggiornare tale i come si passa attraverso, abbiamo questo ciclo foreach impressionante. Quindi, ecco la norma generale la struttura di questi due. Quindi hai i foreach alcune serie come il valore che si desidera scorrere come. Quindi questo è il nome della matrice variabile che si desidera fare riferimento, e questo è ciò che si vuole chiamarlo all'interno del ciclo. Ok? Quindi questo corrisponde ciascun elemento della matrice, e si utilizza questo valore all'interno di questo ciclo. Ho un esempio. So esempi sono molto meglio. E così questo è che se ci sono nessun tasto, quindi questo è come se non ci resta che uno in cui le chiavi sono gli indici normali per l'array. O questo è anche nel caso in cui si dispone di alcuna utilità per le chiavi. Se non si cura di le chiavi e basta voglia di scorrere con i valori per ciascuno di questi in qualsiasi ordine, va bene. È possibile utilizzare la struttura. Altrimenti, se vi sono tasti, il nostro $ Valore cambia solo per $ valore della chiave. Quindi cambia solo per una coppia di valori chiave. E poi si può fare riferimento a $ chiave e $ valore all'interno del nostro ciclo. Ok? So. Esempio. Rendere più bello. Ok. Quindi abbiamo questo qui, che abbiamo un po ' are-- È anche possibile creare un array come questo avendo un po 'variabile pari a matrice con parentesi, o si può semplicemente fare staffa. Si dovrebbe fare la staffa, ma questo è un altro modo per farlo. Quindi qui abbiamo alcune serie di tre elementi di uno, due e tre, e abbiamo il nostro foreach. Notare questo corrisponde array che stiamo iterare su, e questo è quello che stiamo chiamando ogni cosa nella nostra gamma. E tutto questo sta facendo è che è andare per stampare ogni valore. Quindi, se si corre si, ci accorgiamo che abbiamo avere un valore un valore di due, valore di tre. E nello stesso modo che in genere matrici devono essere di un tipo, matrici non devono tutte essere dello stesso tipo qui. Così ora abbiamo un po 'int. Abbiamo due stringhe. Così gli array possono ottenere molto più potente e forse un po ' bit Messier, a seconda sul modo in cui si desidera guardare. Così possiamo cambiare questo per tutto ciò che vogliamo. Usiamo valore. Questo è solo la cosa più normale che usiamo. Ma, solo importante sapere che possiamo chiamare questo contatore come se volevamo. E nella misura in cui corrispondono, ovviamente tutti sono felici. Se vi capitasse di voler eseguire un PHP eseguire qualcosa di simile a questo comando linea conosci questa qui, basta fare PHP, e allora qualunque file che si desidera eseguire. Quindi, se si vuole fare un giro con PHP, e più la logica e non si ha realmente bisogno di vedere come in un browser Web, si può semplicemente eseguire in la riga di comando del genere ed eco stamperà fuori quello che vuoi. Ok. L'altro modo che abbiamo è così. Quindi questo è un caso in cui forse si vuole di utilizzare sia la chiave e il valore, So che queste sono come Esempi di super-inventati ma spero che fanno un po 'più chiaro. Quindi qui abbiamo alcune serie di nuovo, ma questa volta, invece di avere sapete che c'è nessuna chiave. Abbiamo chiavi per ciascuna di esse. Così una sta andando essere una, b corrisponderà a due, ec corrisponderà a tre. E in questo caso, se scriviamo in questo modo, abbiamo accesso a entrambi chiave e valore per ciascuna di esse. Così, quando si corre questo, otteniamo ciascuno di questi. Così esso stampa le nostre chiavi e valori corrispondenti. Un'altra cosa interessante è che, e so detto come questo non aveva le chiavi, ma sempre ha implicitamente un chiave perché se non delegare una chiave, naturalmente, il chiavi sono solo gli indici o indici così abbiamo potuto sempre anche fare questo. Come questo. Io stampare. Quindi, in questo caso, se si nota, noi abbiamo le nostre chiavi implicite zero, uno e due qui. E nello stesso modo con questo, si può sempre e solo dire r come valore, e basta avere accesso al valore. Non ti importa della tua chiavi, anche se il vostro ha le chiavi, se non si cura di loro, non necessariamente bisogno di metterli nel vostro ciclo foreach. Non che abbia un senso per tutti? PUBBLICO: si può solo chiamare i tasti, troppo? ALLISON Buchholtz-AU: Yeah poteva assolutamente fare anche quello. In realtà, attendere. Resisti. avrebbe it-- No. Se si desidera avere il tasto, poi quello che dovete fare chiave per valore. PUBBLICO: Aggiungi valore. ALLISON Buchholtz-AU: Sì. E non si può mai usare il valore è tutto. PUBBLICO: OK. ALLISON Buchholtz-AU: Se si appena messo una cosa in là, sta andando a supporre che sei parlando del valore, non la chiave. Grande domanda. Bene. Freddo. In realtà, aspetta. Fammi vedere quello che ho. Quindi, prima di entrare in posta e ottenere, io semplicemente si vuole visualizzare i ragazzi un po ' su come è dinamicamente digitato, che è genere di freddo. Ho tutti questi. Ho come quattro esempi qui, e io ti manderò tutto questo codice dopo le lezioni. Quindi qui abbiamo qualche variabile a. Questo è solo 1 più 1, giusto? E stiamo andando a stampare ciò che questo è uguale a, e poi abbiamo un certo tipo. E qualcuno ha qualche ipotesi su che tipo sarà? PUBBLICO: Un int. ALLISON Buchholtz-AU: Sì, è un int. Quindi è solo li somma. Si tratta di un int. Tutto bene. Quindi questo prossimo, abbiamo che sembrano stringhe. Quando si esegue questa operazione, si pensa, oh. Si sta effettivamente cercando per aggiungere solo le cose. È solo un po 'confusa. Così sto solo andando a risolvere il problema per voi. Volevi dire int. So che volevi dire int. Quindi questo è uno dei modi per vedi, PHP ha una mente propria. Anche se abbiamo esplicitamente detto, guarda, questi sono stringhe. Voglio dire, la stringa di uno. Ma si dice, oh, ma si sta cercando di aggiungere loro, quindi è necessario significa che sia un numero intero. Fidati di me su questo. Quindi dice che è un numero intero, e li aggiunge come normale. Così genere di freddo se si sta andando a diventare pigri con le tue cose, o se si vuole aggiungere qualcosa. Una cosa bella è che, se si ripensa a PSet2, qualcosa che è stato utente immessi, a destra, che riteniamo è un carattere o una stringa in un primo momento. Ora non abbiamo esplicitamente dire, oh, fanno di questo un int. PHP sarebbe solo come, oh yeah. So che volevi dire un int. Sciocco voi. Non volevi una stringa. Quindi, in questo caso, ormai che abbiamo questo, che cosa ne pensate voi ragazzi sta andando a fare qui? Abbiamo una stringa e un int ora. PUBBLICO: E 'ancora un int. ALLISON Buchholtz-AU: E 'ancora un int. E la ragione è-- mi avrebbe messo altri esempi, ma il divertimento di questo. La ragione che sta facendo è perché è come si sta cercando di aggiungere cose. Quindi, se si sta cercando di aggiungere cose, ho intenzione di assumere, ragionevolmente, hai qualcosa ragionevole che si potrebbe aggiungere. Sto solo andando a fare è un int, e stiamo solo andando ad aggiungere che, come al solito. E poi lo stesso modo, pensate voi ragazzi l'idea. Abbiamo anche questo qui, che è solo carbonizza, e fa la stessa cosa. E 'come, è l'utente sciocco. si sa che si desidera un int. PUBBLICO: Se mettiamo una lettera, la volontà che faccia il valore [incomprensibile] o no? ALLISON Buchholtz-AU: Oh, questa è una buona domanda. Vediamo. No, ancora è un int. Quindi è un po 'pazzo. Questo è solo un po 'di visualizzare PHP a volte può comportarsi in irrational-- Non totalmente irrazionale, ma potrebbe comportarsi in modi che non si ha realmente aspettate. Così, in caso di dubbio, controllare i tipi di cose. Questa funzione GetType può essere super utile. In genere, se si sta facendo qualcosa con plus o eventuali operatori matematici, sta andando ad assumere qualsiasi cosa ragionevole è solo un int. Quindi, avete char 1, o di un stringa 1, o l'attuale int 1, sta andando a supporre che. Se si desidera typecast qualsiasi cosa, lei è completamente possibile. Si potrebbe fare qualcosa di simile raddoppiare qui, credo. E in questo caso, sta andando a dire, oh. Farò questo un doppio perché hai esplicitamente detto che è una doppia. Puoi sempre in modo esplicito rendere PHP fare qualcosa, ma. PUBBLICO: Aspetta, perché è un plus 1 lì? ALLISON Buchholtz-AU: Oh. Là. Era solo l'eco. Quello era colpa mia. Quindi, si può dire in modo esplicito a fare qualcosa di un certo tipo, ma la maggior parte del tempo, sta andando a decidere dinamicamente in fase di esecuzione. Così sta andando per andare avanti attraverso e sta andando essere come, OK. Ciò che rende il più senso per questo di essere? Dovrebbe in realtà essere una stringa? Dovrebbe essere un int? Dovrebbe essere un float? Dovrebbe essere una doppia? E si deciderà per voi. Si può costringerlo a fare ciò che si vuole, ma-- PUBBLICO: Questo la rende più lenta? ALLISON Buchholtz-AU: Beh, Voglio dire, C è molto efficiente. Penso che sia decisamente più lento perché deve il processo di come sta andando. C, sono quasi sicuro che è più veloce. Ma ovviamente c'è un sacco di cose interessanti in qui che non si deve preoccupare. Quindi, se stiamo cercando attraverso una matrice, abbiamo non c'è bisogno di creare effettivamente un po 'di ricerca attraverso l'array. Possiamo solo chiedere la chiave PHP e si prenderà cura di esso. Freddo. Impressionante. Sembra che alla fine dei miei esempi. Voi ragazzi non sono mai andare dimenticare che ora. Si sta andando ad essere come, oh, PHP è solo come quella mamma che è come no, no, no. So cosa vuoi dire. So quello che vuoi. Ok. Quindi questo è, si spera, utile per la vostra pset, almeno nel principio, perché siete tutti su come trattare con le forme e le cose da parte dell'utente. Quindi ci sono due modi in cui passare intorno informazioni con PHP e HTML quando stiamo passando tra queste due cose. Così abbiamo $ _GET, che è passato attraverso l'URL, e abbiamo $ _POST, che è passato nel messaggio corpo, e così lo consideriamo nascosta. Ma una cosa da capire è che nessuno di questi sono considerati sicuri. Se hai qualcuno che è intercettare i messaggi in corso avanti e indietro tra voi e il del server, possono ancora ottenere questi dati. Hanno solo a guardare un po 'più difficile. Non è davvero che-- è appena nascosto dalla URL. E 'ancora nel corpo del messaggio, però, quindi se hanno accesso a tale, è davvero solo like-- E 'come la differenza tra qualcosa essendo scritto sulla parte esterna un essere busta e qualcosa scritta su un pezzo di carta all'interno. Non è così difficile da aprire la busta e ottenere il pezzo di carta all'interno. Certo, sarebbe molto più facile basta leggere l'esterno. Ma è così che si può tipo di pensare di questi. Nessuno di questi sono realmente considerato sicuro. Ok? Certo, non ha davvero importanza per il vostro pset perché non ha a che fare con segreti commerciali, ma è in genere uno cosa che abbiamo davvero a sottolineare perché la gente pensa, oh, beh, è ​​nascosta. Deve essere super sicuro. No. Non è sicuro. E 'solo un po' meno insicuro, immagino. Or non protetta. Quindi, in realtà abbiamo un esempio. Come sapete, amo insegnare più con esempi. Mi sento come questo aiuta meglio. Così, abbiamo qualche semplice form che trovi qui che in realtà, se voi ragazzi siete mai Confuso su PHP, questo è davvero piccolo, ma php.net è in realtà davvero una buona documentazione. Mi piace molto. Lo stavo usando per prepararsi a questo sezione, in modo che posso controllare per voi. Questo è un esempio da loro su come $ _POST e $ _GET lavoro. L'unica differenza tra di essi, inoltre dove l'informazione è visualizzata, sia che si tratti nell'URL o nel corpo, è anche ciò che il metodo è. Quindi nel tuo modulo per HTML-- questo è una forma molto semplice HTML. Qualcuno può dirmi che cosa fa? PUBBLICO: Richiedi il tuo nome e l'età. ALLISON Buchholtz-AU: Esattamente. Così abbiamo alcune azioni del modulo. Che ci permette di sapere che è una qualche forma atto. E che cosa sta per accadere è, quando colpiamo Invia, sta andando a chiamare action.php, che è che cosa si tratta, e sta andando a chiamare con un metodo di $ _POST. Quindi, in questo caso, il informazioni è nascosto. ed è solo il tuo nome, un po ' tipo di ingresso chiamato nome, una certa età, input type = "text" che anche noi chiamiamo età. E poi se ci ha colpito Invia, Invia chiamerà action.php. Così, quando abbiamo effettivamente clic su Invia, si sa che ha pubblicato, di per sé, e noi in realtà vediamo nella vostra problema set che speriamo di arrivare a piedi attraverso un po '. E tutto quello che sta facendo qui è POST è qualche variabile superglobale di cui abbiamo parlato durante la lezione. E come si può pensare circa $ _POST è che è solo un array associativo. Ok? Quindi questo è qualche chiave, questo è qualche chiave, e qualunque l'input dell'utente diventa un valore per ciascuno di questi. Ok? Quindi, se dovessimo scrivere quello che questo array in realtà sembrava subito dopo abbiamo inviato il modulo, avremmo avere, questa è la nostra $ _POST, e alcuni array in cui abbiamo qualche nome. Diciamo solo che faremo il mio nome, e poi abbiamo una certa età, 21. Woo. Quindi questo è tutto $ _POST è. $ _POST è solo un array associativo, OK? Dice solo, OK. Quali sono le cose che abbiamo chiesto da parte dell'utente? Quali sono le variabili che stiamo passando in giro che abbiamo chiesto in questa forma? E allora quali sono le valori associati a questo? Quindi, in questo caso, se ho presentato con un nome di Ally e un'età di 21, questo è ciò che $ _POST assomiglia. Ok? E questo è ciò che questo File PHP ha accesso. Bene? Quindi, in questo caso, questo è come ottenere qualsiasi altra cosa dal nostro array. Invece di un indice nella nostra array, abbiamo qualche chiave. Quindi questo sta per dare me il valore al nome della chiave. Quindi questo sta per essere Ally, e questo proprio qui sta per darmi il valore di $ _POST in cui il chiave è l'età, che sarà 21. Si sta andando ad essere In questo modo un po '. Sì, da quale parte? PUBBLICO: Quando eri indicando la parte inferiore. ALLISON Buchholtz-AU: questo componente e fondo? Ok. Quindi, si capisce questo è il nostro HTML forma, e abbiamo qualche metodo $ _POST, che conta. Questo potrebbe anche essere $ _GET, ma per questo scopo, stiamo solo andando a dire che è $ _POST. Quando sottoponiamo questa forma, questo è parte di un file PHP che si chiama. Quindi questo file PHP è ora di andare ad eseguire date le informazioni dal nostro HTML forma. Quindi quello che sta facendo è, quando si Invia colpito il nostro modulo HTML, ti sta passando questo superglobale, che è solo un array associativo. E 'questo. È proprio come il passaggio che al file. E quello che dice è, OK, ecco $ _POST. E 'un array associativo. Fare con essa ciò che si vuole. E stiamo dicendo, OK. Dammi il valore al nome, e mi danno il valore all'età. Quindi, queste sono solo le chiavi, e questa è la nostra matrice. Fa questo ha un senso? PUBBLICO: Mhmm. ALLISON Buchholtz-AU: Awesome. PUBBLICO: Se si deve ripresentare la forma non solo scrivere sui dati? ALLISON Buchholtz-AU: Sì. Mhmm? PUBBLICO: Perché avete per specificare che si tratta di un int? ALLISON Buchholtz-AU: In questo caso, la utente è solo costringe ad essere un int. PUBBLICO: OK. ALLISON Buchholtz-AU: non lo so se si sarebbe in realtà bisogno di questo, ma per i loro scopi, hanno deciso che volevano che fosse un int. Stanno solo typecasting. Forse stanno usando come qualcos'altro seguito. Questo è solo un frammento. Sì? PUBBLICO: E se digitati 12, T-W-E-L-V-E, per l'età? ALLISON Buchholtz-AU: Se cercato di tipo che come un int? PUBBLICO: Sì. ALLISON Buchholtz-AU: I dimenticare ciò che fa. Penso che potrebbe provare a convertire il primo carattere di un int, o prendere il valore e convertire si, ma non ricordo esattamente che cosa. Essere una cosa divertente da scrivere un programma e provare. Fare un paio di righe. OK, questo è uno dei principali cose che si sta andando a fare. Io vado a camminare si spera attraverso un paio di file dal pset con voi ragazzi. Sembra che stiamo andando a il tempo, in modo che possiamo farlo. Ma si sta andando ad essere facendo un sacco di cose come questo, in cui si sta passando cose da un modulo HTML in questo modulo PHP che sarà poi eseguire un insieme di istruzioni sui dati che è stato fornito. Questo è letteralmente il senso della vostra pset. Sì. PUBBLICO: Il type = "submit", che fa un pulsante sul form HTML. C'è modo di chiamare quel pulsante qualcosa? Quindi vuoi essere come name = "submit"? O è quel pulsante solo andare a essere svuotare in questo momento, perché tu solo ha dato un tipo, non un nome. ALLISON Buchholtz-AU: Penso che sia solo andando a essere vuoto in questo momento. Possiamo sicuramente guardare in pset, perché ci sarà sicuramente essere guardando il registrare genere di cose. Ma sì, si può sicuramente indicare il testo che si desidera nel pulsante. OK, così SQL. Quando stai per acquistare e vendere azioni, è necessario tenere traccia di quelli. Quindi il modo in cui abbiamo intenzione di farlo è con SQL, che è solo un database. Pensate a come un tavolo dove si sta tenendo tutte queste informazioni circa i vostri utenti diversi. E voi siete in realtà andando a creare uno di questi. E 'piuttosto fresco. E ci sono solo quattro cose principali che è necessario sapere per questo pset, e sono l'aggiornamento, in modo da fondamentalmente aggiornare i dati. Ciò presuppone che sia già lì. Se non è lì, sta andando per colpire con un errore, così forse si desidera controllare. E si aggiorna on-- I dovrebbe in realtà- ho tempo, Scriverò un paio di questi. Io effettivamente dare ragazzi un paio di campioni, i comandi SQL completa, perché questi sono solo i principali quelli, ma è possibile unirsi a loro insieme. Quindi farò questo e manderò che a voi con queste note. Quindi, se si desidera aggiornare qualcosa, necessario indicare cosa si sta aggiornando e dove stai aggiornamento. Così un tipico comando SQL sarebbe aggiornamento ID dove qualcosa è uguale a qualcosa. O indirizzo aggiornamento come dove ID è uguale a 3, e ciò aggiornare il campo indirizzo del vostro utente che dispone di un ID di tre. Ok? Quindi, se si va a SQL e W3Schools, hanno esempi impressionanti. In effetti, potrei tirare alcune in un po '. E quindi inserire in, sei solo l'inserimento di determinati valori lì. Quindi, se si sta cercando di creare qualche nuovo voce, quindi si sta creando un nuovo utente, si potrebbe fare inserto in qualunque sia il vostro database è chiamato, e si dovrebbe avere tutti questi valori. Poi ci sono selezionate, selezionare i valori da visualizzare. Quindi, se si sta cercando di controllare per se un utente esiste o sei cercando di afferrare specifico informazioni su un utente si sta andando a utilizzare select. E quindi eliminare, credo, è abbastanza semplice lì. Stai solo l'eliminazione qualcosa dal tavolo. E infatti, mi permetta di tirare in realtà alcuni esempi per voi ragazzi. Oh guarda, è la mia pagina 61. Quindi, se andiamo a W3Schools, speriamo che sia di nuovo. Sì, Love it. Andiamo a SQL. Quindi, questa è una cosa qui. Quindi, questo è molto semplice SELECT. L'uomo, io amo questa funzione. Così, si può avere SELEZIONA qualche campo FROM clienti. In questo caso, i clienti si riferisce alla banca dati on-line che si sta utilizzando, così qualunque sia il vostro tavolo è chiamato, e stella significa solo selezionare tutto. Dammi tutti. Quindi, voglio solo dare voi ragazzi un paio di esempi in cui questo è. Così abbiamo SELECT, UPDATE. Così qui è una specie di sintassi generale. Così AGGIORNARE, qualunque sia la vostra nome della tabella è, e quindi impostare è dove si sta effettivamente andando di essere ciò che i dati che stai cambiando. Quindi questo potrebbe essere-- Let Mi faccio un esempio qui. Quindi questo sta per essere-- Ok. Così ho creato un po 'di database per noi. Stiamo per avere un po 'ID, qualche anno, e alcuni di nome. Così ID uno sarà l'anno '15, e stiamo solo andando a fare mi. Chi vuole essere il secondo persona nella nostra tavola? Chiunque. Sto solo andando a scegliere Emma perché veloce del tuo nome. Emma, ​​che anno sei? PUBBLICO: In che anno? ALLISON Buchholtz-AU: Sì. PUBBLICO: '16. ALLISON Buchholtz-AU: '16. Stai solo andando a essere la mia cavia per oggi. OK, così abbiamo queste due persone. A dire il vero, mi permetta di fare questo. Diciamo che l'ho sentita male, e io in realtà ha detto che lei è un anno più giovane. E ''17. Quello che vogliamo fare qui, se voluto aggiornare l'anno di Emma di essere corretto utilizzando tale, quello che avevamo fare è diremmo dati UPDATE qui. E questo può essere tutti su una riga, ma dal momento che sto compresso per lo spazio qui, Ho intenzione di scrivere qui. E vogliamo impostare. Quindi questa è la tabella che stiamo aggiornando. SET sta per essere ciò colonna o quali dati stiamo effettivamente cambiando. Quello che stiamo cambiando è l'anno, così stiamo andando a dire SET anno = 16, e poi dove ci dice che l'utente o quello che fila sono in realtà aggiornando questo. Allora, dove? Abbiamo due opzioni qui. Quali sono i due? Questi sono unici, giusto? Così i nostri nomi sono unici e il nostro ID è unico, Quindi quali sono le due opzioni per cui abbiamo potuto fare questo? Ti darò uno. Potremmo fare WHERE ID = 2, o potremmo fare quello che se stiamo andando fuori questo paradigma qui. PUBBLICO: [incomprensibile]. ALLISON Buchholtz-AU: Esattamente. Così potremmo anche fare name = Emma. E uno di questi avrebbe funzionato. E abbiamo fatto questo, sarebbe come, OK. Ci cambiamo. Lei è in realtà 16, in modo da ora sei di nuovo a destra. OK, quindi questo sarebbe super utile nel vostro pset dove forse qualcuno ha deciso di acquistare 100 azioni di Apple, e poi erano come, sto scherzando. Voglio soltanto 90 parti. E così si vendono 10 di loro, in modo da necessario aggiornare la quantità di scorte che hanno. Quindi, l'aggiornamento delle scorte, l'aggiornamento della tabella. Ok. Ecco, questo è un esempio lì. Questa è la sintassi di aggiornamento. DELETE. Oh. Inserire nel è il nostro altro. Quindi, questa qui è molto simile. Potremmo dire, in questo caso aggiungiamo qualcuno. Possiamo aggiungere Ben questa volta. Noi INSERT INTO, e noi desidera che il nome del nostro tavolo. In questo caso si tratta di dati. E poi vogliamo solo, si sta andando a dicono VALORI, e quello che si sta andando a fare viene, hai veramente bisogno di fare in modo di avere qualcosa per ogni riga che si desidera. Basta metterli in ordine. Quindi, in questo caso, si direbbe 3. Hai 18, vero Ben? PUBBLICO: 19. ALLISON Buchholtz-AU: 19? PUBBLICO: 19. ALLISON Buchholtz-AU: '19 del tuo anno? Si laurea nel '18, giusto? PUBBLICO: Oh. ALLISON Buchholtz-AU: anno di laurea. PUBBLICO: OK. ALLISON Buchholtz-AU: Ero come, sei già in programma di prendere un anno di pausa qui? Quindi, '18, abbiamo Ben. Quindi, in questo caso, sarebbe passare attraverso, sarebbe creare una nuova voce qui. Freddo. Non male, vero? Un sacco di questo sta per essere sintassi per voi ragazzi. Concetti dovrebbero venire, si spera, in modo relativamente semplice. La sintassi è l'unica cosa che può essere un po 'difficile. E allora il nostro ultimo è DELETE, e, come si nota, Consiglio vivamente questo sito. È ottimo. C'è un sacco di roba. Quindi, nello stesso modo che avevamo alcuni UPDATE, DELETE è molto simile. Invece abbiamo Elimina da dati. Quindi, in questo caso, il nostro ultimo quello che scriverò qui. Diciamo che abbiamo voluto eliminare me. Non posso scrivere oggi. DELETE da qualunque tavolo ci troviamo, i dati. E ci sono in realtà tre modi potremmo scegliere di eliminare me. Can you guys dirmi quello che i tre modi sono, come si potrebbe eliminare me? ID è uguale a 1, dove ID è uguale a 1. Potremmo fare dove l'anno è uguale 15, o in cui il nome è uguale a Allison. Naturalmente, ci sono solo tre modi diversi, perché questi sono tutti unici. In genere nella tabella, e soprattutto nella vostra pset, si sta andando ad impostare uno dei queste colonne per essere unico nel suo genere. E 'probabilmente sarà un po' unico ID numero, perché se si have-- in realtà, potrebbe in realtà permette di avere due. Non ricordo se ti lascio si hanno due della stessa cosa. PUBBLICO: allora sarebbe cambiare il loro comportamento. ALLISON Buchholtz-AU: Sarebbe. Sarà causa di un comportamento che è inaspettato, che non si può davvero prevedere. Così si avrà sicuramente una colonna nel database che sarà unico, ed è in genere è possibile impostare in modo che è come un ID univoco, e sarà solo aggiornare ogni volta che si inserisce nella tabella. Ogni volta che si crea un nuovo fila, lo farà automaticamente incrementare e dargli un po 'ID univoco. Quindi suggerimento per il vostro pset. Ok. In modo che sia SQL. Così ora stiamo andando a parlare di l'ultima cosa, che lega in in realtà piuttosto bene con il tuo pset, se sarebbe andata avanti. Così MVC, controller di vista del modello. Questo è in realtà solo un modo per mantenere le cose organizzate. Allo stesso modo con C vi chiediamo ragazzi per creare funzioni e cose separate fuori, questo è solo un modo per separare codice quando si sta facendo di sviluppo web. Quindi rende le cose molto più elegante e semplificato, e questo è in realtà il modo che il vostro pset è in realtà impostare, in modo che vi piaccia o no, si sta andando a imparare, anche se non credo si sta imparando esso. E una cosa è, ti permette anche di fare molto di più come una collaborazione dell'utente. Così, quando ho preso CS50, ho fatto un sitoweb per il mio progetto finale, e mi sono detto, io gestire la roba database. Farò di nuovo roba fine, e la mia compagno di stanza che stavo prendendo con esso era molto artsy. Lo fa scenografia, e lei ha voluto rendere il tutto abbastanza. Quindi io sono come, OK. Si può prendere cura di tutte le cose front-end. E la cosa è, come vedremo molto presto, che il regolatore di vista del modello consente di separare completamente il codice così che ho potuto lavorare su attuare le nostre pagine, e manipolare informazioni nelle nostre banche dati, e lei poteva solo fare le cose abbastanza, e siamo stati entrambi molto felici, perché abbiamo avuto modo di fare ciò che entrambi abbiamo voluto e abbiamo non hanno a che fare con l'altra. Così abbiamo appeso fuori insieme. Ci piace per appendere fuori. Solo che non voglio affrontare tutto il CSS e HTML roba. Ero come, si rendono abbastanza. Mi occuperò con il database. Così abbiamo davvero fresco, ottimo tavolino. Amo le tabelle. E in fondo, il modello è possibile pensare è solo il database. Sono stato il modello di persona per il mio progetto. E 'tutta una questione di stoccaggio di informazioni e l'organizzazione di tali dati. Quindi è quello che ci piace chiamare back-end. Quindi voi ragazzi avrete a che fare con il database SQL e file di dati. Questo è il tuo modello. La vista, come si potrebbe pensare, tipo di senso, è ciò che l'utente vede effettivamente. E 'l'interfaccia utente. E 'tale componente di fronte a fronte. Ecco, questo è ciò che il mio compagno di stanza avuto modo di lavorare su tutto il tempo. Lei era super felice. Ecco, questo è tutto il codice HTML, e c'è molto poco di PHP. Se si sta parlando solo di ciò che viene visualizzato per l'utente, stiamo parlando di ipertesto. Stiamo parlando di come appare. Non stiamo parlando di logica, o condizioni, o roba del genere. Tutto ciò ottiene gestito dal controllore, OK? In modo che gestisce le richieste degli utenti e ottiene le informazioni. Quindi una cosa che dovete sapere su il tuo pset è che, nei vostri punti di vista, tutto ciò che è in realtà Informazioni visualizzazione non dovrebbe mai essere fare chiamate verso il vostro modello. Tutto questo viene gestito nel controller. Il controller è quello mediazione tra questi due. Ti verrà chiesto il modello talune informazioni. Si può iterare su tale informazioni, capire che cosa hai veramente bisogno di essa, che cosa fare con esso, e poi passerà solo le informazioni che necessario per la visualizzazione di stampare esso fuori o visualizzare all'utente, OK? Perché vediamo la vista come qualunque sia l'utente si trova ad affrontare, quindi sarà molto più facile per loro di capire, oh, se stai facendo alcuni chiamano per il tuo modello e si sta chiedendo per tutti gli utenti che inizia con la lettera A, e si sta facendo che a vostro parere, chiunque può vedere la tua pagina web potenzialmente in grado di accedere a tale. Non necessariamente si desidera che. Se non si desidera la gente a vedere più nel database di quello dovrebbero essere vedendo. Solo le loro preferenze specifiche. Così il controllore gestisce tutto questo. Quindi, tutti i file .php che vedremo si può prendere in considerazione i file del controller. Ed è qui che si è davvero di essere chiedere le cose dal database, e l'iterazione o manipolare come necessario, prima passando mai ad essere visualizzato. E 'un pset davvero cool, a mio parere. Penso che sia un po 'più come gratificazione immediata, perché si implementa un sacco di piccole cose piccole, e ogni cosa dovrebbe funzionare da solo. Non come, fare tutto e poi vedere se funziona. Come con il software dove siete come, io sono davvero sperando che questa sia a destra, perché se non lo è, ci sono molte pone potrebbe essere sbagliato. Bene. Basta fare in modo che ho detto tutto il necessario da dire su MVC. Sì. Freddo. Quindi, in CS50 Finanza, abbiamo il nostro modello, come ho appena detto qui. Sta andando essere MySQL e phpMyAdmin. Posso sicuramente tirare quelle in modo voi ragazzi hanno la possibilità di vedere le cose. Come ho detto prima, il vostro SQL banca dati funge da modello, ed è possibile inviare ciò che noi chiamiamo le query, che sono solo questo genere di cose. Questi sono chiamati una query. Si tratta di una query, dove sei solo chiedere al vostro database per qualcosa, o stai cambiando il tuo database in qualche modo. Questo è tutto ciò che è. E lo si fa con la funzioni che abbiamo dato qui. È inoltre possibile modificare li a mano tramite phpMyAdmin, che possiamo sicuramente dare un'occhiata a. Creerò un campione database con voi ragazzi. Ok. Quindi, controllore. Quindi, in questo caso, se si avviso, questo è tutto PHP. Si noti che una specie di tuo cosa principale del controller è che dovrebbe essere principalmente PHP. Se si dispone di codice HTML nel controller, non proprio sicuro di quello che sta succedendo lì. Allo stesso modo, come ho detto, se si riuscire a [incomprensibile] con HTML, Sono davvero interessato. Allora, cosa abbiamo qui è che hai qualche domanda. Query è una funzione che abbiamo costruito per voi ragazzi. E 'come un wrapper per fare query al database un po 'più facile. Se non avete avuto che, la sintassi per in realtà parlato con il database SQL sarebbe stato diverso, in modo da solo fornire per voi ragazzi. Ci piace rendere la vita facile. Quindi, in questo caso, può voi ragazzi dimmi cosa questa linea sta facendo? SELECT * da qualche tavolo. PUBBLICO: Seleziona tutto da questa tabella. ALLISON Buchholtz-AU: Esattamente. Quindi sta dicendo, dammi tutto da questa tabella. Ed è riporlo in qualche risultato variabile. E questo la dice, se il risultato non è uguale su false, allora facciamo ognuno di questo. Quindi, se non c'è niente qui, se il tuo tabella di vuoto o semplicemente non esiste, sta andando a restituire false. Quindi, in questo caso, stiamo solo facendo sicuro che qualcosa era in realtà restituito a noi. E poi qui, abbiamo la nostra grande ciclo foreach che stiamo iterare su nostra Di conseguenza, e noi stiamo chiamando riga, e diciamo che rendono questo modello dove sono i dati questo risultato. Ok? Quindi è solo elaborazione la riga del risultato. In caso contrario, si urla. Così, questo è un esempio del controller. Come potete vedere, questo è il posto-- solo Sì, scusa? PUBBLICO: perché è lì una e commerciale prima fila? ALLISON Buchholtz-AU: Una e commerciale prima fila. Siamo appena iterazione. Questo è anche un indirizzo di-- PUBBLICO: Così è come C di riferimento. ALLISON Buchholtz-AU: E ' fare in modo che si sta effettivamente modificare l'originale e non una copia. E 'nello stesso modo con cui C stiamo passando per riferimento qui, solo per essere sicuri. PUBBLICO: Non è == invece di non = in PHP? ALLISON Buchholtz-AU: Non è il ==. PUBBLICO: Perché è uguale a C è solo-- ALLISON Buchholtz-AU: Non è solo =. Si ', no. Non è ==. Perché == in PHP controlla uguaglianza con commutazione, scontato, ma qualità extra. Quindi, non è == in PHP. E 'uno dei pochi differenze di sintassi. Sì. Quindi stiamo solo l'iterazione attraverso ogni riga, e rendere, se voi ragazzi leggere la tua spec, è solo qualche altra funzione che è in realtà intenzione di elaborare tutti il ​​codice HTML e visualizzarlo nel vostro browser web per voi. Ok. Così, ci piace pensare dei controller come quello che gestisce la logica di business. Come potete vedere qui, questo è dove siamo prendendo i nostri dati dalla tabella, verra 'esaminata in qualche modo, e poi stiamo passando fuori. Quando facciamo rendere alcuni template, qualche modello è nostro punto di vista, e stiamo passando solo i dati che si dovrebbe ottenere. Non tutti i dati. Solo i dati che vogliamo per ottenere. Ok? Fondamentalmente i dati dopo l'elaborazione. Quindi questa è la vista, questo è il modello somma che abbiamo, e tutto questo sta facendo è, si può avere un po 'di PHP nella vista. Non è come un no PHP in vista. Si dovrebbe solo avere PHP molto minimale in vista, e non si dovrebbe mai essere l'esecuzione di query nella vista. Non si dovrebbe mai essere parlando al database nella vista. Questa è la grande differenza. Così che cosa sta succedendo qui è, abbiamo PHP che sta scorrendo la riga. Quindi, in questo caso, dato che eravamo scorrendo ogni riga e rendere qualcosa, questo è stato probabilmente come una matrice bidimensionale dove abbiamo qualche riga che è, di per sé, una matrice, perché stiamo iterazione attraverso di nuovo. E siamo solo la stampa il nome della riga, poi terminarla. Non dovrebbe essere necessario questo nel foreach. Non ho mai visto prima in realtà. Faccio solo foreach. OK, in modo che la vista. Vediamo se siamo in grado di camminare attraverso un po 'del vostro pset. Abbiamo 15 minuti, quindi sono sicuro che ragazzi vorrebbero che più di una semplice che termina presto. Fammi vedere se riesco a portare questo in su. Quindi non so quanti di voi ragazzi hanno scaricato e quant'altro ancora, ma abbiamo nome utente qui, e abbiamo un po 'la password. E purtroppo, a destra Ora il database è vuoto, così abbiamo effettivamente bisogno per creare un database. Beh, questo è strano. Non mi aspettavo questo. Errori tecnici. Le difficoltà tecniche. Abbiamo alcuni pset7. Freddo. Quindi, una cosa che puoi fare è, con un query-- creerò un tavolo. Quindi questo sta per essere users-- cosa si può fare: ecco, se abbiamo some-- Davvero ora? Ok. Ovviamente non sto facendo così caldo. Oh. Io so perché. Perché non ho mai creato le mie tabelle effettive. Quindi, quando si inizia con un database, che, ovviamente, decidere quali sono le cose che ho bisogno di avere qui dentro? Quindi, se dobbiamo solo andare fuori la nostra tabella di dati qui, abbiamo avuto qualche ID, che possono solo stare un int. E se guardiamo qui, non c'è Un 'interessante che-- indice così. Se lo fai primaria, che renderà il cosa che la tabella è organizzato da, e sarà anche renderlo unico. Quindi, in questo caso, ce la faremo primaria, e ho intenzione di fare questo nome, quindi ci limiteremo a fare un varchar come di 26 lettere, perché perché no? E allora si può andare a salvare, e poi se si vede, abbiamo alcuni utenti qui. Quindi, se volessimo fare un Inseriamo, potremmo farlo in questo modo, o se si voleva pratica con il vostro queries-- Oh boy. Non ho usato questo per sempre. Colgo l'indietro. È possibile modificare da soli o semplicemente inserendo manualmente le informazioni con qualcosa di simile, è può cambiare uno di questi se si voleva make-- Se si desidera improvvisamente sbarazzarsi di nome, si può cadere, si possono fare tutte quelle cose. Se avete bisogno di mai modificare manualmente la tabella, Suggerisco di farlo in phpMyAdmin contro cercando per capire il SQL query in generale. Quando si avvia il pset, si sta andando ad avere per lavorare qui, in modo da abituarsi a questo. E poi, quando si desidera veramente per inserire le cose nel vostro table-- Mi chiedo dove cioè, perché there's-- Eccola. Questo è quello che volevo. Quindi, se si va a SQL, si potrebbe effettivamente vedere, come si vede qui, abbiamo query SQL. Quindi, se volessimo selezionare qualcosa o se volevamo inserire qualcosa, possiamo fare INSERT INTO gli utenti, giusto? Penso che è necessario il backslash. Una cosa da sapere è, se si sta mai con questo, è necessario utilizzare questi indietro apostrofi, di norma, se siete su un Mac, proprio sopra scheda. Quindi una buona cosa da sapere. È possibile inserire in utenti, e abbiamo i nostri valori, giusto? Così abbiamo valori, ei nostri valori in questo caso sarebbe solo, abbiamo solo un ID in modo da potrebbe fare uno se volevamo. Che strano. Ok. Ecco, questo è proprio come una breve piccola cosa con SQL, ma potrebbe essere più utile effettivamente guardare alcuni dei file qui. Quindi, andare a Downloads. Oh, non Downloads. Quindi, solo una guida rapida cosa c'è in ognuna di queste cartelle. Esso comprende, non ci resta che le cose che configurare il vostro browser, abbiamo queste costanti, e abbiamo queste funzioni. Se siete interessati in nessuno di essi, Vi consiglio di guardare le funzioni. Uno di loro che è super utile, in realtà è questa qui, discarica. Quindi, se si utilizza questo, lo farà in realtà solo stampare qualunque variabile che ti piace a. Quindi, se si hanno difficoltà a capire che cosa questo array assomiglia, o quello che questi dati di fatto, come è formattato, questa è una grande cosa per l'uso. Soprattutto quando si ha un utente con più azione, questo sta per essere qualcosa di grande da usare. Perché potrebbe essere formatted-- So che almeno per me quando l'ho fatto questo pset, è stata formattata in modo che non mi aspettavo molto. Così ho cercato di iterare e cercando di manipolarlo, ma non l'ho fatto davvero Capisco quello che stavo facendo. Quindi, se avete appena dump, lo farà stamparlo al browser, e si può vedere esattamente come è formattato. Sarà tipicamente stamparlo come array con le sue chiavi e dei suoi valori. Così può aiutare lì. Può anche contribuire a rendere Assicurarsi che si sta effettivamente afferrando i dati pensavate di essere. Quindi, se tu fossi come, mio ​​tavolo sicuramente dice che c'è un utente con questo ID, ma quando si va a scaricare la variabile, non è lì, ovviamente sai che è dove un errore sarà. Questo è uno dei migliori strumenti per il debug, a mio parere. E poi c'è un paio di altre cose qui, ma per la maggior parte, questo è il quello che voglio attirare la vostra attenzione, perché è molto utile. Pubblico, quello che abbiamo qui è, questa è tutta la nostra roba CSS. Così CSS, font, le nostre immagini, roba del genere. Questa è tutta roba che non è necessario modificare. Can you guys pensare se questo ha cose come CSS dei font, questo sarebbe un modello, o una visione, o un controller? PUBBLICO: [incomprensibile] ALLISON Buchholtz-AU: Sarebbe essere più di una vista, giusto? Questo sta gestendo tutto le cose, come stanno le cose. Quindi, se apriamo questo qui, si vede che tutto quello che sta succedendo qui è che stiamo esegue il rendering di qualcosa. Ok? Quindi questo sarebbe molto qualificarsi come una vista per questo. Quindi questo è solo prendendo un po ', sta chiamando alcuni portfolio.php che abbiamo, e sta passando nel titolo e di portafoglio. Ed è solo il rendering che. A dire il vero, mi prendo indietro. Questo è un controller, perché render, ricorda, rende la vista. Così portfolio.php in questo caso sarebbe la vista. Mi dispiace, ragazzi. Portfolio.php sta per essere la visualizzazione, e questo sarebbe solo essere il controller per questo. E se diamo uno sguardo a questo ultimo qui, modelli, i modelli sono tutti delle vostre opinioni qui. Quindi, se guardiamo, ovviamente vediamo un sacco di HTML qui. Quindi questo è solo mostrando cosa la pagina di accesso dovrebbe essere simile. Si noti che ci sono un po ' formare gruppi, hanno submit. Ecco come si decide cosa viene visualizzato lì. Hai qualche tipo di pulsante = "submit", e allora hai quello che vuoi per visualizzare in pulsante. Ecco, questo è come si potrebbe rendere più mostrare come tutto ciò che vuoi. E vediamo qui abbiamo un po ' il nome utente, la password alcuni, e quando abbiamo effettivamente colpito Invia, che sta per essere alcuni post, e sta andando di inviare a che cosa? Qual è il controller per questo punto di vista? Quando abbiamo raggiunto Invia, ciò che sta per essere chiamato? Sappiamo? E 'proprio qui, in modo login.php. Qualcosa voi siete andando da implementare. Così si può sempre dire cosa sarà chiamato dopo aver premuto Invia da questa prima linea qui. Quello che il form action è. Quando viene inviato questo modulo, quale azione prendiamo? Chiamiamo login.php, e noi chiamarlo con questo metodo di post, che ha il informazioni nascoste. Ok? Quindi questa è la sua opinione, e poi, ovviamente, se siamo andati a login.php-- Do ce l'abbiamo ancora? Sì. Quindi, come si vede qui, questo ha molto più logica. E 'tutto il nostro PHP qui. Stiamo cercando di vedere se era $ _GET, se fosse $ _POST, convalidando le cose, interrogazione, tutta questa roba. Quindi, questi sono solo i tre cose diverse qui. voi non c'è bisogno di cambiare le cose. Ti verrà creando cose nel modello, forse, ma per quanto riguarda HTML o la stile di tutto questo va, si può lasciare come semplice o intricato come vuoi. Alcune persone diventano veramente in esso e fare alcuni siti web piuttosto impressionante. Non c'è bisogno di farlo. Se avete tempo, è una cosa davvero cool. Si può pasticciare con i CSS e HTML e avere un'idea molto migliore per esso, ma non si sentono spinti a. C'è molto da fare per voi il back-end di attuare il login, e registrare, e tutte queste cose. Così si spera che aiuta un po '. ragazzi avete tutte le domande di nulla siamo andati oltre, tutte le altre risorse? Io sicuramente inviare tutti il mio esempio di codice PHP per voi ragazzi, e quindi sentitevi liberi di prendere immagini o quant'altro di questo. Inoltre è on-line. Si può sempre solo guardare di nuovo. Quindi, se questo è tutto, tutti bene? Sì. PUBBLICO: Voglio solo per confermare, quando siamo facendo selezione in SQL, il stella vuol dire tutto, giusto? ALLISON Buchholtz-AU: Sì. PUBBLICO: E poi se non si ha la stella, se si desidera prendere da una specifica fila, quindi basta mettere il nome di-- ALLISON Buchholtz-AU: Il nome della riga e ciò che si desidera si desidera che il valore di. PUBBLICO: E poi la data. ALLISON Buchholtz-AU: Qualunque che stai cercando, sì. Allo stesso modo, se si fa DELETE * da qualche tavolo, che sarà eliminare tutto. Così, * è solo un selvaggio carta per tutto. PUBBLICO: OK. ALLISON Buchholtz-AU: Freddo. Impressionante. Beh, hanno un grande lunedì, ragazzi. Ci vediamo la prossima settimana. Buona fortuna per il tuo pset.