>> [Lecture de musique]
ALLISON BUCHHOLTZ-UA: Très bien, tout le monde, bienvenue à la section.
Espérons que vous avez tous eu un grand Week-end d'Halloween, ou Halloweekend,
que je tiens à dire, tout reposé et récupéré.
Et heureusement, il est pas plus qu'il neige.
Il est en fait soleil dehors.
Je suis vraiment heureux à ce sujet.
Pas prêt à traîner mes bottes d'hiver.
Heureusement, pset6 est plutôt bien passé.
>> Si vous êtes fatigué de C, je suis heureux dire que vous en avez terminé avec C pour le moment.
Nous avons pleinement la transition dans la programmation web,
si vous allez travailler en HTML, PHP, peut-être un peu de JavaScript.
Je ne sais pas ce que la semaine prochaine de pset est, si je ne peux pas garantir
ce que votre prochaine pset volonté être, mais l'ensemble de processeurs de cette semaine
est CS50 Finances, qui est essentiellement mise en œuvre de la sorte de page Web
qui vous permet d'acheter et de vendre stocker, et de garder une trace d'eux.
Et il est assez cool, parce que tout il est généré de façon dynamique.
Vous pouvez avoir différents utilisateurs qui ont chacun leur propre information,
et vous allez être la mise en œuvre de tout cela.
Il prend un certain temps.
Je pense vraiment que cela est plus facile que C psets, mais il prend plus de temps.
Vous apprenez une nouvelle langue, PHP, qui est très similaire à C,
mais bien sûr, il va falloir faire vous regardez la syntaxe et de comprendre
comment convertir entre les langues.
>> Mais je ne pense pas qu'il y ait quoi que ce soit Super conceptuellement difficile sur ce jeu de processeurs.
Il est en train d'apprendre le nouvelle langue et d'obtenir
par tous ces petits morceaux.
Si vous les gars avez lu la spécification, il est assez longue.
Je pense que celui-ci est comme 21 pages, si je me souviens bien.
Il est un long spec.
Donc, si vous ne l'avez pas lu it-- 22.
32.
>> Sensationnel.
Donc, je partais de 50% il.
Ainsi, 32 pages.
Donc, il est long.
Il ya beaucoup de morceaux, mais aucun des pièces devrait être que mauvaise.
Il est juste beaucoup.
Alors certainement commencer tôt si possible, comme d'habitude,
mais je pense qu'il doit se sentir un peu plus agréable que surtout les psets comme
récupérer et redimensionner qui sont juste très difficile à enrouler autour de votre tête.
>> Donc, avec cela, nous allons plonger dans.
Je ne ai pas votre agenda glisser aujourd'hui, mais nous sommes
va être parler de PHP.
Je vais vous donner une sorte de cours intensif sur certaines choses
que vous pourriez vouloir savoir sur PHP.
Différentes choses de syntaxe, choses à regarder dehors pour.
Nous allons parler un peu de SQL.
Juste choses très simples là, et puis aussi MVC
est Model View Controller, qui comment est votre pset est mis en place,
afin de comprendre comment ce Les travaux seront super utile.
Bien.
Alors PHP.
Les gars, vous devriez avoir fait quelque chose de très, très simple
avec PHP, qui est cette chose ici bas,
où vous avez présenté une certaine forme sur le haut ici qui avait un nom que vous
entrée, et il disait comme bonjour, Ben, ou bonjour, Allison, et il apparaîtra.
Donc, cela est réellement ce qu'il devrait ai regardé comme de votre pset,
Au cas où vous les gars voulaient savoir ou ne pas tout à fait comprendre.
>> Mais nous avons ces points d'interrogation ici qui indiquent l'existence de ce PHP.
Ils l'enveloppent, et puis htmlspecialcharge, rappelez-vous, est juste,
assurez-vous que vous êtes en sécurité de toute attaque par injection fou
ou si quelqu'un essaie de mettre personnages malveillants fous
dans votre champ de nom, il ne le fait pas voulez votre serveur ou autres joyeusetés.
>> Et puis si l'on remarque, ce HTML forme avait une méthode de $ _GET, qui,
si nous nous souvenons de nos superglobals à partir de PHP, $ _GET, $ _POST,
nous irons dans ceux un peu.
Mais nous savons que nous avons un nom ici qui correspond au nom
que nous avons présenté.
Donc, ceci est juste un peu comme la collaboration PHP HTML très simple
que vous avez eu de pset six.
>> Mais cela ne veut pas vraiment répondre à ce qui est PHP.
Évidemment, il est un langage, mais nous avons pas vraiment
parlé dans cette section, donc il ya un peu plus
sur ce que PHP est en réalité.
Donc, PHP est juste PHP préprocesseur hypertexte.
>> Il est en fait considéré comme un langage de programmation
parce qu'il dispose d'une logique, alors que si nous nous souvenons de parler de HTML,
nous avons appelé ce un langage de balisage contre un langage de programmation parce que le HTML
modifier la manière dont est strictement les choses semblent sur la page.
Il est juste de modifier si quelque chose est en gras,
ou si elle est une forme, élément, ou quelque chose comme ça.
Il n'a pas de logique.
Il ne possède pas de boucles ou de conditions.
Vous ne pouvez pas contrôle d'erreur choses.
Vous souhaitez afficher soit les choses d'une certaine manière ou demander des choses
à partir de l'utilisateur.
Ce est tout.
>> Donc, avec PHP, il permet effectivement de nous de faire toutes ces choses plus logiques,
comme valider l'entrée ou manipuler en quelque sorte.
Nous pouvons combiner avec HTML, comme nous venons de vu dans votre dernier jeu de processeurs et maintenant,
et il nous permet de créer ces pages web dynamiques.
Donc, si vous les gars ever-- Je ne sais pas si vous étiez comme moi, mais en milieu scolaire
ils nous avaient prendre cette classe d'informatique où nous avons créé de simples pages Web HTML,
et ils étaient statiques et cliquez autour à d'autres choses, mais ils ne changeaient jamais.
>> Avec les dynamiques, ce que nous pouvons faire est, comme avec CS50 Finances,
vous allez avoir différents utilisateurs.
En fonction de ces utilisateurs ' préférences, et ce qu'ils achètent
ou ce qu'ils vendent pour leurs actions,
vous allez afficher choses différentes.
Donc, si il ya une certaine caractéristique d'identification
pour l'utilisateur d'utiliser ce page Web, nous pouvons dynamique
décider ce qu'il faut afficher pour eux.
Il est pas la même chose pour chaque unique personne qui, si nous avons juste eu HTML,
la page serait le même pour chaque personne qui a visité.
PHP nous permet de personnaliser les pages.
>> Et puis, nous pouvons soit les mettre en le même fichier, qui, comme dans le cas
avant ici, nous avons vu que nous avons tous ici HTML
et puis nous avons ce petit bout de PHP.
Nous pouvons le faire comme ça, ou avec CS50 Finances,
si vous les gars se sont penchés sur la files-- et nous devrions avoir le temps
pour passer d'un couple d'entre eux en même temps, à la fin de la section-- nous
peut voir comment vous pouvez effectivement les séparer,
qui est en fait une meilleure chose à faire.
>> So.
Crash course.
Toutes les choses simples et rapides vous pourriez avoir besoin de savoir pour PHP.
Déclaration des variables.
Ce bleu est un peu ennuyeux, mais nous espérons que vous les gars peuvent le voir.
Sinon, je vais l'écrire sur le tableau noir.
Les déclaration de variables.
Une chose à savoir est que, contrairement au C, PHP est vaguement ou typé dynamiquement,
ce qui signifie que vous ne devez pas dire une variable de quel type il est.
Vous pouvez tout simplement dire une variable est égal à tout ce que vous souhaitez,
et il va décider du type de cette variable lors de l'exécution pour vous.
>> Comme vous le verrez, cela peut créer des des choses très intéressantes.
Mais la plupart des cas, vous ne pas avoir besoin de spécifier le type.
Vous pouvez, et vous pouvez taper jeter des choses comme vous le faites habituellement
ne serait pas voir si vous voulez le forcer à être d'un certain type,
mais vous ne devez pas.
Il ne va pas de crier à vous si vous venez de déclarer une variable
et ne spécifiez pas un type pour cela.
>> Donc, au cas où vous ne pouvez pas lire this-- Je sais qu'il est pas le meilleur.
Je pensais que ce serait montrer jusqu'à la better-- façon d'initialiser une variable est juste
avec un signe de dollar, ce qui vous voulez qu'il soit appelé,
et puis ce que vous lui attribuer.
Donc dans ce cas, cela est certain $ var = 3.
Donc, si jamais nous utilisons $ var quelque part, il sera simplement
être la même que la mise 3 y.
D'accord?
>> Ainsi, toutes les variables, il suffit signe de dollar, quelle que soit
vous voulez appeler votre variable, et tout ce que vous voulez à l'égalité.
Peu plus frais.
Moins d'écrire pour initialiser une variable, non?
Cela fait-il sens à tout le monde?
Juste différence de syntaxe rapide entre C et PHP.
>> Les tableaux sont beaucoup plus frais en PHP.
Nous pouvons leur donner les clés.
Ainsi, la manière de penser il est que, si jamais nous
voulu pour accéder à un élément dans un tableau,
nous avions besoin de connaître la Indice de lui, non?
Nous savons donc que avec C, nous pourrait accéder au premier élément
en faisant ensemble support zéro, ou si nous vouloir le premier élément, support de tableau
une.
Et si nous voulions quelque chose là, nous pourrions juste
avoir pour parcourir, à moins que nous savions en fait l'indice.
>> Une chose qui est vraiment cool avec des tableaux PHP
est que ce sont elles qui nous appelons associatif.
Donc, nous pouvons associer un bouton pour une certaine valeur,
et nous allons en fait to-- je vais vous montrer
comment nous pouvons l'utiliser dans un second.
Mais fondamentalement, si jamais vous voulez initialiser un tableau comme ça,
vous avez une certaine tableau $.
>> Donc, de la même manière, il est juste une variable que nous créons.
Cela pourrait être appelé ce que vous vouliez.
Cela pourrait être par exemple $.
Juste une autre variable.
Ce qui le rend un tableau est la support syntaxe que nous avons ici.
Tout comme C normal et nous avoir une certaine touche à une certaine valeur.
Donc cle1 va valeur1, key2 deux va à valeur2.
Ces paires sont séparées par une virgule, comme les tableaux normaux.
>> Cependant.
Big One.
Les clés sont en option.
Vous ne devez pas les utiliser.
Et si vous ne le faites pas, alors il est tout à fait normal.
Question?
Ou, oh.
>> PUBLIC: Eh bien, sur la droite.
Où est la mémoire vient-il?
Peut-être aussi le même comme [Inaudible] et de la pile?
Est-ce également l'utilisation de PHP?
Comme quand on les relie?
>> ALLISON BUCHHOLTZ-UA: Avec PHP, Nous ne tendent pas
à vous soucier de où notre mémoire vient.
Nous ne passons pas beaucoup de de temps à parler à ce sujet,
il est donc pas vraiment quoi que ce soit vous devez vous préoccuper.
Donc clés sont facultatifs.
De la même façon, si vous ne le faites pas vouloir faire cette associés,
vous voulez juste un tableau normal où matrice zéro est le premier élément
et un tableau est le deuxième élément, vous pouvez le faire exactement
comme vous le feriez en C. Vous avez des variable qui va être votre tableau,
et elle est égale ici à ces supports.
Oui.
>> PUBLIC: At-il le même point de notation.
Comme, je peux faire comme un tableau ++, et que les points de la seconde.
>> ALLISON BUCHHOLTZ-UA: Vous pouvez do-- Eh bien, vous pouvez avoir un itérateur, i,
que vous pouvez faire i ++ et faire un i tableau de la même manière.
Mais ça y est.
Donc, comme dans ce cas, gamme de 1 serait égal à 20.
Même type de notation d'indexation.
Ceci est fondamentalement juste une chose implicite ici, où il est dit zéro, zéro à 10,
de 1 à 20, 2 à 30.
Il est seulement implicites clés pour elle.
Quels changements avec PHP que vous avez maintenant le pouvoir
de réaffecter les touches à faire ce que vous souhaitez.
>> Donc, une chose est ici.
Je dois donc quelques exemples ici que je l'ai écrit pour vous les gars
parce que je me sens comme exemples toujours aider plus que l'abstrait.
Donc, dans ce cas-ci, nous avoir un tableau associatif
qui est mon prénom, mon nom, et je
me fais l'écho, qui est juste à toutes fins utiles ici
va imprimer à la sortie ici.
>> Et il dit, OK.
Imprimez la valeur correspond à tableau à clé Allison.
Et je peux aussi vous envoyer des gars tout ce code après la classe.
Donc, quand nous courons cela, qu'est-ce que vous pensez qui va se passer?
Qu'est-ce qui se passe à imprimer?
Public: Votre nom de famille.
ALLISON BUCHHOLTZ-UA: Mon nom de famille.
Il ne.
Juste ici.
Imprimer.
Donc, si nous devions changer cette situation et nous étaient à ajouter quelqu'un d'autre à notre list--
Alors disons que nous avons ici Emma, et nous associons votre dernière name--
Voyons voir si je épeler ce droit.
>> PUBLIC: Ouais.
>> ALLISON BUCHHOLTZ-UA: Oui.
>> PUBLIC: Bon travail.
>> ALLISON BUCHHOLTZ-UA: Lovely.
Alors maintenant, si nous avons ce ici et nous voulions trouver votre nom de famille,
vous avez là.
Ainsi, vous pouvez juste y penser que le remplacement de cette clé ici.
Vous êtes juste remplacer l'indice.
Donc, il vous permet de tout simplement rechercher grâce à un éventail beaucoup plus facile.
Vous ne devez pas connaître l'indice.
Tant que cette touche que vous cherchez pour quelque part dans le tableau,
PHP va le trouver et il sera de retour la valeur qui lui est associée.
Donc, il vous donne beaucoup plus puissance avec vos tableaux.
Oui.
>> Public: Si vous avez deux touches même, il va vous donner une erreur?
ALLISON BUCHHOLTZ-UA: Il devrait vous donner une erreur, oui.
Est-ce que faire un peu plus de sens pour vous les gars?
Et de la même façon, nous avons un tableau ici qui n'a pas toutes les clés.
De plus, cette est une syntaxe que vous voudrez peut-être
à être au courant, parce que vous allez avoir à l'utiliser dans votre jeu de processeurs.
>> Chaque fois que vous faites une écho, vous avez ces citations,
et chaque fois que vous parlez à partie d'une matrice,
vous devez avoir ces accolades autour d'eux.
Il est un peu ennuyeux, mais vous avez juste à le faire.
Il suffit donc de quelque chose à garder à l'esprit.
Si vous utilisez dans des erreurs de, Je sais que cela existe dans mon tableau
mais il est des erreurs jetant à moi, essayer de mettre des accolades autour d'elle
et cela devrait fonctionner.
>> Donc dans ce cas ici, ceci est une tableau normal C que nous sommes habitués.
A trois, cinq, six, et nous avons vouloir imprimer le premier élément,
ce qui devrait imprimer trois.
Et je ne dirige tout cela, si espérons que rien n'a changé.
Nous voyons en bas ici, il se contente d'afficher trois.
Laisser refroidir.
Ce sentiment de maquillage pour tout le monde?
Les tableaux associatifs.
Beaucoup plus frais que les tableaux normaux.
>> Ceci est pourquoi-- at-David vous montrer la mise en œuvre de PHP de pset6
au cours de conférence à tous?
D'accord.
Donc, je vais vous montrer.
Je ne sais pas au large de la t--
>> PUBLIC: Il a fait la semaine dernière.
>> ALLISON BUCHHOLTZ-UA: Était-ce la semaine dernière?
>> PUBLIC: Ouais.
>> ALLISON BUCHHOLTZ-UA: Ouais.
Donc orthographique peut être fait en six lignes comme avec PHP, et une partie de la puissance de cette
est ce tableau associatif où vous pouvez simplement charger chaque mot,
et vous l'avez égal à vrai ou faux.
Et afin que vous puissiez dire, oh.
Retour au dictionnaire un mot, et si elle est là, elle retourne vrai.
Sinon, il ne trouvera pas et il reviendra faux.
Donc une sorte de petite chose cool.
>> Bien.
Donc, ce sont des tableaux associatifs.
Ils sont plutôt sympas.
Je l'aime vraiment.
Et évidemment this-- Ah.
D'accord.
Maintenant, ça marche.
Peut-être.
D'accord.
Une autre chose.
Ainsi, avec l'égalité, à Ce qui est cool à garder à l'esprit.
Avec PHP, car il est typé dynamiquement,
le type peut changer selon le moment vous avez, comment vous l'exécuter.
Je dois effectivement certains frais exemples que je vais vous montrer les gars.
>> Mais == vérifie juste pour égalité après le type jonglerie.
Donc, si vous avez quelque chose qui est comme le personnage 1 et le numéro 1,
PHP va vous dire que ceux sont égaux, car il
peuvent concilier les types de la deux d'entre eux jusqu'à ce qu'il soit égal,
qui peut-être pour votre cas est bien.
>> Si vous avez besoin de voir si elles sont le même type de valeur et de même type,
vous voulez que cette ===.
Et je ne pense pas que vous avez une cas où vous avez besoin d'utiliser cette
dans votre pset, mais pour beaucoup de vous qui allez à faire des pages web
pour vos projets finaux et les choses, il est une bonne chose de savoir que == === et
sont différents, et il est un bon distinction à comprendre.
>> D'accord.
So.
boucles Foreach.
Ils sont un moyen de itération sur un tableau.
Donc, tout comme les tableaux sont devenus donc beaucoup plus frais en PHP,
votre moyen d'itérer à travers un tableau, je pense,
devient aussi beaucoup plus frais et beaucoup plus puissant.
Ainsi, au lieu d'avoir à créer certains pour i est égal à 0 et que ce soit,
et ensuite mettre à jour que i que vous passez par,
nous avons cette boucle foreach impressionnant.
>> Alors, voici la norme générale la structure de ces deux.
Donc soit vous avez foreach d'un tableau que la valeur que vous souhaitez parcourir comme.
Voici donc le nom du tableau variable que vous souhaitez référencer,
et ceci est ce que vous voulez de l'appeler dans la boucle.
D'accord?
Donc, ce qui correspond à chaque élément de la matrice,
et vous utilisez cette valeur dans cette boucle.
>> Je ai un exemple.
Je sais exemples sont tellement mieux.
Et si cela est le cas il ya pas de touches, si cela est comme
si nous avons un seul où les touches sont les indices normales pour votre tableau.
Or ceci est aussi dans le cas si vous avez pas l'utilité pour les touches.
Si vous ne vous souciez pas les touches et que vous venez de
vouloir pour parcourir les valeurs pour chacun de ceux dans l'ordre,
Ce est très bien.
>> Vous pouvez utiliser la structure.
Sinon, si il ya des touches, notre valeur de $ change juste de $ valeur de la clé.
Alors il change juste à une paire de valeur de clé.
Et puis nous pouvons nous référer à $ key et $ valeur au sein de notre boucle.
D'accord?
So.
Exemple.
Assurez-il plus agréable.
D'accord.
>> Nous avons donc celui-ci ici, que nous avons une certaine
soient: Vous pouvez également créer un tableau comme celui-ci
en ayant une variable égale de tableau avec des parenthèses,
ou vous pouvez simplement faire support.
Vous devriez faire le support, mais ceci est une autre façon de le faire.
Nous avons donc ici d'un tableau de trois des éléments de une, deux, trois,
et nous avons notre foreach.
>> Notez ce une correspond à la tableau qui nous itérer,
et ceci est ce que nous appelons chaque chose dans notre tableau.
Et tout cela est en train de faire est qu'il est va imprimer chaque valeur.
Donc, si nous courons, nous remarquons que nous avoir une valeur, la valeur deux, la valeur trois.
>> Et de la même manière que typiquement tableaux doivent être d'un type,
tableaux ne doivent pas toutes être du même type ici.
Alors maintenant, nous avons une certaine int.
Nous avons deux chaînes.
Ainsi, vos tableaux peuvent obtenir beaucoup plus puissant
et peut-être un peu Messier bits, en fonction
sur la façon dont vous voulez regarder.
Donc, nous pouvons changer cette à ce que nous voulons.
Nous utilisons valeur.
Voilà juste la chose la norme que nous utilisons.
Mais, juste important de savoir que nous pouvons appeler ce compteur comme si nous voulions.
Et tant qu'ils correspondent, évidemment tout le monde est heureux.
Si jamais vous voulez exécuter PHP lancer quelque chose comme cette commande
ligne vous savez ce ici, vous faites juste PHP,
et alors tout fichier que vous voulez exécuter.
>> Donc, si vous voulez perdre son temps avec PHP, et plus la logique
et vous ne devez vraiment voir comme dans un navigateur Web,
il vous suffit de l'exécuter dans la ligne de commande comme ça
et echo imprimer sur ce que vous voulez.
D'accord.
L'autre façon que nous avons est comme ça.
Donc, cela est peut-être un cas où vous voulez utiliser à la fois la clé et la valeur,
Je sais que ce sont comme exemples de super artificielles
mais je l'espère qu'ils font un peu plus clair.
Nous avons donc ici d'un tableau de nouveau, mais cette fois-ci,
au lieu d'avoir juste vous savez, il n'y a pas de clé.
Nous avons touches pour chacune de celles-ci.
Ainsi, un va être un, b correspondra à deux, et c correspond à trois.
Et dans ce cas, si nous écrivons cette façon,
nous avons accès à la fois clé et la valeur de chacun de ceux-ci.
>> Alors, quand nous courons ce, nous obtenons chacun de ceux-ci.
Donc, il imprime nos clés et les valeurs correspondantes.
Une autre chose intéressante est que, et je sais dit comme celui-ci ne possède pas de touches,
mais il a toujours implicitement une touche car si vous ne déléguez pas
une clé, bien sûr, votre touches sont seulement vos index
ou des indices pour que nous puissions toujours aussi faire celui-ci.
Comme ça.
Je vais imprimer.
Donc dans ce cas, si vous remarquez, nous avons nos clés implicites
de zéro, un, deux et ici.
>> Et de la même manière avec celui-ci, vous pouvez toujours dire r comme valeur,
et vous avez juste accès à la valeur.
Vous ne vous souciez pas de votre clés, même si votre possède des touches,
si vous ne vous souciez pas eux, vous ne faites pas nécessairement
besoin de les mettre dans votre boucle foreach.
Est-ce que cela a un sens pour tout le monde?
>> PUBLIC: vous ne pouvez appeler les touches, trop?
ALLISON BUCHHOLTZ-UA: Ouais vous pourrait tout à fait faire ça, aussi.
En fait, attendre.
Attendez.
serait it-- No.
Si vous voulez la touche, puis vous devez faire la clé de valeur.
PUBLIC: Ajouter de la valeur.
ALLISON BUCHHOLTZ-UA: Ouais.
Et vous venez de ne jamais utiliser la valeur est tout.
>> PUBLIC: OK.
ALLISON BUCHHOLTZ-UA: Si vous vient de mettre une chose là-dedans,
il va supposer que vous êtes parler de la valeur, pas la clé.
Grande question.
Bien.
Laisser refroidir.
En fait, tenir le coup.
Permettez-moi de voir ce que je dois.
Donc, avant d'entrer dans la poste et obtenir, je je veux juste vous montrer les gars un peu
sur la façon dont elle est dynamique typé, qui est plutôt cool.
Je dois tout cela.
Je dois comme quatre exemples ici, et je vais vous envoyer tout ce code
après la classe.
>> Nous avons donc ici une variable a.
Voilà seulement 1 plus 1, non?
Et nous allons imprimer ce que ça égal à, et puis nous avons un certain type.
Et quelqu'un a des conjectures sur quel type il va être?
>> PUBLIC: Un int.
>> ALLISON BUCHHOLTZ-UA: Oui, il est un int.
Donc, il les ajoute tout ensemble.
Il est un int.
Toutes les bonnes.
Donc, ce prochain, nous avons ce qui ressemble à cordes.
Quand nous courons cela, il pense, oh.
Vous êtes en train d'essayer juste ajouter des choses.
Vous venez de recevoir confus.
Alors je vais juste le corriger pour vous.
Vous vouliez int.
Je sais que vous vouliez dire int.
>> Donc, cela est une des façons dont vous pouvez voir, PHP a un esprit de sa propre.
Même si nous avons dit explicitement, regarder, ceux-ci sont des chaînes.
Je veux dire la chaîne d'un.
Mais il dit, oh, mais vous essayez de les ajouter,
vous devez donc signifier qu'il est un entier.
Faites-moi confiance sur ce point.
Donc, il dit qu'il est un entier, et il les ajoute comme d'habitude.
Donc plutôt cool si vous allez à devenir paresseux avec vos choses,
ou si vous voulez ajouter quelque chose.
>> Un grand avantage est que, si vous repensez à pset2,
quelque chose de l'utilisateur entrées, à droite, que nous pensons
est un char ou une chaîne au premier abord.
Maintenant, nous ne devons pas explicitement dire, oh, en font un int.
PHP serait juste comme, oh oui.
Je sais que vous vouliez un int.
Silly.
Tu ne voulais pas une chaîne.
>> Donc, dans ce cas, maintenant que nous avons cela, ce
Ne vous les gars pense que ça va faire ici?
Nous avons une chaîne et un entier maintenant.
>> PUBLIC: Il est encore un int.
>> ALLISON BUCHHOLTZ-UA: Il est encore un int.
Et la raison est-- je mettrais d'autres exemples, mais le plaisir de celui-ci.
La raison qu'il fait car il est il est comme vous essayez d'ajouter des choses.
Donc, si vous essayez d'ajouter choses, je vais assumer,
raisonnablement, vous avez quelque chose raisonnable que vous pourriez ajouter.
Je vais juste faire un int, et nous allons juste ajouter, comme d'habitude.
Et puis même, je Vous pensez que vous les gars avez l'idée.
Nous avons aussi celui-là, qui est carbonise tout, et il fait la même chose.
Il est comme, vous idiot utilisateur.
vous savez que vous voulez un int.
>> PUBLIC: Si nous mettons une lettre, sera il faire la [inaudible] valeur ou pas?
ALLISON BUCHHOLTZ-UA: Oh, qui est une bonne question.
Voyons.
Nope, est toujours un int.
Il est donc un peu fou.
Ceci est juste un peu de vous montrer PHP peut parfois comporter de irrational-- Non
totalement irrationnelle, mais elle pourrait se comporter de manière que vous ne vous attendez pas vraiment.
Ainsi, en cas de doute, vérifiez les types de choses.
Cette fonction gettype peut être super utile.
>> En règle générale, si vous faites quelque chose avec plusses ou des opérateurs mathématiques,
ça va prendre quoi que ce soit raisonnable est juste un int.
Donc, vous avez char 1, ou un chaîne 1, ou le réel int 1,
il va supposer que.
Si vous voulez catalogué rien, vous pouvez tout à fait.
Vous pourriez faire quelque chose comme doubler ici, je crois.
Et dans ce cas, il va dire, oh.
Je vais faire cette double raison vous explicitement dit qu'il est un double.
Vous pouvez toujours explicitement faire PHP faire quelque chose, mais.
>> PUBLIC: Attendez, pourquoi est un plus 1 là-bas?
>> ALLISON BUCHHOLTZ-UA: Oh.
Là.
Il était juste un écho.
Ce fut ma faute.
Ainsi, vous pouvez explicitement dire à faire quelque chose d'un certain type,
mais la plupart du temps, ça va décider dynamiquement lors de l'exécution.
Donc, il va continuer à travers et ça va être comme, OK.
Ce qui fait le plus sens pour que ce soit?
Faut-il vraiment être une chaîne?
Faut-il être un int?
Faut-il être un flotteur?
Faut-il être un double?
Et il décide que pour vous.
>> Vous pouvez le forcer à faire ce que vous voulez, mais-
>> Public: Est-ce que le ralentir?
ALLISON BUCHHOLTZ-UA: Eh bien, Je veux dire, C est très efficace.
Je pense qu'il est nettement plus lente car il doit le processus tel qu'il va.
C, je suis presque sûr est plus rapide.
Mais évidemment, il ya un beaucoup de choses cool dans ici
que nous ne devons pas nous inquiéter à propos.
Donc, si nous sommes à la recherche à travers un réseau, nous
ne pas avoir à créer réellement quelques recherches à travers le réseau.
Nous pouvons seulement demander la clé et PHP prendre soin d'elle.
>> Laisser refroidir.
Impressionnant.
On dirait que la fin de mes exemples.
Vous les gars ne vont jamais oublier que maintenant.
Vous allez être comme, oh, PHP est juste comme ça maman qui ne ressemble à aucun, non, non.
Je sais ce que vous voulez dire.
Je sais ce que vous voulez.
D'accord.
Donc, cela est, je l'espère, utile pour votre pset, au moins dans le début,
parce que vous êtes tous sur le traitement avec les formes et les choses de l'utilisateur.
>> Donc, il ya deux façons que nous passer autour d'info avec PHP et HTML
lorsque nous passons entre ces deux choses.
Nous avons donc $ _GET, qui est passé via l'URL, et nous avons $ _POST,
qui est transmis dans le message corps, et si nous considérons qu'il est caché.
Mais une chose à comprendre est que ni de ceux-ci sont considérés comme sûrs.
>> Si vous avez quelqu'un qui est intercepter les messages qui vont
d'avant en arrière entre vous et le serveur, ils peuvent toujours obtenir ces données.
Ils ont juste à regarder un peu plus difficile.
Il est pas vraiment that-- il est juste caché de l'URL.
Il est encore dans le corps du message, cependant, si elles ont accès à ce,
il est vraiment juste like--
>> Il est comme la différence entre quelque chose
en cours d'écriture sur la face extérieure de une enveloppe et quelque chose être
écrit sur un morceau de papier à l'intérieur.
Il est pas si difficile d'ouvrir l'enveloppe et obtenir le morceau de papier à l'intérieur.
Certes, il serait beaucoup plus facile il suffit de lire l'extérieur.
Mais voilà comment vous pouvez genre de penser d'eux.
Aucun de ceux-ci sont vraiment considéré comme sûr.
D'accord?
>> Certes, n'a pas vraiment importance pour votre pset
parce que vous ne vous occupez pas avec des secrets commerciaux,
mais il est généralement une chose que nous avons vraiment
tient à souligner parce que les gens pense, oh, eh bien, il est caché.
Il doit être super sécurisé.
Non.
Il est non sécurisé.
Il est juste un peu moins d'insécurité, je suppose.
Ou non sécurisé.
>> Nous avons donc fait un exemple.
Comme vous le savez, je l'aime enseigner plus d'exemples.
Je sens que cette aide à mieux.
Donc, nous avons une certaine forme simple ici qui en fait, si vous les gars sont toujours
confus à propos de PHP, cette est vraiment petit,
mais php.net est en fait vraiment une bonne documentation.
Je l'aime vraiment.
Je l'ai utilisé pour préparer cette section, donc je ne peux vétérinaire pour vous.
>> Ceci est un exemple d'eux sur la façon dont $ _POST et $ _GET travail.
La seule différence, entre les deux de ceux-ci,
où en plus de l'information est affichée, que ce soit dans l'URL
ou dans le corps, est également ce qui est la méthode.
Donc, à votre forme pour HTML-- Cette est un formulaire HTML très simple.
Quelqu'un peut-il me dire ce qu'il fait?
PUBLIC: Demandez votre nom et l'âge.
ALLISON BUCHHOLTZ-UA: Exactement.
Nous avons donc des actions de formulaire.
Cela nous permet savons qu'il est une certaine forme de loi.
Et qu'est-ce qui va se passer est, quand nous avons frappé Soumettre
il va appeler action.php, qui est ce que cela est,
et il va l'appeler avec un procédé de _POST.
Donc dans ce cas, votre l'information est cachée.
et il est juste votre nom, certains Type d'entrée appelé nom, un âge,
input type = "text" que nous appelons aussi l'âge.
Et puis si nous avons atteint Soumettre Soumettre appellera action.php.
>> Alors, quand on en fait sur soumettre, nous sait qu'il a posté, en soi,
et nous allons réellement voir dans votre problème réglé que nous espérons
rendre à pied à travers un peu.
Et tout ce qu'il fait ici est POST est une variable superglobale
dont nous avons parlé au cours de conférence.
Et comment vous pouvez penser à $ _POST est qu'il est juste un tableau associatif.
D'accord?
Donc, ceci est une clé, ce est une clé, et quel que soit
la saisie de l'utilisateur devient une pour chaque valeur de celles-ci.
D'accord?
>> Donc, si nous devions écrire ce que ce tableau ressemblait réellement juste après nous
envoyé le formulaire, nous le ferions avoir, c'est notre $ _POST,
et d'un tableau où nous avons un nom.
Disons que nous ferons mon nom, et puis nous avons un certain âge, 21.
Woo.
Donc, tout cela est $ _POST est. $ _POST est juste un tableau associatif, OK?
>> Il dit simplement, OK.
Quelles sont les choses que nous avons demandé à l'utilisateur?
Quelles sont les variables que nous passons autour
que nous avons demandé dans ce formulaire?
Et puis ce sont les valeurs associées à cela?
Donc dans ce cas, si je l'ai soumis avec un nom d'Ally et un âge de 21 ans,
voilà ce que $ _POST ressemble.
D'accord?
Et voici ce que cette fichier PHP a accès.
Bien?
>> Donc dans ce cas, cela est tout comme faire toute autre chose de notre tableau.
Au lieu d'un index dans notre tableau, nous avons une certaine touche.
Donc, cela va donner moi la valeur au nom de la clé.
Donc cela va être Ally, et ce droit ici va me donner
la valeur à _POST où l'$ clé est l'âge, ce qui sera 21.
Vous allez être ce faisant un peu.
Oui, à partir de quelle partie?
>> PUBLIC: Quand vous étiez montrant la partie inférieure.
ALLISON BUCHHOLTZ-UA: Cette partie inférieure?
D'accord.
Alors, vous comprenez cela est notre HTML former, et nous avons une méthode $ _POST,
qui importe.
Cela pourrait aussi être $ _GET, mais à cette fin,
nous allons juste de dire qu'il est $ _POST.
Lorsque nous soumettons cette forme, cela est partie d'un fichier PHP qui est appelé.
Donc ce fichier PHP va maintenant exécuter compte tenu des informations à partir de notre HTML
forme.
>> Donc, ce qu'il fait est, quand nous Soumettre frapper sur notre formulaire HTML,
ça vous passer cette superglobale, qui est juste un tableau associatif.
Il est présent.
Il est juste comme passage que pour le fichier.
Et ce qu'il dit est, OK, voici $ _POST.
Il est votre tableau associatif.
Faire ce que vous voulez.
Et nous disons, OK.
Donnez-moi la valeur au nom, et me donner la valeur à l'âge.
>> Donc, ce ne sont que des touches, et ceci est notre tableau.
Est-ce que cela a un sens?
>> PUBLIC: Mmmh.
ALLISON BUCHHOLTZ-UA: Awesome.
Public: Si vous avez de soumettre à nouveau la forme-t-il suffit d'écrire sur les données?
ALLISON BUCHHOLTZ-UA: Ouais.
Mmmh?
>> Public: Pourquoi avez-vous de préciser qu'il est un int?
>> ALLISON BUCHHOLTZ-UA: Dans ce cas, la utilisateur est juste oblige à être un int.
>> PUBLIC: OK.
ALLISON BUCHHOLTZ-UA: Je ne sais pas si vous souhaitez réellement besoin que,
mais à leurs fins, ils ont décidé qu'ils voulaient que ce soit un int.
Ils sont juste typecasting il.
Peut-être qu'ils l'utiliser comme autre chose plus tard.
Ceci est juste un extrait.
Oui?
>> Public: Que faire si ils ont tapé 12, T-W-E-L-V-E, de l'âge?
ALLISON BUCHHOLTZ-UA: Si ils essayé de saisir que comme un int?
PUBLIC: Ouais.
ALLISON BUCHHOLTZ-UA: je oublier ce que cela fait.
Je pense qu'il pourrait essayer de convertir le premier caractère à un int,
ou prendre la valeur et convertir il, mais je ne sais plus exactement ce qu'il.
Une chose amusante à écrire un programme et essayer.
Faire une ou deux lignes.
OK, donc ce est l'un des principaux choses que vous allez faire.
Je vais marcher espérons par un couple de fichiers
de l'ensemble de processeurs avec vous les gars.
Il semble que nous allons le temps, afin que nous puissions le faire.
>> Mais vous allez être faire beaucoup de choses
comme ça, où vous êtes de passage choses à partir d'un formulaire HTML
dans ce formulaire PHP qui sera ensuite exécuter un certain ensemble d'instructions
sur les données qui ont été fournies.
Voilà littéralement l'essentiel de votre jeu de processeurs.
Ouais.
>> AUDIENCE: Le type = "submit", qui rend un bouton sur le formulaire HTML.
Y at-il moyen d'appeler qui touche quelque chose?
Alors seriez-vous comme name = "submit"?
Ou est ce bouton va juste être vider maintenant, parce que vous ne
il a donné un type, pas un nom.
>> ALLISON BUCHHOLTZ-UA: Je pense qu'il est aller juste pour être en ce moment vide.
Nous pouvons vraiment regarder dans le pset, parce que nous allons certainement
être à la recherche à la enregistrer genre de chose.
Mais oui, vous pouvez certainement spécifier le texte que vous voulez sur votre bouton.
OK, si SQL.
>> Lorsque vous achetez et vendre des actions, vous avez besoin de garder une trace de ceux-ci.
Donc, la façon dont nous allons faire est avec SQL, qui est juste une base de données.
Pensez-y comme un tableau où vous gardez toutes ces informations
sur vos différents utilisateurs.
Et vous les gars sont en fait va créer un d'eux.
Il est assez cool.
>> Et il n'y a que quatre choses principales ce que vous devez savoir pour ce jeu de processeurs,
et ils sont à jour, de sorte que vous essentiellement de mettre à jour les données.
Cela suppose qu'il est déjà là.
Si elle n'y est pas, ça va de vous frapper avec une erreur,
alors peut-être que vous voulez vérifier.
Et vous allez mettre à jour on-- je devrait actually- je ai le temps,
Je vais écrire un couple de ces.
Je vais vraiment vous donner un gars deux de l'échantillon, les commandes complètes de SQL,
parce que ce ne sont que le principal ceux, mais vous pouvez les réunir.
Donc, je vais le faire et je vous enverrai que à vous avec ces notes.
>> Donc, si vous voulez mettre à jour quelque chose, besoin de dire ce que vous mettez à jour
et où vous mettre à jour.
Ainsi, une commande typique de SQL serait mise à jour ID où quelque chose est égale à quelque chose.
Ou l'adresse de mise à jour comme où ID est égal à 3,
et cela de mettre à jour le champ d'adresse de votre utilisateur qui possède un ID de trois.
D'accord?
>> Donc, si vous allez à SQL et W3Schools, ils ont des exemples impressionnants.
En fait, je pourrais tirer certains dans un peu.
Et puis insérer dans, vous êtes juste l'insertion de certaines valeurs y.
Donc, si vous essayez de créer une nouvelle entrée, si vous créez un nouvel utilisateur,
vous pourriez faire insérer dans Quel que soit votre base de données est appelée,
et vous auriez toutes ces valeurs.
>> Ensuite, vous devez sélectionner, sélectionner les valeurs à afficher.
Donc, si vous essayez de vérifier voir si un utilisateur existe ou que vous soyez
en essayant d'attraper spécifique informations sur un utilisateur
vous allez être en utilisant select.
Et puis supprimer, je pense, est assez simple il.
Vous êtes juste supprimer quelque chose de la table.
Et en fait, je me tire en fait quelques exemples pour vous les gars.
Oh, regardez, il est ma page 61.
>> Donc, si nous allons à W3Schools, nous espérons qu'il est nouveau.
Oui, l'amour il.
Nous allons à SQL.
Donc, cela est quelque chose ici.
Donc, cela est très simple SELECT.
Man, je l'aime cette fonction.
Ainsi, vous pouvez avoir SELECT un domaine auprès des clients.
Dans ce cas, les clients se réfère à la base de données en ligne que vous utilisez,
Quel que soit votre table est appelée, et étoiles signifie simplement sélectionner tout.
Donnez-moi tous.
>> Donc, je veux juste vous donner un gars quelques exemples de cas où cela est.
Nous avons donc SELECT, UPDATE.
Voici donc le genre de syntaxe générale.
Donc JOUR, quel que soit votre nom de la table est, et puis sur SET
est où vous allez réellement être ce que les données que vous modifiez.
Cela pourrait donc être-- Let me faire un exemple ici.
Donc, cela va être--
>> D'accord.
Donc, je créé une petite base de données pour nous.
Nous allons avoir une pièce d'identité, certaines années, et certains ont appelée.
Donc un ID va être l'année '15, et nous allons juste faire moi.
Qui veut être le deuxième personne à notre table?
Tout le monde.
Je vais juste choisir Emma car rapide de votre nom.
Emma, ​​en quelle année êtes-vous?
>> PUBLIC: En quelle année?
>> ALLISON BUCHHOLTZ-UA: Ouais.
>> PUBLIC: '16.
ALLISON BUCHHOLTZ-UA: '16.
Vous allez juste être mon cochon Guinée pour aujourd'hui.
OK, si nous avons ces deux personnes.
En fait, permettez-moi de le faire.
Disons que je l'ai entendu de mal, et je en fait, dit-elle est un an plus jeune.
Elle est '17.
Ce que nous voulons faire ici, si nous voulu mettre à jour l'année de Emma
être correcte à l'aide que ce que nous avions faire est de nous dirions à jour les données sur ici.
>> Et tout cela peut être sur une seule ligne, mais puisque je comprimé pour l'espace ici,
Je vais écrire ici.
Et nous voulons mettre.
Voilà donc le tableau, nous mettons à jour.
SET va être ce que la colonne ou Quelles sont les données que nous réellement en train de changer.
Ce que nous allons changer est l'année, de sorte nous allons dire année SET = 16,
et alors où nous raconte l'utilisateur ou ce rang sont nous réellement mettre à jour ce.
>> Alors, où?
Nous avons deux options.
Quels sont les deux?
Ceux-ci sont uniques, non?
Ainsi, nos noms sont uniques et notre ID est unique,
si ce sont les deux options pour le cas où nous pourrions le faire?
Je vais vous donner un.
Nous pourrions faire WHERE ID = 2, ou nous pourrions faire ce que
si nous allons de ce paradigme ici.
>> PUBLIC: [inaudible].
ALLISON BUCHHOLTZ-UA: Exactement.
Donc, nous pourrions aussi faire name = Emma.
Et l'un de ces pourrait fonctionner.
Et nous avons eu cela, ce serait comme, OK.
Nous allons changer cela.
Vous êtes en fait 16, donc Maintenant, vous êtes de nouveau à droite.
OK, donc ce serait super utile dans votre pset
où peut-être que quelqu'un a décidé d'acheter 100 actions d'Apple,
et puis ils étaient comme, je plaisante.
Je ne veux 90 parts.
Et si ils vendent 10 d'entre eux, de sorte que vous besoin de mettre à jour le montant des stocks
dont ils disposent.
Ainsi, la mise à jour des stocks, table mise à jour.
>> D'accord.
Voilà donc un exemple là.
Voilà la syntaxe de mise à jour.
SUPPR.
Oh.
Insérez dans notre est autre.
Ainsi, celui-ci est très semblable.
Nous pourrions simplement dire, dans ce cas ajoutons quelqu'un.
Nous pouvons ajouter Ben cette fois.
Nous ne INSERT INTO, et nous voulez que le nom de notre table.
Dans ce cas, il est données.
>> Et puis nous voulons juste, vous allez VALEURS disent, et ce que vous allez faire
est, en fait, vous devez vous assurer que que vous avez quelque chose pour chaque ligne
que vous voulez.
Vous venez de les mettre en ordre.
Donc dans ce cas, nous dirions 3.
Vous avez 18 ans, Ben droite?
>> Public: 19.
ALLISON BUCHHOLTZ-UA: 19?
Public: 19.
ALLISON BUCHHOLTZ-UA: le '19 de votre année?
Vous diplômé en '18, non?
PUBLIC: Oh.
ALLISON BUCHHOLTZ-UA: année d'obtention du diplôme.
PUBLIC: OK.
ALLISON BUCHHOLTZ-UA: Je me suis dit, êtes-vous
déjà l'intention de prendre une année sabbatique ici?
Ainsi, '18, nous avons Ben.
Donc dans ce cas, ce serait aller à travers, il créer une nouvelle entrée ici.
Laisser refroidir.
Pas trop mal, non?
Beaucoup de ce qui va être la syntaxe pour vous les gars.
Les concepts devraient venir, espérons-le, relativement facilement.
La syntaxe est la seule chose qui peut être un peu délicat.
>> Et puis notre dernier est SUPPR, et que vous remarquez,
Je recommande fortement ce site.
Ce est super.
Il ya une tonne de choses.
Ainsi, de la même façon qu'on avait certains UPDATE, DELETE est très similaire.
Au lieu de cela nous avons Supprimer de données.
Donc dans ce cas, notre dernier celui que je vais écrire ici.
Disons que nous voulions me supprimer.
Je ne peux pas écrire aujourd'hui.
SUPPRIMER de quelque table, nous sommes dans les données.
Et il ya en fait trois façons nous pourrions choisir de me supprimer.
>> Vous les gars peuvent me dire ce que les trois des moyens sont, comment pourriez-vous me supprimer?
ID est égal à 1, où ID est égal à 1.
Nous pourrions faire où l'année est égal à 15, ou dont le nom est égal à Allison.
bien sûr, il ya seulement de trois manières différentes,
Parce que ce sont tous uniques.
Typiquement, dans votre table, et en particulier dans votre pset,
vous allez définir l'un des ces colonnes pour être unique.
>> Il va probablement y avoir un ID unique nombre, parce que si vous have-- fait,
il pourrait effectivement vous laisser deux.
Je ne me souviens pas si elle vous laisse vous avez deux de la même chose.
>> PUBLIC: il serait modifier leur comportement.
>> ALLISON BUCHHOLTZ-UA: Il serait.
Il va provoquer un comportement qui est inattendu, que vous ne pouvez pas vraiment prédire.
Ainsi, vous aurez certainement une colonne dans votre base de données qui sera unique,
et il est généralement vous pouvez définir de sorte qu'il est comme un identifiant unique,
et il va juste mettre à jour tous les fois que vous insérez dans la table.
Chaque fois que vous créez un nouveau rangée, il sera automatiquement
incrémenter et lui donner une ID unique.
Donc allusion à votre pset.
D'accord.
Voilà donc SQL.
>> Alors maintenant, nous allons parler la dernière chose, qui rejoint
en fait assez bien avec votre pset, si il aller de l'avant.
Donc, MVC, vue du modèle contrôleur.
Ceci est vraiment juste une façon pour garder les choses organisées.
De la même façon avec C, nous vous demandons de gars pour créer des fonctions et des choses distinctes
sur, ceci est juste un moyen de séparer code lorsque vous êtes faire du développement web.
>> Donc, cela rend les choses plus élégant et simplifié,
et cela est réellement la manière que votre pset est en fait
mis en place, afin de savoir si vous l'aimez ou pas, vous allez l'apprendre,
même si vous ne pensez pas vous l'apprendre.
Et une chose est, il vous permet également de faire beaucoup plus comme une collaboration de l'utilisateur.
>> Alors, quand je pris CS50, je l'ai fait une site web pour mon projet final,
et je me suis dit, je vais gérer les trucs de base de données.
Je ferai de nouveau truc de fin, et mon colocataire qui je prenais avec elle
était très artsy.
Elle fait de la scénographie, et elle voulu faire tout joli.
Donc, je suis comme, OK.
Vous pouvez prendre soin de toutes choses avant la fin.
>> Et la chose est, comme nous verrons très bientôt,
ce contrôleur de vue du modèle vous permet de séparer complètement de ce code afin
que je pouvais travailler sur mise en œuvre de nos pages,
et la manipulation d'informations dans nos bases de données,
et elle pourrait juste rendre les choses assez, et nous étions tous les deux très heureux,
parce que nous sommes arrivés à faire ce nous voulions tous les deux et nous
ne pas avoir à traiter avec l'autre.
>> Donc nous avons passé ensemble.
Nous aimons passer du temps.
Je ne voulais pas faire face à tout le CSS et HTML choses.
Je suis comme, vous le faites assez.
Je vais traiter de la base de données.
Nous avons donc ce vraiment cool, grande petite table.
Je l'aime tables.
Et dans le fond, le modèle, vous pouvez penser est juste votre base de données.
>> Je suis la personne de modèle pour mon projet.
Il est tout au sujet du stockage de l'information et l'organisation de ces données.
Donc, il est ce que nous aimons à rappeler fin.
Alors vous les gars allez traiter avec la base de données SQL et les fichiers de données.
Voilà votre modèle.
>> Votre point de vue, comme vous pouvez penser, sorte de logique,
est ce que votre utilisateur voit réellement.
Il est de l'interface utilisateur.
Il est avant que composant face.
Voilà ce que mon colocataire mis au travail tout le temps.
Elle était super heureux.
Voilà donc tout le HTML, et il ya très peu de PHP.
>> Si vous parlez seulement ce qui est affiché à l'utilisateur,
nous parlons de l'hypertexte.
Nous parlons à quoi il ressemble.
Nous ne parlons pas de logique, ou conditions, ou autres joyeusetés.
Tout cela est piloté par le contrôleur, OK?
Donc, qui gère les demandes des utilisateurs et obtient l'information.
>> Donc, une chose que vous devez savoir sur votre pset est que, dans votre point de vue,
tout ce qui est réellement l'affichage d'informations
ne doit jamais être prise appels à votre modèle.
Tout cela est géré dans votre contrôleur.
Votre commande est celui la médiation entre ces deux.
Il vous sera demandé le modèle pour certaines informations.
Il peut itérer dessus informations, comprendre
ce que vous avez réellement besoin de il, ce qu'il faut faire avec elle,
et puis ça va passer sur seulement les informations que vous
besoin de la vue pour vous de l'imprimer sur ou afficher à l'utilisateur, OK?
>> Parce que nous voyons la vue comme quelle que soit fait face à l'utilisateur,
de sorte qu'il sera beaucoup plus facile pour eux de comprendre,
oh, si vous faites certains appellent à votre modèle
et vous vous demandez tous les utilisateurs qui commence par la lettre A,
et vous faites ce que, à votre avis, toute personne qui peut voir votre page web
qui pourraient accéder.
>> Vous ne voulez pas nécessairement que.
Vous ne voulez pas les gens à voir de plus en ce que la base de données
ils devraient être voyant.
Seulement leurs préférences spécifiques.
Ainsi, le contrôleur gère tout cela.
Donc, tous vos fichiers .php que nous verrons vous pouvez examiner vos fichiers des contrôleurs.
Et qui est là où vous êtes va vraiment être
demander des choses à partir de votre base de données, et l'itération ou manipuler
si nécessaire avant transmettre à être consulté.
>> Il est un ensemble de processeurs vraiment cool, à mon avis.
Je pense qu'il est un peu plus comme la gratification instantanée,
parce que vous mettez en place un beaucoup de petites choses minuscules,
et chaque chose doit travailler sur son propre.
Pas comme, tout faire et puis voir si cela fonctionne.
Comme avec le logiciel où vous êtes comme, je suis
espérait vraiment cela est droit, parce que si il est pas,
il ya beaucoup de place, il pourrait être mal.
>> Bien.
Il suffit de faire en sorte que je l'ai dit tout ce que je devais dire à propos de MVC.
Ouais.
Laisser refroidir.
>> Ainsi, dans CS50 Finances, nous avons notre modèle, comme je viens de dire ici.
Ça va être MySQL et phpMyAdmin.
Je peux certainement tirer les de façon à ce vous les gars avez une chance de le regarder.
Comme je le disais avant, il SQL base de données agit comme votre modèle,
et vous pouvez envoyer ce que nous appelons des requêtes, qui ne sont que ces sortes de choses.
Ceux-ci sont appelés une requête.
Ceci est une requête, où vous êtes juste demander à votre base de données pour quelque chose,
ou vous décidez de changer votre la base de données d'une manière quelconque.
Voilà tout ce qu'il est.
Et vous le faites avec le fonctions que nous vous avons donné ici.
>> Vous pouvez également manipuler à la main via phpMyAdmin,
qui nous pouvons certainement prendre un coup d'oeil.
Je vais créer un échantillon base de données avec vous les gars.
D'accord.
Donc, contrôleur.
Donc dans ce cas, si vous avis, tout cela est PHP.
Notez que ce genre de votre essentiel de votre commande
est qu'il doit être principalement PHP.
Si vous avez HTML dans votre contrôleur, pas vraiment sûr de ce qui se passe là-bas.
De la même façon que je l'ai dit, si vous gérer à [inaudible] avec HTML,
Je suis vraiment intéressé.
>> Donc, ce que nous avons ici est vous avez une requête.
Requête est une fonction qui nous avons construit pour vous les gars.
Il est comme un wrapper pour faire des requêtes à votre base de données un peu plus facile.
Si vous ne disposez que, la syntaxe pour en train de parler à votre base de données SQL
serait différent, donc nous juste lui fournir pour vous les gars.
Nous aimons à rendre la vie facile.
>> Donc dans ce cas, pouvez-vous les gars me dire ce que cette ligne est en train de faire?
SELECT * à partir de certains table.
PUBLIC: Sélectionner tout de ce tableau.
ALLISON BUCHHOLTZ-UA: Exactement.
Ainsi, il est dit, donnez-moi tout de ce tableau.
Et il est le stocker dans un résultat variable.
Et cela dit, si le résultat ne correspond pas à faux, alors que nous faisons chacun de cela.
Donc, si il n'y a rien ici, si votre tableau de vide ou il existe tout simplement pas,
il va retourner faux.
Donc dans ce cas, nous sommes en train de faire sûr que quelque chose était en fait
à nous retourner.
>> Et puis ici, nous avons notre grande boucle foreach
que nous itération sur notre résultat, et nous appelons ce rang,
et nous disons rend ce modèle où sont vos données à ce résultat.
D'accord?
Donc, il est tout simplement le traitement la ligne du résultat.
Sinon, il hurle.
Ainsi, ceci est un exemple du contrôleur.
Comme vous le voyez, cela est la seulement place-- Ouais, désolé?
>> Public: Pourquoi y at-il une esperluette avant la ligne?
>> ALLISON BUCHHOLTZ-UA: Une esperluette avant la ligne.
Nous sommes juste itération.
Voilà aussi une adresse de--
>> Auditoire: Alors, il est comme C référencement.
>> ALLISON BUCHHOLTZ-UA: Il est faire en sorte que vous êtes réellement
modifier l'original et non une copie.
Il est de la même façon avec C où nous passons par référence ici, juste
pour être sûr.
>> PUBLIC: est-il pas == au lieu de pas = en PHP?
>> ALLISON BUCHHOLTZ-UA: Il est pas la ==.
>> PUBLIC: Parce que est égal à C est just--
>> ALLISON BUCHHOLTZ-UA: Il est tout simplement pas =.
Ouais, non.
Il est pas ==.
Parce que == en PHP vérifie égalité avec basculement, accordé,
mais la qualité supplémentaire.
Donc, ça ne == en PHP.
Il est l'un des peu les différences syntaxiques.
Ouais.
Donc, nous ne faisons que l'itération à travers chaque ligne,
et de rendre, si vous les gars lire vos spécifications,
est juste une autre fonction qui est passe réellement à traiter tout le HTML
et l'afficher dans votre navigateur Web pour vous.
>> D'accord.
Donc, nous aimons à penser de vos contrôleurs que ce que gère la logique métier.
Comme vous le voyez ici, voilà où nous en sommes prendre nos données de la table,
nous traitons d'une certaine façon, et puis nous passons au large.
Quand nous faisons rendre certains modèle, certains modèle est notre point de vue,
et nous passons seulement les données qu'il doit obtenir.
Pas toutes les données.
Seulement les données que nous voulons aller.
D'accord?
Fondamentalement, les données après le traitement.
>> Voilà donc le point de vue, cela est le modèle de somme que nous avons,
et tout cela est fait, vous ne pouvez avoir un peu de PHP dans votre vue.
Il est pas comme un pas de PHP en vue.
Vous devez juste avoir PHP très peu en vue,
et vous ne devriez jamais être interrogation dans votre vue.
Vous ne devriez jamais être parlez à votre base de données dans votre vue.
Voilà la grande différence.
>> Donc ce qui se passe ici est que nous avons PHP qui est une itération dans la rangée.
Donc dans ce cas, puisque nous étions itérer chaque ligne
et de rendre quelque chose, ce fut probablement comme un tableau à deux dimensions
où nous avons une ligne qui est, en soi, un tableau,
parce que nous sommes itération à travers elle à nouveau.
Et nous sommes juste imprimer le nom de la ligne, puis y mettre fin.
>> Vous ne devriez pas avoir ce dans le foreach.
Je ne l'ai jamais vu ça en fait.
Je fais juste foreach.
OK, si tel est le point de vue.
Voyons voir si nous pouvons nous promener à travers un peu de votre pset.
Nous avons 15 minutes, donc je suis sûr que vous les gars aimeraient que plus que
cessant tôt.
Permettez-moi de voir si je peux apporter cela.
>> Donc je ne sais pas combien d'entre vous les gars ont téléchargé et autres joyeusetés encore,
mais nous avons ici le nom d'utilisateur, et nous avons un certain mot de passe.
Et malheureusement, droit maintenant la base de données est vide,
si nous avons réellement besoin créer une base de données.
Eh bien, ce est bizarre.
Ne vous attendez pas que.
Les erreurs techniques.
Les difficultés techniques.
Nous avons quelques pset7.
Laisser refroidir.
>> Donc, une chose que vous pouvez faire est, avec un query-- je vais créer une table.
Donc cela va être users-- ce vous pouvez le faire ici, si nous avons some--
Vraiment maintenant?
D'accord.
Évidemment, je ne fais pas si chaud.
Oh.
Je sais pourquoi.
Parce que je ne créé mes tableaux réels.
Ainsi, lorsque vous commencez à une base de données, vous avez évidemment
décider quelles sont les choses que je dois avoir ici?
>> Donc, si nous ne partons notre tableau de données ici,
nous avions une pièce d'identité, qui peut juste rester un int.
Et si nous regardons ici, il n'y a quelque chose de cool that-- indice Donc.
Si vous faites primaire, il sera plus la chose que votre table est organisé par,
et il sera également le rendre unique.
Donc dans ce cas, nous ferons primaire, et je vais faire de ce nom,
puis nous allons faire un varchar de comme 26 lettres, parce que pourquoi pas?
>> Et puis vous pouvez aller pour sauver, et puis si vous le voyez, nous avons certains utilisateurs ici.
Donc, si nous voulions faire un Insertion, nous pourrions le faire
de cette façon, ou si vous vouliez pratique avec votre queries-- Oh boy.
Je ne l'ai pas utilisé ce pour toujours.
Je prends ce retour.
>> Vous pouvez modifier cela sur votre propre soit simplement en insérant manuellement des informations
avec quelque chose comme vous peut changer l'un de ces
si vous voulez make-- Si vous voulez tout à coup se débarrasser de nom, vous pouvez déposer,
vous pouvez faire toutes ces choses.
Si vous devez jamais modifier manuellement votre table,
Je suggère de faire en phpMyAdmin plutôt que d'essayer
de comprendre le SQL requêtes en général.
Lorsque vous commencez votre jeu de processeurs, vous allez avoir à travailler ici,
si vous habituer à cela.
Et puis, quand vous voulez réellement à insérer choses dans votre table--
Je me demande vraiment où cela est, parce que there's-- Ici, il est.
Voilà ce que je voulais.
Donc, si vous allez à SQL, vous pourriez voir réellement, comme nous le voyons ici,
nous avons des requêtes SQL.
>> Donc, si nous voulions sélectionner quelque chose ou si nous voulions insérer quelque chose,
nous pouvons faire insérer dans les utilisateurs, non?
Je pense que vous avez besoin de la barre oblique inverse.
Une chose à savoir est, si vous êtes jamais utiliser ce,
vous devez utiliser ces dos apostrophes, qui sont typiquement,
si vous êtes sur un Mac, juste au-dessus onglet.
Donc, une bonne chose à savoir.
>> Vous pouvez insérer dans les utilisateurs, et nous avons nos valeurs, non?
Donc, nous avons des valeurs, et nos valeurs dans ce cas serait juste,
nous avons seulement un code d'identification nous pourrait faire un si nous voulions.
Voilà bizarre.
D'accord.
Voilà donc comme une brève petite chose avec SQL,
mais il pourrait être plus utile à fait examiner certains des fichiers ici.
>> Alors, allez à la section Téléchargements.
Oh, pas les téléchargements.
Donc, juste un parcours rapide ce qui est dans chacun de ces dossiers.
Il comprend, nous avons juste des choses que configurer votre navigateur,
nous avons ces constantes, et nous avons ces fonctions.
Si vous êtes intéressé par l'un d'eux, Je recommande en regardant fonctions.
L'un d'eux qui est super utile, est en fait celui-là, d'un dépotoir.
>> Donc, si vous utilisez cette option, il sera fait juste
imprimer toute variable que vous le souhaitez à.
Donc, si vous éprouvez des difficultés à déterminer ce que ce tableau ressemble,
ce ou ces données en fait, comment il est formaté,
cela est une bonne chose à utiliser.
Surtout quand vous avez une utilisateur avec de multiples actions,
cela va être quelque chose de grand à utiliser.
Car il pourrait être formatted--
>> Je sais au moins pour moi quand je l'ai fait ce jeu de processeurs, elle a été formatée dans un chemin
que je ne l'ai pas assez attends.
Donc, je voulais parcourir et essayer de le manipuler,
mais je ne l'ai pas vraiment comprendre ce que je faisais.
Donc, si vous venez de vider, il sera imprimer pour le navigateur,
et vous pouvez voir exactement comment il est formaté.
Il va généralement l'imprimer comme un tableau avec ses clés et ses valeurs.
Ainsi, il peut y aider.
Il peut également aider à faire vous que vous êtes réellement
saisir les données vous pensiez que vous étiez.
Donc, si vous étiez comme, certainement ma table dit il ya un utilisateur avec cet identifiant,
mais quand vous allez à vider le variable, il n'y est pas,
vous savez évidemment que ce où une erreur va être.
Ceci est l'un des meilleurs outils pour le débogage, à mon avis.
Et puis il ya un quelques autres choses ici,
mais pour la plupart, qui est la celui que je veux attirer votre attention,
car il est très utile.
>> Publique, ce que nous avons ici est, tout cela est de notre trucs CSS.
Donc, CSS, polices, nos images, ainsi de suite.
Cela est d'autant trucs qui vous ne devez pas modifier.
Vous les gars pouvez penser si ce a des choses comme CSS dans les polices,
serait-ce un modèle, ou une vue ou un contrôleur?
PUBLIC: [Inaudible]
ALLISON BUCHHOLTZ-UA: Ce serait plus d'un point de vue, non?
Cette gère tous choses, comment les choses ont l'air.
Donc, si nous ouvrons ce ici, nous voyons que tout ce qui se passe ici
est que nous sommes rendons quelque chose.
D'accord?
Donc, ce serait très bien considéré comme un point de vue à cet égard.
Donc, cela est en train de prendre un certain, qu'il appelle certains portfolio.php
que nous avons, et il est passant dans le titre et le portefeuille.
Et il est juste que le rendu.
En fait, je retire ce que.
Ceci est un dispositif de commande, parce que rendre, rappelez-vous, rend la vue.
Donc, dans ce portfolio.php cas serait votre point de vue.
Désolé, les gars.
Portfolio.php va être votre point de vue, et ce serait juste
être votre contrôleur pour cela.
Et si nous prenons un coup d'œil à cette dernier ici, modèles,
modèles sont tous de vos points de vue ici.
Donc, si nous regardons, évidemment nous voyons beaucoup de HTML ici.
>> Alors celui-ci est juste de vous montrer ce que la page de connexion devrait ressembler.
Vous remarquerez que nous avons une certaine de former des groupes, ont soumettre.
Voici comment vous décidez ce que est affiché sur il.
Vous avez un certain type de bouton = "submit", et puis vous avez ce que vous voulez
à afficher dans le bouton.
Voilà donc comment vous rendre apparaître comme tout ce que vous souhaitez.
>> Et nous voir ici, nous avons une certaine nom d'utilisateur, mot de passe certains,
et quand nous avons fait sur soumettre, il va y avoir un poste,
et il va poster à quoi?
Quel est le contrôleur de ce point de vue?
Lorsque nous avons atteint Soumettre ce qui se passe d'être appelé?
Ne savons-nous?
Il est ici, si login.php.
Quelque chose que vous êtes des va mettre en œuvre.
>> Ainsi, vous pouvez toujours dire ce qui va être
appelé après vous cliquez sur Envoyer par cette première ligne ici.
Qu'est-ce que l'action du formulaire est.
Lorsque ce formulaire est soumis, quelles mesures prenons-nous?
Nous appelons login.php, et nous appeler avec cette méthode
de poste, qui a le les informations cachées.
D'accord?
Donc ceci est votre point de vue, et puis évidemment si nous sommes allés à login.php-- L'avons-nous
encore?
Ouais.
>> Donc, comme nous le voyons ici, ce a beaucoup plus logique.
Il est tout notre PHP ici.
Nous essayons de voir si elle était $ _GET, si elle était $ _POST, la validation des choses,
interrogation, tout ce genre de choses.
Donc, ce ne sont que les trois des choses différentes ici.
vous ne devez pas changer les choses.
Vous pourrez créer des choses dans le modèle, peut-être,
mais pour autant que HTML ou le style de tout cela va,
vous pouvez le laisser tel plaine ou aussi complexe que vous le souhaitez.
>> Certaines personnes se sont vraiment dedans et faire quelques sites assez impressionnant.
Vous n'êtes pas obligé de le faire.
Si vous avez le temps, il est une chose vraiment cool.
Vous pouvez perdre son temps avec CSS et HTML et obtenir une bien meilleure idée de ce,
mais ne vous sentez pas obligé de.
Il ya beaucoup à faire pour vous sur le arrière la mise en œuvre connecter,
et enregistrer, et toutes ces choses.
>> Donc, nous espérons que cela aide un peu.
Ne vous les gars avez des questions sur tout ce que nous avons dépassé,
toutes autres ressources?
Je vais certainement envoyer tous mon exemple de code PHP à vous les gars,
et alors hésitez pas à prendre photos ou autres joyeusetés de ce.
En outre, il est en ligne.
Vous pouvez toujours regarder à nouveau.
Donc, si ça y est, tout le monde bon?
Oui.
>> PUBLIC: Je veux juste à confirmer, lorsque nous sommes
faire de sélection en SQL, la étoiles signifie tout, non?
ALLISON BUCHHOLTZ-UA: Oui.
Public: Et puis si vous ne disposez pas de l'étoile,
si vous voulez prendre de un spécifique ligne, alors vous venez de mettre le nom de--
ALLISON BUCHHOLTZ-UA: Le nom de la ligne
et ce que vous voulez, vous voulez que la valeur de.
>> Public: Et puis la date.
ALLISON BUCHHOLTZ-UA: Quel que soit le vous cherchez, ouais.
De la même façon, si vous ne supprimez * à partir de certains table, il va tout supprimer.
Donc, * est juste un sauvage carte pour tout.
>> PUBLIC: OK.
>> ALLISON BUCHHOLTZ-UA: Cool.
Impressionnant.
Eh bien, avoir un grand Lundi, les gars.
Je vous verrai la semaine prochaine.
Bonne chance pour votre jeu de processeurs.