[Powered by Google Translate] [Həftə 8, davamı]
[David J. Malan] [Harvard Universiteti]
[Bu CS50 edir.] [CS50.TV]
>> Bu CS50, belə ki, burada həftə 8 sonu.
Əlbəttə, biz bu həftə bir qasırğa bir qədər idi
belə indi bu mühazirə zalında siz və məni yalnız həqiqətən
lakin bu gün biz PHP haqqında söhbət davam
və web proqramlaşdırma haqqında daha çox, ümumiyyətlə, biz də fikir təqdim
verilənlər bazası, xüsusilə bir, bu gün çox populyar olan MySQL, deyilən
onun ölçeklenebilirlik həmçinin onun azad və açıq mənbə olan səbəbiylə böyük bir hissəsi.
>> Lakin ilk biz sonuncu dəfə off sol harada bir göz.
Biz bir neçə Frosh Ani nümunələri baxaraq edilmişdir Xatırladaq ki,
və bu bəzi 15 + il əvvəl ilə gələn çirkin forması idi
birinci intramural idman kampus reyestri haqqında tələbələr olması üçün
həqiqətən Wigglesworth üçün həyət arasında artıq trek olmadan
bəzi disiplini qapısını altında bir kağız fiziki parça uçmaq.
Əvəzində biz online hər şey köçüb, lakin biz istifadə etmək lazımdır ki, nə
bir neçə texnologiyaları, belə ki, bir, biz HTML, mətn biçimlendirme dili, lazım
hansı daha struktur web pages etmək olan bu biçimlendirme dili.
>> Cascading Style Sheets, bu gün CSS bir qədər istifadə edərək,
biz bir az fərqli sintaksis istifadə edərək web səhifə stylizations istifadə vasitəsi,
HTML onun strukturu haqqında idi.
Biz həmçinin bir web proqramlaşdırma dili tanıtmaq lazımdır.
Bu halda, biz PHP istifadə edəcəyik və PHP bizə imkan gedir
dinamik çıxış content, eləcə də kimi proqram şeyə
e-poçt göndərmək, biz ötən həftə sol qeyd işi idi.
>> Bu kodu 2 hissədən idi ki, xatırlayıram.
Bir, biz froshims3.php idi
və bu, onun daxili HTML formada əsasən biçimlendirme idi
stil atributları qədər burada CSS kiçik bit
şəklində özünü səhifə, lakin kənarda mərkəzi olacaq ki,
bəzi nümayəndəsi forma giriş, mətn sahəsində bir onay idi
Bəzi radio düymələr, bir Menyu seçin, və bir submit 'düyməsinə basın.
Bu forma vasitəsi ilə, biz, yəqin register3.php adlı bir fayl təqdim
olan özü kimi bir az bir şey baxdı.
İndi register3.php, geri, bu kodu ən e-poçt haqqında idi.
Bu əmin təqdim edən formada dəyərləndirmə bir az etdi
sahələrində həqiqətən gözlənilir təmin edilmişdir.
Sonra, az yeni sintaksis istifadə edərək bəzi PHP funksiyaları adlı
bu C.-dən borc götürülmüş oldu, baxmayaraq
>> Bu arrow operator Bookmark obyekt-yönümlü proqramlaşdırma deyilən bir şey istifadə etmək üçün imkan verir.
Biz burada hər hansı bir detal ki, daxil, indi üçün bilməyəcək
bu obyektləri ilə bağlı funksiyaları olan bir yoldur
biz C. gördüm kimi olan, strukturu xüsusi bir növü var
Amma indi üçün, yalnız bu istifadə etmək doğru sintaksis ki, iman etmək
bu PHPMailer kitabxana kimi bir kitabxana istifadə edərkən.
Və sonra bu faylı sonunda biz dinamik bir e-poçt istehsal etdi
mənim jharvard@cs50.net hesabınıza gönderilen oldu ki,
mənim jharvard@cs50.net hesabı,
və biz bu idman üçün qeydiyyatdan ki, müvafiq istifadəçi məlumat.
Bu Frosh Ani site bütün il əvvəl nə olduqca çox
Mən bunu həyata zaman, fərqli dildə verilir
lakin bəlkə siz var gücünü göstərir
İndi yalnız program özünüzü ifadə edə bilər ki,
C kimi bir dildə aşağı səviyyədə deyil, bir çox yüksək səviyyədə
həqiqətən həll etmək üçün e-poçt kimi, bu çox real dünya applications ilə
bəzi real dünya problemləri.
>> İndi, əlbəttə, bu script bəzi yaratmaq üçün istifadə baxmayaraq,
həqiqətən hesabı olan jharvard@cs50.net olan dinamik e-poçt
Mən çıxış var ki, göndərmək üçün kifayət qədər diqqətli olmaq yoxdur
, həqiqətən, öz hesapları yalnız poçt
şeyi həyat isti su bir az siz almaq deyə.
Bildirib ki, ilə, tamamilə fərqli bir problem həll keçid indi edək,
saxlanılması dövlətlər ki.
İndi, bu həqiqətən nə deməkdir?
HTTP, bu mətn transfer protokol,
həqiqətən vətəndaşlığı olmayan protokol və bu o deməkdir ki, nə
siz Google.com kimi bir şey qoparmaq və sonra daxil hit zaman
genellikle brauzerinizin sonra iplik icon bir növ var
Bəzi web səhifə nəticələri, nazil olan
və o kiçik icon spinning vermir, həqiqətən, göstərir ki,
HTTP server əlaqədar bir növ başa çatıb və bu var.
HTTP onu qorumaq deyil mənada ki, vətəndaşlığı olmayan edir
Eyni şəkildə Skype server davamlı əlaqə yoxdur
və ya Gchat edir HTTP ilə çünki
ehtimal dəfə siz ki, bir web page alındı ​​etdik ki.
>> İndi, Facebook və Google Maps kimi sites əslində bu gün
və Twitter və kimi daha çox dinamizm var qovuşdurmağımız
ki icon iplik vermir hətta sonra əslində daha çox yenilikləri əldə edə bilərsiniz
server, daha tweets, Facebook daha statusu yenilikləri və analoji gəlir.
Lakin biz bir həftə və ya iki danışmaq lazımdır ki, bir texnika istifadə olunur ki,
Ajax JavaScript adlı dil istifadə kimi tanınan,
lakin gün sonunda, HTTP hələ vətəndaşlığı olmayan edir.
Və hələ siz elə bir istifadəçi haqqında şeyi yadda istəyirsinizsə
onlar sizin server bağlantınızın sonra hətta sonra
PHP siz bunu bir vasitə təmin edir
biz sonuncu dəfə gördüm, çünki, PHP, superglobals bir sıra
və superglobal, yenə xüsusi bir qlobal dəyişir
ki, web server və PHP özü tərəfindən təqdim olunur.
>> Siz bu dəyərlərə qoymaq üçün heç bir şey yoxdur
və biz belə uzaq gördüm superglobals arasında almaq və göndərmək olunur
formada sahələrində sizin üçün avtomatik olaraq qoyulur yerləşir, hansı ki,
həmçinin biz hələ görməmişik ki, başqaları bir neçə.
$ _SERVER Daxilində server özü ilə əlaqədar bəzi xüsusi dəyişənlər var.
Protokol, HTTP və ya HTTPS istifadə nə, IP ünvan, nə
nə tələb metodu istifadə və bu kimi, belə ki, bəzi maraqlı var idi
şirəli server haqqında məlumat, və əslində, burada istifadəçi həmçinin.
Bunlar cookies saxlanılır adlı Ü olan $ _cookie, var.
Biz bu gün cookies özlərini vaxt sərf edəcək
lakin bir cookie yalnız informasiya kiçik bir parça indi bilirəm
bir web server bir web browser əkmək olar ki,
və onun RAM və ya onun kompüter sabit çevirmək
informasiya, məsələn, bir istifadəçi haqqında öz istifadəçi adı saxlamaq üçün
onu yazın hər onlar daxil və ya bir yoxdur ki,
unikal nömrəsini və ya istifadəçi tanımlayıcısı
haqqında suallar eyni növ onlara bezdirmək yoxdur ki,
gələcəkdə arzularım, lakin faiz çox
indi $ _session edir.
>> Başqaları kimi, PHP ilə avtomatik olaraq təqdim olunur ki, bu superglobal,
Əgər PHP-based web yazılı etdiyiniz zaman
istədiyiniz bir şey, simlər, integers, saxlaya bilərsiniz
üzən bal, dəyərlər, diziler, obyektlərin,
həqiqətən istədiyiniz bir şey, və bu cür bir şəkildə saxlamaq üçün imkan verir
kullanıcının indi və sonra olub hətta
İndi və ya 5 dəqiqə bir dəqiqə geri gəlir, çünki
bəzi digər linki tıklayarak əvvəl vaxt
PHP ki, sessiya superglobal qoymaq nə təmin edəcək
bir dəqiqə və ya 5 dəqiqə əvvəl hələ istifadəçi qaytarır zaman olacaq.
Və başlıq altında bu superglobal yolu ilə həyata keçirilir
o şeyi cookies adlanan, indi üçün, yalnız bir abstraksiya var
elə bir alış-veriş sepeti və proqram ekvivalent növ var.
Nə olursa olsun siz proqramçı ki, qoymaq
superglobal assosiativ array orada dəqiqə sonra bəzi nömrəsi olacaq
siz onu silmək və ya istifadəçi tamamilə öz browser fit qədər. qədər
>> Bu şey həqiqətən istifadə olunur necə bir nümunə nəzər salaq.
Kodu bugünkü ədəd arasında counter.php ildə
biz aşağıdakı xətt var.
Bu fayl əvvəlində biz artıq maraqsız olan mavi şərh, bir dəstə var.
Amma line 13 ildə biz yeni xətti
session_start ki, həqiqətən belə deyilir dəqiq nə.
Bu sessiyanın başlayır.
Bu böyük superglobal $ _session istifadə üçün imkan verir, və bu kimi sadə deyil.
Biz line 16 baxmaq davam varsa, bu web page nə gedir nə anlamaq üçün cəhd edək.
(Isset ($ _SESSION ["əks"]) sonra davam edin
əks dəyişən və mağaza, kiçik counter,
$ _SESSION ["Əks"].
Bu counter adlı yerli dəyişən elan görünür
bu superglobal daxilində nə bir kopyasını qoyaraq nin daxilində olan
yeri iclası adlı "əks".
Else, yəqin, bu kiçik yerli dəyişən counter, 0 başlatılmış olunur.
>> Ancaq sonra bir neçə satır sonra 26 bildirişdə ki counter iclasında nin surəti,
əsas, onun cari dəyər 1 olan yeni dəyər təyin etdi.
Bir sözlə, bu fayl yenilənməsi görünür
İclasda superglobal daxilində saxlanılır ki, bir counter
1 ilə incrementing, amma onu ilk əvvəlki dəyər bir kopyasını özündə saxlayır
yerli dəyişən bu saxlamaqla $ counter adlı
və sonra aşağı burada qalır nə edək.
Bu olduqca çox yalnız HTML var çıxır.
Bu səhifə altında biz bu site olmuşlar ki line 37 görmək
dəfə counter sayı, bir neçə maraqlı xüsusiyyətləri var belə.
Biri, bu aydın bir dəyişən, lakin yalnız qoymaq üçün kifayət deyil
HTML görə əlbəttə orqanı $ counter
Sizin HTML PHP arasında yalnız varsa yalnız HTML olduğunu güman edir.
Siz sözün ekranda çap dollar counter istəyirəm.
>> Lakin əvəzinə PHP rejiminə bırakarak
sintaksis bu parça ilə biz dinamik burada bir dəyər əlavə edə bilərsiniz
biz keçən zaman nə etmək ruhunda çox oxşar
strings daxil dəyərlər daxil.
Əslində, bu, yalnız sanki bu kimi bir şey söyləyərək bir steno notation edir
çap (counter $) və ya hətta printf (% s, əks) kimi bir şey,
və ya hətta, online və ya dərslik görmüşəm bilər,
echo adlı PHP bir funksiyası var
eyni şey yoxdur və bu bütün yalnız artıq soluksuz yolları
deyərək <? =.
Bu halda qoymaq lazım deyil
sual işarəsi sonra sözü PHP.
Bu yalnız bir an əvvəl gördüm nə, təkrar üçün stenoqrafiya notation edir
olan bəzi dəyəri echoing olunur.
>> Bu son nəticə əslində nə edək.
Mənə bizim counter.php fayla artıq gedək
və biz David orada kodu ilə oynayan səhv etdiyini görəcəksiniz.
O qədər berbat nə fix getmək edək,
və səhv line 37, ola getdi görünür.
Bu səhifənin üst görə mən bu saytda 0 dəfə olmuşam.
Yaxşı, indi davam edək və brauzerinizin üst basın
, icon yenidən, mən yeniden basın
və indi saytda 1 dəfə, 2, 3, 4, 5, 6, 7, 8 ziyarət etdik.
Biz bu səhifə mənbəyində baxmaq əgər həqiqətən, faktiki mənbə kodu, dəyişir
və hər hansı bir PHP tam olmadığı qeyd və çünki
PHP kodu qiymətləndirdi və ya server yan təfsir
və ki, PHP script çıxış nəticədə browser göndərilir nə deməkdir
Bu halda bəzi xam HTML və bəzi xam mətn olan.
Burada nə olub?
>> Yaxşı, kodu nisbətən neçə xətləri ilə mən saxlamaq edə am
israrla bir neçə saniyə ərzində və ya biz, kifayət qədər uzun gözləyir
HTTP edir ki, bir şəkildə dəqiqə, hətta saat, bəzi dəyəri
biz bölüşdürülməmiş sonra sanki stateful görünür
server Bu keçid, və yalnız, mən son dəfə deyib nə xatırlayaraq edir
lakin əslində başlıq altında davam mürəkkəblik bütün dəstə var
PHP mənə bu illüziya vermək üçün imkan ki, cookies cəlb
Bu alış-veriş araba kimi xüsusiyyət.
İndi, biz yalnız bir tam saxlanılması olduğunuz bir mənasız, məsələn,
lakin xüsusiyyət böyük dəyər ola geri gələcək
biz, daha kompleks layihələr haqqında söhbət başlattığınızda
Onların arasında problem 7 seçin.
Bu CS50 müəyyən sizin son problemdir.
Mən bilirəm ki, belə kədərli, lakin nə tapa bilərsiniz biz bağlamaq olacaq ki,
həqiqətən keçid tərəfindən semestr bu hissəsi
C kontekstindən əlbəttə PHP kontekstində üçün
lakin çox eyni əsasları bəzi istifadə edərkən
biz bir müddət danışdıq etdik.
>> Pset 7 məqsədi, CS50 Maliyyə həyata keçirmək
Yahoo Maliyyə və Google Finance öz versiyası olan
siz imkanı vasitəsi və ya hətta Etrade.com
verilmiş simvolları üçün fond qiymətləri baxmaq, lakin daha çox
siz səhmlərinin "almaq" və "satış" imkanı var
çünki bu səhifə kimi müxtəlif fond birjalarında satılan
burada həqiqətən olan biz başlamışdır etdik dərəcədə olan təklif
sizin üçün problem set, bir istifadəçi adı və parol tələb edir ki, bir giriş forma var.
Biz nəhayət görəcəksiniz kimi, sonra bir submit 'düyməsinə var, lakin
var heç bir şey həqiqətən hələ başlıq altında gedir çünki
Yeni istifadəçilər qeydiyyatdan imkanı həyata keçirilməsi üçün qalır
, səhmlər satmaq, səhmlər almaq imkanı
həqiqətən cari stock qiymətləri baxmaq.
>> Biz, çünki həqiqətən, bu mümkün kimi real dünya olacaq
bir funksiyası ilə siz imkan verəcək kodu bir az daxil
gözəl mövcud pulsuz data edir Yahoo Maliyyə, sorğu
fond rəmzi və ya ticker simvolu əsasında səhmdar qiymətləri axtarır,
və gün cari hissesi geri almaq.
Bu pset siz həqiqətən gördükdə məlumat olacaq
real dünya kimi haqqında həqiqətən tela edirik ki, əldə edə bilərsiniz kimi
real dünya ehtiyatları, real dünya qiymətləri ilə
və biz bəlkə edə bilər nə qədər pul görəcəksiniz
öz problem dəsti ilə oynayan növbəti bir neçə gün ərzində.
>> Amma qoy ilk əlbəttə daha mürəkkəb olan bir şey dizayn nə üçün sahne
counter.php çox ki, beləliklə qədər Frosh Ani nümunələri hər hansı bir çox daha mürəkkəb deyil
və bizə imkan verir ki, burada bir neçə paradiqmilərinin təqdim edək
pset 7 və bəlkə son layihə üçün siz əsasən bir şey web əgər həm
Özünüzü ağlı başında saxlamaq üçün, kodu yaxşı təşkil saxlamaq,
və əməkdaşlıq istiqamətində addım CS50 yekun layihə olub
və ya gələcəkdə bir proqram davam kənarda.
Bu ümumi dizayn paradiqma var
kompüter və proqram daha çox, ümumiyyətlə,
MVC, model görünüşü nəzarətçi kimi tanınan
və bu, çox gözəl bir fikir izah edən bir silly kisaltmasidir
ki, bir proqram müxtəlif aspektləri ayrılması deyil
xüsusi ayrı-ayrı məntiqi və ya bir web biznes məntiq saxlama
kimi şeylər daxildir ki, bir şey elə
funksiyaları zəng və verilənlər bazası querying və kimi
HTML arasında baş deyil
deyil, ayrı-ayrı faylları, həqiqətən, bu bir fayl var
Siz nəzarətçi çağırıb adətən ki,
Həqiqətən əməliyyatın arxasında beyin, və biz bir misal görə bilərsiniz
yalnız bir anda bu.
>> Kodu proqramlaşdırma bir model var
ki, sizin verilənlər bazası danışır ki, Yahoo Maliyyə və kimi aparır edir
və sonra MVC olaraq V, fikir var
estetik, həqiqətən olan faylları ilə bağlı olan məhsullarının bütün
HTML, bəlkə sizin CSS və kimi.
Burada fikir, bu şəkil göründüyü kimi, ki, nəzarətçi
biz tezliklə görəcəksiniz kimi və xüsusilə pset 7 görəcəksiniz kimi, fayl,
Dünyanın onların web browser vasitəsilə aparır ki.
Yəni, ictimai internet ziyarət olur ki, fayl
ancaq nəzarətçi, potensial bir model aparır
hansı data bağlı kodu olan bir və ya daha çox digər faylları edir
kodu verilənlər bazası və kimi bağlı və sonra aparır
views kimi tanınan nəzarətçi bir və ya daha çox digər faylları
bir web səhifə estetik, növ şablonları olan var
giriş kimi bəzi data bilər ki, ancaq gün sonunda
baxımından daxilində yalnız məntiq, məlumatların göstərilməsi olmalıdır
bir loop üzərində iterating və həqiqətən bəzi spitting
PDF kimi HTML-based icra onların və ya hətta bir şey.
>> Nə MVC haqqında gözəl siz müxtəlif fikirlər ola bilər ki,
fayl format ki, siz həqiqətən növü əsasında cihaz növü əsasında
istifadəçi göstərmək istəyirəm.
Bir neçə tədricən daha kompleks və yaxşı dizayn nümunələri nəzər salaq
burada versiyası 0 ilk başlayaraq.
Mənə davam və bu gün MVC kataloq açmaq edək
bir fayl kataloq 0 index.php çağırıb.
Bu super sadə və çox underwhelming haqqinda edək
ki, CS50 üçün səhifəm versiyası 0 növ var
və biz mühazirələr bir keçid necə görürsünüz, biz İmtahan üçün bir link var
və mən mühazirələr bildiriş üçün linkə əgər URL
qədər top lectures.php dəyişdirmək üçün gedir.
Mən həftə 1 bildiriş üçün linkə Əgər week1.php üçün URL dəyişir.
Burada olduqca sadə iyerarxik struktur olmalıdır görünür.
>> Bu müəyyən edilir necə başlıq altında tez nəzər edək
Mən index.php baxsaq və həqiqətən, olduqca sadə.
Əslində, mən bu bir PHP fayl adlanır baxmayaraq, heç bir faktiki proqramlaşdırma kodu var.
Mən istifadəçi görən son deyil yalnız belə PHP burada yazdığı bir şərh yoxdur.
PHP tags arasında ki, əlbəttə ki, əvvəl, bir şey
şərh edilir, bir comment belə, bir comment şərh
Günün sonunda üz atmaq yalnız deməkdir və həqiqətən
Brauzer göndərin, burada hər şey yalnız estetik belə.
Mən eyni lectures.php açmaq, bu da bir ağır kodlu fayl.
Bu bir şey adlandırmaq olur. Php,
lakin bu, həqiqətən, yalnız. html, və week1.php, week2.php
eyni yalnız biçimlendirme var, bu dizayn qüsurların bir dəstə var.
Biri, bu surəti / pastası miqdarı var.
Bu faylları arasında dəyişir ki, yalnız bir şey unordered siyahı olsa da,
bu li tags, mən yenə doc növü, HTML, baş var
adı, yaxın bədən yaxın, HTML və daha çox
hər bir fayl, bu mən heç istəyirsinizsə yenidən qurulması deməkdir
Bu web səhifə və ya getmək və dəyişdirmək üçün bu restylize
bütün bu faylları el ile və ya bəzi kütləvi ilə tapmaq və dəyişin.
>> Nin burada version 1 bir asan, uzun düşüncə dizayn doğru bir addım edək
vasitəsi kimi hər biz sizinlə birlikdə oynaya bilər ki, daxil etdiyiniz ki, mənə oxumaq
Burada ki, ev bildiriş bu daha yavaş-yavaş
Bu saytın versiyası 1-faylları bir xülasə,
və özüm həyata Factor sonra mən onu qəbul etdik ki, görünür,
bəzi ümumi kodu header.php və footer.php.
Yaxşı, gəlin o ilk içərisində nə nəzər salaq.
Header.php, tanış görünür
lakin harada kəsmək almaq deyil hiss?
Hal-line 19 sonra, ümumi idi ki, hər şey var, belə ki,
faylları index.php, lectures.php olan
week1 və əvvəlki Məsələn week2.php.
Mən nə, surəti və bütün bu faylları üçün ümumi idi ki, cut hər şey idi
ayrı bir mövzu fayl qoydu və eyni footer.php ilə
Eyni prinsip tətbiq etməyib vasitəsi yalnız maraqlı xətləri
footer.php bu iki yaxın, orqan və yaxın HTML var.
>> Amma nə bu artıq o deməkdir ki, yeni versiya var
index.php bildiriş nə qədər asan əldə edə bilərsiniz.
Verilir, daha sirli bir az bir az asan, axtarır
alt üst riayət etmək, ancaq Allah ki, ixtisar bütün indi getdi.
Biz sözün tələb qədər üst adlı PHP funksiyasından istifadə tələb
çox xatırladan olan C-nin # mexanizmi daxildir, xatırlayıram.
Biz üst header.php tələb edir.
Biz altındakı footer.php tələb və tək şey fərqli
və ya bu fayl haqqında xüsusi üçün unikal nəzərdə olan content edir.
Mən lectures.php demək, getmək, eyni prinsip tətbiq olunur.
Yenə, bəzi üst qədər şərh, lakin sonra mən header tələb, footer tələb
və arasında yalnız həqiqətən dəyişmişdir ki, məzmun var.
Biz həftə 1 və həftə nəzərdən əgər 2 görürük istədiyiniz
eyni prinsip tətbiq olunub.
Yaxşı, biz olduqca orada deyilik.
>> Bir oxşar struktur olan versiya 2 nəzər, alaq
amma başqa bir şey təqdim etdik indi görürük.
Line 10 I, helpers.php təqdim etdik
olan yəqin köməkçi funksiyaları ehtiva edir.
A köməkçi funksiyası adətən nisbətən qısa funksiyası
siz, müxtəlif yerlərdə sizə kömək yazın ki,
və helpers.php daxilində nə görmək edək.
2 funksiyaları vardır kimi bu halda, görünür.
Bizim kub Məsələn digər gündən Xatırladaq
siz PHP öz funksiyalarını müəyyən və nə mən indi etdik mən var ola bilər
footer göstərmək və header göstərməyə çağırıb müəyyən funksiyaları,
bir parametri alan ilk, data adlı
onun defolt dəyər kimi təklif boş dizi, edir
və biz, həqiqətən, PHP ən son versiyası daha müfəssəl şəkildə bu yaza bilərsiniz
açıq kvadrat mötərizə söyləyərək, kvadrat mötərizə bağlanıb.
Bu ölçüsü 0 boş bir sıra lakin buna baxmayaraq bir sıra deməkdir.
>> Bu çıxarış funksiyası ki, bir az xüsusi
nə edir, onun dəlil kimi assosiativ sıra edir edir
ki, 0 və ya daha çox əsas dəyər cüt var və siz foo əsas varsa,
və bar çıxarış funksiyası dəyəri
, line 11 kimi, bu artıq bir vəziyyət yaradır
Siz dəyəri bar dollar foo adlı yerli dəyişən var.
Və data array daha çox düymələri və dəyərlər olsa,
eyni onlar yerli həcmi nəzərə hasil olunacaq
və ya adı yer ki footer.php və
aşağı burada eyni fikri ki header.php
o dəyişənlər girmə imkanı vardır.
Əslində, mənə yenidən header.php açmaq bildirin
və indi bu versiyası kimi görünür nə diqqəti cəlb edir.
>> Çox çətin hər bir səhifə üçün adı kimi CS50 kodlaşdırma
indi mümkün olan dinamizm görürük.
Xətt 5-I, adını dəyişən echoing alıram
lakin ilk I htmlspecialchars adlı funksiyası ki, adı dəyişən keçən alıram.
Funksiyası üçün axmaq adı, bu, ancaq uzun kimi, həqiqətən, deyir nə.
Bu təmin edən hər hansı xüsusi simvollar
qəbul edilmişdir ki, simli düzgün HTML xilas edir.
Bu əslində bir xaç site scripting hücum deyilən bir şey etmədən bir yoldur
elə kimsə can pis və ya təsadüfən
web saytınıza öz HTML yeritmək
müəyyən yapıştırarak, məsələn,
siz çox, xüsusilə JavaScript kodu, gözləyirik deyil ki, bir şey
biz bir həftə və ya iki dəfə haqqında danışmaq lazımdır kimi.
>> İndi bu header.php, bir görünüşü var
bu estetik bəzi məlumatlar toplusu məzmunu keçirmək üçün imkan verir mənada.
Lakin xüsusilə, bir şablon var.
Bu, hər səhifə header kimi baxmaq istəyirəm nə indi planını növ edir
ancaq adı dinamik daxil etmək istəyirəm ki, bəzi dinamizm var
adı dəyişən əsasında
biz deyilən ki, təkrar hasil edilib
bu render header fəaliyyət göstərir.
İndi biz render footer baxdı, əgər həqiqətən çox artıq bu hüququn istifadə var
footer.php ilə heç bir dinamizm var çünki.
Var, lakin hazırda 2 tags ağır kodlu siyahısı bilər
həqiqətən nə təklif ki, eyni fikri tətbiq
biz bir render mövzu və render footer funksiyası olan vaxt sərf etmisiniz?
Mənə 3 versiyasını daxil indi yerinə gedək
və köməkçiləri ilə 3 versiyasını mən hətta daha sadələşdirmək qərarına gəlib.
>> Mənə bir render funksiyası edək.
Mənə başqa dəlil almaq edək, bu dəfə, şablon adlı
ki, bir şablon adını deməkdir
və sonra mən presumptuously concatenate edəcək. php dəyişən dəyəri üçün,
və sonra foo.php, bar.php ya header.php və footer.php, varsa
sonra irəli getmək və dəyişən data çıxarış gedirəm
və o yolu tələb olunur.
Mən index.php açmaq başqa sözlə, indi bu istifadə
Mən artıq render header demirik ki, görürsünüz.
Mən yalnız göstərməyə çağırırıq, amma mövzu bir sitat dəyəri keçmək
aydın etmək üçün şablon Mən, həqiqətən yüklemek üçün istəyirəm.
>> Sonra artıq burada yapýyorum nə görürsünüz.
Mən, adı dinamik əsas keçən alıram
Bu da bir CS50 dəyəri və biz əvvəl gördüyümüz kimi,
PHP ən son versiyası daha yığcam edilə bilər
harada, kvadrat mötərizə ilə array funksiyasını əvəz edə bilməz
Mən təklif edən daha oxunaqlı və əlbəttə ki,
bir az yazın asandır.
Əlbəttə, altındakı render footer zəng ilə,
biz, bütün ikinci arqument heç assosiativ array keçən narahat deyil
ki, footer heç bir şey dinamik daxilində var çünki.
Bu HTML üçün bəzi yaxın tags var.
Yaxşı, biz, həqiqətən, burada şeyi təmizlənməsi istiqamətində addımlar edirik
ancaq mənə 2 final nümunələri açmaq bildirin.
İndi bir şüurlu qərar qəbul etdik ki, bu bir, sayı 4, bildiriş
nəhayət mənim faylları bir hiyerarşi istifadə edərək əvvəlki Məsələn inkişaf etdirmək.
>> Bu xülasə, bu mənə oxumaq, mən təqdim etdik edək ki,
bir kataloq və şablonları kataloqu daxildir
onun məzmunu mən daxil etmək istədiyiniz şeylər olacaq
və mən müvafiq göstərmək istəyirəm ki, şablonlar.
Bu, həqiqətən mənə anal olan və hər şeyi səliqəli saxlamaq üçün çalışırıq ki,
birlikdə əlaqəli faylları saxlamaq, lakin son nəticə
İndi bir az tidier quraşdırma, ancaq indi xatırlamaq lazımdır ki,
ilə, məsələn, index.php
biz fayl helpers.php tələb etdikdə
biz / helpers.php daxildir vasitəsilə indi bunu tələb var
İndi bir alt kataloq həqiqətən, çünki daha çox yalnız helpers.php etdi.
İndi bir kənara kimi, bu nümunələr və bəzi digər görürsünüz
tələb kimi funksiyaları, bir dəfə tələb olunur.
Yoxdur özü daxildir adlı funksiyası həqiqətən var, və onlar bütün qədər müxtəlif davranış var.
Burada mən yalnız istəyirəm ki, super aydın etmək üçün bir dəfə tələb demək
köməkçiləri dəfə mənim layihə daxildir.
Amma əslində düzgün mənim məntiq vasitəsilə düþünüyorum əgər mən ehtiyatlı Ben və əgər
bu top tələb demək çox yalnız kifayət etməlidir
belə uzun Mən özüm təsadüfən başqa yerdə eyni fayl tələb etmir.
Əslində, bu istifadə sonra şeyler bir az daha səmərəli yoldur
bir dəfə tələb, yalnız tələb onu kəsmək bilərsiniz.
>> Nin bir addım da edək.
Bu son Məsələn, indi buraxılış 5, daha təmiz qovluq iyerarxiyası var.
Bu son versiyası mənə oxumaq hər Burada etdik nə edək
Mən bütün bu vaxt etdik ki, mənim HTML kataloq var indi
lakin daxili var, indi yalnız index.php, lectures.php edir
week1.php və week2.php.
Soraqçası indi HTML kataloq yanaşı yaşayır daxildir
bir qardaş kimi eyni səviyyədə, belə danışmaq.
Belə ki, şablonları qovluq edir.
Burada əsas paket, mən bir az daha çox struktur təqdim etdik ki,
lakin əsas xüsusiyyət indi faylları yalnız
açıq addressable, web əlçatan olmalıdır ki,
ictimai internet URL mənim HTML kataloq var.
>> Eyni zamanda, digər faylları helpers.php, footer.php,
arguably bəlkə daha həssas olduğunu header.php,
bəlkə köməkçiləri həqiqətən bir istifadəçi adı və parol və ya bir intellektual var
Mina əmlak, həqiqətən, hətta təsadüfən, əgər dünya görmək istəmirəm fəaliyyət göstərir.
Bu ictimai HTML kataloqu həyata saxlamaq üçün yaxşı təcrübə var
hər hansı dövlət olmaq özləri ehtiyac yoxdur ki, faylları.
Siz baxarkən, məsələn, bu halda nə etmək lazımdır Bütün
HTML directory in index.php faylı
biz yalnız tələb zaman bir az daha diqqətli olmalıdır qeyd
və ya bir dəfə bu fayl tələb edir.
Mən ilk nə etmək lazımdır .. ana kataloq getmək,
sonra / / helpers.php daxildir yoxdur
Mən qayğı ki, fayl almaq üçün geri aşağı dalış.
>> Sonra MVC haqqında suallarınız
və ya bu nisbətən sadə təcəssüm?
Və biz də bir qədər diqqət aydın mənə edək
Burada V, bu şablon fikir və faktorinq həyata.
Biz, həqiqətən, yalnız hələ C M fərqlənir deyil etdik.
Əslində, orada həqiqətən, hətta C burada heç M və
nəzarətçi, həqiqətən, bütün böyük iş deyil, daha çox almaq lazımdır
MVC həmin 2 məktublar həm tanış,
daha doğrusu, siz C ilə daha çox tanış olacaq
problem set 7, belə üfüqdə ki, daha çox var üçün MVC edir.
Suallar?
Burada heç bir faktiki olaraq yoxdur.
>> OK, indi bu gün ikinci və yekun mövzu ilə hərəkət etsinlər.
Bir verilənlər bazası tətbiq edir.
Up Bu baxımdan qədər biz saxlanılması data bir neçə yolları etdik.
Biz dəyişənlər istifadə etdik.
Geri C fayl, I / O müzakirə biz mətn faylları istifadə açılmış
və sonra fprintf kimi faylları istifadə edərək, biz belə başladı
CSV söhbət bir az virgülle ayrılmış dəyərlər, faylları
belə bütün bunlar bizə data saxlanılır üçün icazə
ya qeyri-israrla və ya israrla.
Lakin hətta CSVs axtarış həqiqətən əlverişli deyil
və daxil və silmə.
Bu, həqiqətən, virgülle ayrılmış bir axmaq mətn faylı var
istədiyiniz əgər cərgə cərgə cərgə cərgə,
fayl edə bilərsiniz ən yaxşı həqiqətən xətti axtarış ki, axtarış.
Siz fayl üst başlamaq üçün, bütövlükdə şey oxumaq
və faiz bəzi dəyəri üçün baxın.
Siz daxil istəyirsinizsə, eyni şey var
, bu, artıq iterating və müəyyən bir yer daxil
və əslində, siz axtarış məntiq özünüzü bütün var.
>> Siz özünüz kod yazmaq əgər bir CSV fayl uyğun ağıllı model edə bilməz.
Siz CSV fayl filtrasiya edə bilməz
əgər özünüz kodu yazın.
Başqasının səyi bütün qoymaq, bu gözəl olmaz
həqiqətən asan və durub asan axtarış etmək
və silinməsi və yenilənməsi və s?
Bu dəqiq bir verilənlər bazası nə var.
SQL, strukturlaşdırılmış sorğu dili, başqa bir dil
, biz bu gün burada təqdim edirik, amma bu çox ədalətli əlçatan edir ki,
və nə biz, həqiqətən nə olacaq yalnız ən qabarıq bəzi bu yoluşdurmaq olunur
xüsusiyyətləri ki pset 7 və siz əsasən bir şey web əgər
son layihə, özünüz ifadə etmək qabiliyyəti
data sorğu baxımından.
Siz bir az saxlamaq imkanı və ya məlumat bir çox
gün sonunda olacaq bir çox strukturlaşdırılmış şəkildə
SQL ilə özünüzü ifadə edə bilərsiniz, çünki sizin həyat daha asan
daha dəqiq, daha çox metodiki üçün
məlumatların böyük corpus məlumatların bəzi alt geri almaq.
>> Siz, həqiqətən, Excel kimi, bu halda, bir SQL bazası, verilənlər bazası hesab edə bilər
və ya bir tablo olduğu Nömrələr,
və ya bəlkə bir çox elektron tablolar, və əlbəttə bir elektron tablo,
satır ve sütun var, çünki o
SQL verilənlər bazası mənada relational, ilişkisel var
onlar bu masalar baxımından veri ki,
satır ve sütun.
Onlar bir tablo kimi bir şey daha yüksək performans
və bir elektron tablo bir insan tərəfindən istifadə üçün nəzərdə tutulmuşdur.
A bazası proqramçı tərəfindən istifadə üçün nəzərdə tutulub
qarşı kodu yazma, belə bir verilənlər bazası təcəssüm
ya command line olacaq.
>> Orada ən məşhur relational verilənlər bazası biri, yenə, MySQL edir
ki, çox yüksək performance gözəl pulsuz, və bu nə
Facebook bu gün hələ də müəyyən dərəcədə və çox erkən istifadə
onun bir çox veri saxlamaq üçün, biz bir anda görürsünüz
nisbətən sadə əmrləri istifadə edərək
biz data, insert data, yeniləmə data seçə bilərsiniz
məlumatlar və kimi silmək, lakin təşəkkürlə daha istifadəçi dostu interfeysi var
yalnız burada qara və ağ sətirinə yazaraq çox.
Biz pset 7 və phpMyAdmin adlı pulsuz bir vasitədir kənarda istifadə edəcəyik.
Adı təsadüfi deyil.
Bu araç, PHP həyata olur
lakin əsaslı olmayan var.
Nə phpMyAdmin haqqında faydalı bir web-based kommunal var ki.
Biz sizin üçün cihaz onu önceden götürmüş sonra
və bu, bir verilənlər bazası masa yarada
Siz, data daxil məlumatları silmək və ümumiyyətlə bilərsiniz
olduqca istifadəçi dostu mühitdə data.
Sizin istifadəçi phpMyAdmin istifadə etmək niyyətində deyil.
>> Bu, həqiqətən, yalnız bir inzibati və ya geliştirici vasitədir
görmək və sizin data ətrafında soxmaq və strukturu necə anlamaq üçün olan,
çox sizin kimi özünüzü Excel və ya Nömrələr istifadə edə bilər
lakin bu başlıq altında neler görselleştirilmesi böyük bir yol olacaq
siz həll maraqlı problem diqqət və çox ki,
gizli əmrləri haqqında.
Gəlin tabularly saxlanıla bilər data nümunə nəzər
bir relational verilənlər bazası.
Burada belə bir misal var.
İndi təəssüf ki, phpMyAdmin çox sözlə çox atma yol tərəfində səhvə yol verib
və sizə qrafika, lakin siz də yalnız bilemek əgər
ID sütun, istifadəçi adı sütun, və hash sütun,
bu səmərəli bir elektron tablo, ancaq bir parçası olmaq olur
Aracın bir masa daxili
biz problem set 7-ci ilə təmin edən bir fayl istifadə edərək.
>> Xüsusilə, biz sizə təmsil fayl vermək
bir istifadəçi masa, 3 sütun istifadəçilər olan bir elektron tablo,
hansı biri 1 başlayan və sonra incremented olan bir unikal ID edir.
İkinci sütun, bir istifadəçi adı və Hacker kimin sizin
pset 2 üçün Hacker nəşri, ən azı bu istifadəçi adları bəzi tanımaq bilər.
Sağ tərəfində parol, lakin onlar hərfi parol deyilik.
Onlar hashes onların istəyirik, bu çıxır belə
bazasında parol saxlanılması, həqiqətən, pis bir fikir deyil.
Siz yəqin ki, bir haqqinda bir nöqtədə oxumaq etdik
və ya bir neçə şirkətin bazasında güzəşt, sonra var olan
Parolu dəyişdirmək, siz şeyi geri almaq lazımdır
pis oğlan həqiqətən nəticəsində hesabı boğuldu çünki.
>> Aydın mətn parol saxlanılması, bir verilənlər bazası unencrypted
tamamilə asinine və hələ çox əyləncəli deyil
sonra bir çox tanınmış şirkətləri haqqında oxumaq
bəzən mətbuatda olan məlumat bazaları güzəşt edilir,
və bir hissəsi gülməli deyil, amma bazaları ehtiva ki, unencrypted
parol kodu bir xətti çünki sözün gülünc
Əgər xüsusi təhdidinə qarşı müdafiə edə bilər ki, biz burada etdiyiniz budur.
Hətta bizim saxta az CS50 Maliyyə versiyası
biz yalnız yaxşı tədbir üçün parol Şifreleme və əslində olunur
$ 1 $ bir konvensiya ilə bu parol bütün başlayın.
Bu yalnız, onlar şifrelenmiş və ya həqiqətən hashed istəyirik deməkdir
hansı bir şəkildə şifrələmə funksiyası kimi
vasitəsi siz MD5 deyilən bir şey onun təsiri ləğv edə bilməz.
>> 50 sonra olması deməkdir ki, duz dəyər
50 bir başqa bu parol bütün hashing üçün istifadə edilmişdir.
Siz görə bilərsiniz kimi əlbəttə Mine, HA,
müxtəlif duz istifadə idi, yüngül qədər takıldım almış sizin
bəlkə Hacker 2 ki, bizim istifadə edərək, nəticəsində ola
şifrəmi həqiqətən eyni digərlərindən daha fərqli bir hash çünki
var bəzi digər istifadəçi kimi.
Əgər gözləyən olduğunuz əgər Əslində, bu həftə tapmaq
burada etiraz ki, parol nə o parol idi
belə heç də çətin problem set 2-Hacker redaksiyada çat.
Əslində, malan nin, jharvard kimi eyni idi
lakin biz geri əgər onlar müxtəlif baxdı.
>> Onlar fərqli duzlanmaq çünki allıq ildə jharvard odaklanın.
Alqoritmi ki, bir şəkildə həyəcanlı edilib
dəyər hash, şifrəli dəyər bir az fərqli görünür
bu vəsaitlərin bir az fərqli idi, lakin başlıq altında parol
hələ nəticədə allıq idi.
İndi kim bu barədə qayğıları?
Yaxşı, biz nümunə istifadəçi adları, nümunə istifadəçi ilə təmin edir
və həqiqətən bəzi onların parol hashes var ki
Müştərilərə CS50 Maliyyə önce kodu ilə yer off zaman.
Siz daxili verilənlər bazası, MySQL daxilində daha masalar həyata keçirmək lazımdır.
Siz səmərəli, daha çox elektron tablolar yaratmaq lazımdır, ancaq bu qərarına gəlib
siz başlamaq üçün, və siz görəcəksiniz ki, problem set dəqiqləşdirilməsi
Bu cədvəldə idxal prosesi vasitəsilə siz dolaşır
həmçinin xüsusiyyətləri bəzi nə izah
və siz də biz kodu ilə təmin görəcəksiniz
bu hashing ya bu parol şifreleme idarə etmək,
belə ki, MD5 və ya kimi bütün haqqında həqiqətən nə haqqında daha çox narahat ehtiyac yoxdur.
>> Belə ki, SQL, strukturlaşdırılmış sorğu dili.
Bu, sadəcə, biz pset 7-istifadə haqqında etdiyiniz dili
və bəlkə bəzi bazası data tələb edilmişdir.
Məlumatlar, yenidən, bu relational masalar, sütun, və satır tabularly saxlanılır
lakin kəlimə kimi nisbətən sadə sintaksis istifadə edərək,
, daxil yeniləmə seçin və biz məhz bunu edə bilərsiniz.
Biz daxil veritabanından silə bilərsiniz
, verilənlər bazası məlumat almaq ki, data, habelə seçin yeniləmə.
Biz bunu nasıl giderim?
Mənə cihaz daxil davam edək.
Mənə http://localhost qoparmaq edək
ki, yenə yerli cihaz özü edir.
Onun default ləqəbi var.
Və mənə / phpmyadmin getmək bildirin.
Bu cihaz anlamaq üçün önceden bir xüsusi URL olmaq olur
dərhal bir istifadəçi adı və şifrə üçün mənə edər.
>> Həmişə olduğu kimi, mən jharvard və allıq, yazın gedirəm
ancaq kompüter yönetici hesabı ki, bilirik.
Bu yalnız CS50 Maliyyə qeydə jharvard də var ki, bir təsadüf deyil.
Jharvard, allıq daxil məni gördük ki user interface verir
bir an bir fikir əvvəl, bu, ilk növbədə bir az böyük var
lakin əmin qalan, bu aracı link ən basın gedən heç edirik.
Siz faydalı super ki, kiçik bir alt istifadə çıxacağıq
olan ilk burada verilənlər bazası edir.
Mən verilənlər bazası qədər getmək, mən bir verilənlər bazası yaratmaq istenir edirəm ki, görürsünüz.
Bu səmərəli, yeni bir Excel fayl yaratmaq kimi.
Mən irəli getmək və bu məruzə zəng gedirəm, mən yalnız orada sahəsində müqayisəsi ignore gedirəm.
O, orada data nümayəndəliyi ilə nə var
və mən yaratmaq basın gedir və mən yaradır gidelim kimi indi hiss edirəm
sol tərəfində heç bazalarının deyir yerləşir
Mən tezliklə mühazirə bazası görməlisiniz.
>> Mən indi sol tərəfdən, mühazirə bazası, basın varsa,
mənim Nişanlar bir az dəyişdirmək bilərsiniz.
Mən strukturu, SQL, ixrac, idxal və bəzi başqa şeylər var.
Struktur olduqca çox boş.
Burada dediyi kimi No masalar,, verilənlər bazası aşkar
belə üzrə cədvəl yaratmaq imkan və edək irəli getmək və bir masa yaratmaq
tələbələr kimi, biz necə çox sütun istəyirsiniz?
Hər tələbə üçün bu sadə saxlamaq edək və alaq rekord
bir şəxsiyyət nömrəsi, adı və e-mail.
>> Biz getmək, belə ki, 3 sütun kimi sadə saxlamaq lazımdır.
Burada bax forması, indi bir az messy və böyük deyil
lakin biz yalnız sıra ilə satır keçmək lazımdır, belə ki, həqiqətən tez nin verək
Bu bazasında unikal identifikatoru üçün ID adına ilk sütun.
Bu tam olacaq. Mən, həqiqətən, uzunluğu və dəyərlər iqnor edə bilər.
Bir int 32 bit siz yazın nə olursa olsun olacaq, belə ki, İT boş buraxın imkan verir.
Müəyyən Default dəyəri, mən null edə bilər.
Hesab edirəm ki, tək tərk gedirəm. Default dəyərlər narahat deyil edək.
Hüququ atributları burada hərəkət edək.
Bu maraqlı.
Gəlin irəli getmək və bir qədər özbaşına kimlikleri imzasız olmalıdır ki.
In hər hansı mənfi nömrələri sərf edək.
>> Nin, 0 4 milyard getmək vermək və ya almaq edək
və sonra isə artıq yalnız hələ bu sahələrdə hər hansı toxunmaq imkan
lakin sonra məni yerə burada adı yazın bildirin
və sonra digər email idi tutmaq email belə
və adı, açıq-aydın deyil integers, belə bir müxtəlif sahəsində bu dəyişiklik edək.
Bu varchar, dəyişən uzunluğu char, çıxır
bir SQL bazası bir string kimi
lakin dəyişən uzunluğu, və həqiqətən əvvəlcədən də demək var
simli maksimum uzunluğu, mən bir qədər özbaşına gedirəm
Konvensiyanın type 255 simvol ilə.
Mən tamamilə 32 demək bilər. Mən 1000-deyə bilər.
Siz demoqrafik nə özünüz üçün qərar ehtiyac cür əsasında
uzun tələbə adı və nömrəsi və ya bir az daha böyük ilə getmək,
lakin nə varchar haqqında gözəl o boşa gedən deyil dir
Hər tələbə adı 255 bytes.
Bu DAVID varsa, bu, bütövlükdə 255 bytes istifadə etmək niyyətində deyil
amma ki, bir üst bound var, mən yalnız Konvensiya ilə 255 ilə gedəcəyəm
lakin biz bəzi aşağı dəyəri ki, müzakirə, və e-poçt ünvanı bilər
yalnız 255 ardıcıl, lakin yenə eyni müzakirə edə bilər.
Amma sağ tərəfində burada başqa bir şey gedirəm.
>> Hansı bir verilənlər bazası haqqında güclü ağır atletika bir çox edə bilərsiniz ki,
sizin üçün və ya kompleks iş.
Xüsusilə, mən, həqiqətən, mənim tələbə ID nömrələr nə qayğı yoxdur.
Bu, sadəcə bir verilənlər bazası benzersiz bir tanıdan nəzərdə oldu
Mən ki, tələbə bir 32-bit qısa nümayəndəliyi var
Mən benzersiz onlara müəyyən bir yol var ki,
sinfində məsələn 2 Davids, ola deyə.
Əslində, mən bu AI qutusu, avtomatik artırılması, yoxlamaq gedirəm
bazası, MySQL, həyata tutulur ki,
hər yeni daxil tələbə ID olacaq nə.
Mən hətta mənim kodu ki, qayğı yoxdur
və mən də index menyu altında bir şey seçmək üçün gedirəm.
Indeksi, burada nadir, əsas olmuşdur açılır
index və tam mətn.
Siz bəlkə, bunlar bir neçə nə tahmin edə bilərsiniz
lakin bu relational verilənlər bazasında çıxır
Siz proqramçı və ya verilənlər bazası administrator preemptively almaq
nə sahələri kimi bazasında göstərişlər vermək
bir masa bir az xüsusi var.
>> Məsələn, bu halda edirəm ki ID demək gedirəm
başqa bir əsas açar kimi tanınan əsas indeksi olacaq.
Bu anlayışı ilə o deməkdir ki, bundan sonra da ID edir
benzersiz Bu cədvəldə tələbələr müəyyən ediləcəkdir.
Mən bu sıxıntı və ya bu göstərici tətbiq edirəm, çünki heç bir tələbə eyni ID olacaq.
Bundan başqa, nə bu, mənim üçün nə edir o demək olacaq ki,
MySQL ki ID xüsusi edir.
Mən ID haqqında xüsusilə qayğı, belə davam və xülya data strukturunun sehrli etmək,
ağac, bir növ yaratmaq.
Adətən bu şey, biz həftə öncə baxmaq olmayan B ağacı adlanan
lakin bu ikili ağaclar ruhda oxşar başqa cür data strukturu var
və biz baxdı ki, çalışır, lakin demək olacaq
bazasında bu sahədə çox mühüm ki, yəqin ki,
bu axtarış etmək istəyirsinizsə, davam və bir xülya yaratmaq
yaddaş data strukturu axtarış sürətləndirmək ki, ideal
onlar daimi zaman etdiyiniz və ya ən azı mümkün yaxın kimi
bu xətti axtarış daxil qalmaq deyil, belə ki, hansı olacaq deyil
ən yüksək yanaşma həyata.
Əksinə, e-mail ilkin əsas ola bilərdi.
>> Nəzəri olaraq, hər kəs e-mail ünvanı, bir haqq-hesab bölüşmək etdiyiniz halda, nadir
ancaq bir string kimi bir şey istifadə etmək ümumiyyətlə yaxşı deyil
ilkin əsas kimi həyatında onun məqsədi benzersiz müəyyən əgər çünki
maksimum 255 bytes istifadə üçün heç bir səbəb sizin masa satır var
yalnız 4 bayt ilə üz əldə edə bilərsiniz əgər benzersiz kimsə müəyyən
və ya 32-bit int.
Ümumiyyətlə, əsas əsas qısa və yığcam olmalıdır
və ideal bir tam və ya 64 bit olur ki, böyük bir int kimi bir şey.
Amma bir e-poçt ünvanı unikal və çox verilənlər bazası xüsusiyyətlərindən biri olmalıdır
Mənim üçün unikallığı tətbiq edir.
Özü e-poçt baxmayaraq, e-poçt növbəti burada unikal seçməklə
, ekran off kaydırılmış I bazasında dedi alıram
Mənə etibar etmir.
Mənə bazası daxil imkan verməyin
Mən bir idiot Ben və deyiləm, hətta iki dəfə eyni e-poçt ünvanı,
mənim ifs və başqa ifs və faktiki PHP kodu ilə çox yaxşı
və mən təsadüfən istifadəçi mövcud e-mail qeydiyyatdan bildirin
bazası hələ düzgünlüyünə müdafiə bir səviyyədə
ki dublikat e-mail cədvəldə son deyil təmin etmək.
>> İndi isə, əksinə, adı yəqin ki, unikal istəmirəm
sonra 2 Davids və ya misal üçün 2 Mike Smiths, heç vaxt bilər, çünki
Sizin verilənlər bazası ki, bir biz yalnız tək tərk edəcəyik.
Mən irəli getmək və aşağı sağ xilas basın gedirəm
və hər şey yaxşı görünür, lakin burada qeyd
bu indi biz çox vaxt sərf edəcək bir hissəsidir
sözdizimini bir az mürəkkəb və biz masaları yaratmaq üçün yoxdur, çünki
bütün tez-tez, amma SQL özü bir dil,
sözdizimini üçün burada mən qeyd etdik ki.
Nə phpMyAdmin həqiqətən yoxdur, bu sizin üçün bir web-based GUI yaradır
zaman saxlamaq və özünüz həyata yazın ola bilməz olan
kimi kifayət qədər uzun SQL sorğu.
>> Siz istəyirdi başqa sözlə, əl, bu masa yaratmaq
ya qara və ağ tez və ya hətta phpMyAdmin-da
bu digər sekmesini istifadə edərək, bu SQL nişanı hər hansı bir SQL sorğu yazın bilər
Bu mənə bir dəqiqə etmişlər ki, səmimi, istədiyiniz
əslində bütün sintaksis xatırlayıram, və hətta sonra bəlkə
bəzi hatası etmişdir, bu alət kimi şeylər üçün faydalı olduğunu və bu da ibrətamiz var.
Siz sintaksis nə nəticə çıxarmaq başlaya bilər
yalnız gözəl rəngi tərəfindən phpMyAdmin əlavə olunur kodlaşdırma
bizim vizual rahatlığı üçün.
İndi əvəzinə bunu edək.
Mənə üst daxil nişanı getmək və mənə irəli getmək və məsələn daxil qoy edək
edək bir ID demək-əslində mən qayğı yoxdur.
Bu avtomatik artım olacaq. Mən bu bazasında məşğul imkan gedirəm.
Amma David olacaq, mənim e-poçt malan@harvard.edu olmalıdır.
>> Nin burada davam və başqa biri kimi Mike Smith qoymaq edək.
Mən, həmçinin özümü son ad vermək lazımdır
və biz onu smith@example.com olmaq lazımdır
və sonra harada sonrakı giderim?
Bəli, bu go basın və voiture üçün düyməsini kimi görünür.
Daxil üst 2 satır da bildirək.
Bu faktiki SQL sorğu edir.
Mənim üçün edam phpMyAdmin aracı, ki,
lakin son nəticə, bildiriş, indi browse nişanı getmək əgər,
çox xatırladan estetik, bu cədvəldə 2 satır görmək üçün
masa, biz pset 7 bizim istifadəçilər üçün əvvəllər gördüm
Onlardan biri David Malan, indi Mike Smith kimsə biridir.
Lakin aydın olmalıdır ki, phpMyAdmin istifadə etmək lazım deyil
və həqiqətən, tezliklə pset 7 üçün kod yazı üçün olacaq
ki, satır və kimi satır əlavə satır silinməsi, yenilənməsi prosesi avtomatik
belə qədər burada mənə yerine SQL nişanı gedək
tələbələr haradan select * və növü
e-mail = "malan@harvard.edu".
>> Yəni indi siz güman
digər sahələri arasında bir HTML forma və e-mail ünvanı istifadəçi növləri,
və məqsədi indi geri sonuna kodu PHP edir
həqiqətən ki, istifadəçi digər bakma.
Tam adı nədir? Sizin ID sayı nedir?
Bu kimi bir SQL sorğu yazmaq bilər tələbələri * seçin
Ü e = "malan@harvard.edu".
Mən sonra getmək basın, mən, həqiqətən, Mən yalnız bir sıra geri almaq yoxdur ki, görürsünüz.
Mike satır toplanması kimi, bu nəticə dəsti ötürülür
o mənə eyni e-mail deyil, çünki ümumiyyətlə, adlanır.
>> İndi yenə burada pset 7 üçün bir inzibati alət kimi phpMyAdmin istifadə edəcəyik
və pedaqoji alət yol öyrənmək
SQL dünyada, ancaq günün sonunda
siz, faktiki PHP kodu daxilində bu sorğu yazılı etmək olacaq
və belə xüsusilə Zamyla nin gözden geçirmek ilə bizi qalmaq
Bu problem set üçün paylama kodu bir tur almaq lazımdır
biz giriş səhifə üçün estetik yalnız siz verdiyiniz yerləşir
və gözəl sexy CS50 Maliyyə deyir ki, logo, lakin biz də sizə təqdim etdik
həyat bir az daha asan edəcək funksiyaları bir dəstə.
Biz də, sizin üçün pset hissəsi yazdıq
xüsusilə onun giriş hissəsi, bir nümayəndəsi dizayn hissi vermək
əslində, məsələn, index.php, bir nəzarətçi istifadə
sonra login.php və kimi və siz pset də bir şablon directory var görürsünüz
ki, estetik bütün fikir bütün var.
Və pset 7 ümumi iş ki, olacaq
users bir brauzer bir URL vasitəsilə nəzarətçi edin.
Yəni nəzarətçi siz yazdığı PHP kodu ehtiva edir, ve daxili PHP kodu
SQL bəzi xətləri ikiqat quotes arasında iç içə bilər
və funksiyası keçdi biz adlı sorğu yazdı
kimi bir şey istifadə etmədən siz bazasında danışmaq kömək edəcək
phpMyAdmin kimi inzibati vasitədir.
>> Siz PHP kodu SQL hesabatları yazmaq edə bilərsiniz
və, nəticə dəsti bir PHP array geri almaq
həqiqətən ki, sorğu eşleşen satır.
Və eyni siz edər və ya silir edə biləcəklər
və ya yenilikləri və ya kimi, ədalətli oxşar olan üçün sintaksis,
və paylanması kod olan, bəzi online arayışlar görürsünüz
və pset olan dəqiq necə bunu barədə getmək üçün özünü paketi.
Nəticədə biz, həqiqətən, yalnız SQL səthi kazıma etdiyiniz həyata
və MySQL, lakin bu güc, həqiqətən, siz kurtarır ki,
Siz həll etmək istəyirik problemləri müzakirə etmək, istifadə halları siz həyata istəyirəm
ən azı erkən kifayət qədər çox narahat olmadan,
harada və necə məlumat bazası saxlamaq və axtarış barədə
Facebook özü start aldığı və bu olduqca sözün edir
MySQL istifadə və sonra daha MySQL server və daha MySQL server istifadə edərək,
Onlar, həqiqətən, necə haqqında ağır təfəkkür başlamaq idi uzun qədər əvvəl
daha səmərəli şeyi saxlamaq üçün necə mağaza data,
Faktla verilən biz almaq lazımdır belə baxmayaraq ki, göstəriciləri və unikal məhdudiyyətlər
və s bir çox maraqlı söhbət var iş
Bu bütün nəhayət səbəb, biz yalnız səthi kazıma edirik ki, həyata bilər ki,
nə nəhayət sizin və ya layihələrin böyük məlumatların bir qədər ola bilər üçün.
>> Bildirib ki, ilə, in burada son qoy, və biz gələn həftə siz görəcəksiniz.
[CS50.TV]