+ All Categories
Home > Documents > PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just...

PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just...

Date post: 11-Sep-2021
Category:
Upload: others
View: 6 times
Download: 0 times
Share this document with a friend
182
Transcript
Page 1: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours
Page 2: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

PHP:TheUltimate

StepbyStepguideforbeginnerson

howtolearnPHPandMYSQL

programminginjust6hours

ByEmilyGoldstein

Page 3: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

©Copyright2015byWECANTBEBEATLLC

Page 4: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

TableofContents

INTRODUCTION

CHAPTER1:SETTINGUPYOURSERVER

0.1CreatingthepublicHTMLPages

0.2Creatingthedatabaseandit’stables

0.3Addinguserstothedatabase

0.4Userlog-in:Authentication

CHAPTER2:SETTINGUPTHEHOMEPAGEFORLOGGED-INUSERSAND

LOGGING-OUT

2.1TestingPageSecurity

2.2Addingdatatothelist-UserAccessOnly

CHAPTER3:DISPLAYINGDATAINTHEHOMEPAGE

3.1EditingData

3.2Deletingdata

3.3Displayingpublicdata

CHAPTER4:DYNAMICCONTENTANDTHEWEB

4.1HTTPandtheInternet

4.2PHPandMySQL’sPlaceinWebDevelopment

4.3TheComponentsofaPHPApplication

4.4IntegratingManySourcesofInformation

4.5RequestingDatafromaWebPage

CHAPTER5:EXPLORINGPHP

5.1PHPandHTMLText

5.2CodingBuildingBlocks

CHAPTER6:PHPDECISION-MAKING

6.1Expressions

Page 5: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

6.2OperatorConcepts

6.3BreakingOut

6.4Looping

CHAPTER7:FUNCTIONS

7.1CallingFunctions

7.2DefiningFunctions

7.3Object-OrientedProgramming

CHAPTER8:ARRAYS

8.1ArrayFundamentals

CHAPTER9:WORKINGWITHMYSQL

9.1MySQLDatabase

9.2ManagingtheDatabase

9.3UsingphpMyAdmin

9.4DatabaseConcepts

9.5StructuredQueryLanguage

CHAPTER10:DATABASEBESTPRACTICES

10.1DatabaseDesign

10.2BackingUpandRestoringData

10.3AdvancedSQL

CHAPTER11:GETTINGPHPTOTALKTOMYSQL

11.1Theprocess

11.2QueryingtheDatabasewithPHPFunctions

CHAPTER12:WORKINGWITHFORMS

12.1BuildingaForm

12.2Templates

CHAPTER13:PRACTICALPHP

13.1StringFunctions

Page 6: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

13.2Dateandtimefunctions

13.3FileManipulation

13.4CallingSystemCalls

CHAPTER14:XHTML

14.1WhyXHTML?

14.2XHTMLandXMLNamespaces

14.3XHTMLVersions

14.4CreatingXHTMLwithPHP

CHAPTER15:MODIFYINGMYSQLOBJECTSANDPHPDATA

15.1ChangingDatabaseObjectsfromPHP

15.2ManipulatingTableData

15.3ManipulatingTableData

Page 7: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

INTRODUCTION

Areyouinspiredbytheideaofmakingyourownwebsite?Everthoughtabouthow

coolisittohaveawebsitethathasalog-in/log-outfunctionality?Needtofigure

outhowtoCreate,Read,UpdateorDelete(CRUD)recordsinadatabase?Have

youlosttrackofyourpastinstructionalexercises?Havingconsideredallthese

questions,I’mgoingtoshowyouhowtomakeawebsitewithoutanyoutsidehelp

whereyouwillknoweachandeverysubtleelementonhowthePHPwebsitecode

functions.Ifyouarenewtoback-endwebdevelopment,thisinstructionalbookis

foryou.

I’llclarifyeverythinginyourpointofinterestsothatyouwon’tneedtoresearch

somespecifictechniquesbeingusedinPHP.Tokeepthingsasstraightforwardas

possible,wewon’tbeusinganycomplexsystems.Additionally,Iwon’tbe

concentratingonthewebsitesdesignbecauseweareafterthefunctionalities.

However,it’sanythingbutdifficulttoexecutethedesign.Whatthisbookwillbe

doingisaneasyyetexhaustiveanalysisoftheentirePHPCodingprocess.

So,whatisPHP?Intheeventthatyouownasiteorneedasitedesigned,youmay

needtoknowtheresponsetothisquestion.Consider-in1999itwasassessed

thereweremorethan100,000sitesutilizingPHPtoupgradetheirownparticular

site.Today,therearemorethan1,000,000sitesutilizingPHP.

PHPisaprevalentandbroadlyutilizedprogrammingdialectutilizedforsite

improvement.PHPstandsforPHP:HypertextPreprocessor.

IntheearlyyearsoftheInternet,mostdestinationswerestaticcontentpages.As

theInternetadvanced,individualsneededsiteswithmoreintuitivefunctionality,

forexample,visitorbooksandcontactframes.PHPwastheidealinstrumentand

stillistoday.

PHPisanexceptionallystrongandexperiencedprogrammingdialect.Itwas

initiallyreleasedin1995andhasdevelopedtoturnintooneofthefavoreddialects

forsiteadvancement.Itrunsontheserversideandisexceptionallysecure.Now

thatit’soutintheopen,mostfacilitatingorganizationsgivePHPtheirfacilitating

bundles.

Intheeventthatyourequireaninteractivesite,withcomponentslikevisitor

booksandcontactshapes,youcanlearnPHPprogrammingyourself,purchasea

Page 8: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

sitebundle,orcontractaProfessionalPHPProgrammer.Agreatnumberof

peopledon’thaveroom,scheduleorcapabilitytotakeinaprogrammingdialect

e.g.PHPandchoosetoacquiresitepacks.Onerecentmyrecentcustomers

acquiredado-it-withoutanyoneelse’shelpsitepackfromavastre-sell.These

packs,howeverofferfundamentalsitesthatcanworkforafewindividuals,have

littlefunctionalityandofferrestrictedhighlights.Inthewakeofbattlingwithit,

thiscustomeremployedmetodevelophissite.Afterfinishingit,henowhasasite

thatislovelyandhasincrediblefunctionalityandinteractiveelementsthathis

customersneed.Hissiteisalongwaypastwhatasitepackcouldhaveevergiven.

ThisisthedistinctionofPHP!

Page 9: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

CHAPTER1:SETTINGUPYOURSERVERSincenowyouhaveeverythingsetandreadytogo,asthenutsandboltsof

programminggoes,weshouldbeginbymakingabasicshoutoutof“hiworld”in

theserver.

Tostartwith,gotothecatalogwhereyouintroducedyourXAMPP(Commonlyin

C:\xampp).Fromthatpoint,gotothehtdocsenvelope(Commonlyin

C:\xampp\htdocs)andmakeanorganizernamed“MyFirstWebsite”.

Fromthatpart,youhavenowmadeaLocalURLforyourwebsite.Thatenvelope

willbeutilizedtosupplyinallwebsiterecords(.html,.php,.css,.js,andsoforth.).

Openupyourcontentmanagerandnowwecanbegin!

Iutilizesuperbcontentasmywordprocessor.Ontheoffchancethatyou’re

utilizingNotepad++oranyotherprocessors,it’salright.It’snotsomuchofa

majorcomponentyetbecauseit’sonlyaninclinationonwhichoneyoumight

wanttoutilize.

WhatwewilldoisafundamentalHTMLpageandpresentation“hiworld”from

theserver,utilizinganessentialPHPlanguagestructure.Wewillthensortthe

accompanyinggrammar:

ABOVECODING:

<html>

<head>

<title>MyfirstPHPWebsite</title>

Page 10: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

</head>

<body>

<?php

echo“<p>HelloWorld!</p>”;

?>

</body>

</html>

Savethedocumenttothe“MyFirstWebSite”Folderandnameitas“index.php”.

(Indexasseenonthetopbarofthepicture)

Giventhatyouhavetherecord,weshouldnowopenyourXAMPPcontrolboard.

Intheeventthatitdoesn’tshowuponyourdesktop,itissituatedinyourXAMPP

envelopeasseenonthepicture:

Nowthatit’sthere,RunyourApacheandmySQLbytappingthe“Begin”catchon

theactivitiessegment.YououghttoseeanirregularPID(s)andthedefaultport

number.Apacheisthenameofourwebserverinwhichitwillhandleeveryone

ofthedocumentsandalsoserveasthecorrespondencetothewebprogramand

MySQLisourdatabasewhichwillstorethegreaterpartofourdata.

Openupyourwebprogramandinthelocationbar,clicklocalhost.Yououghtto

Page 11: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

seethemenuofyourXAMPP.

Ontheoffchancethatit’sthefirsttimewhenyourunit,itwillaskwhatdialect

youwouldinclinetoward,justbasicallypickoneanditwillleadyoutothemenu.

Ontheoffchancethatyouwillseetheindexislocalhost/xampp,it’stheplacethe

defaultpagedrivesyouregardlessofthewhetheryouwriteinlocalhost.

OntheoffchancethatyouwillseethattheURLisMyFirstWebsite,itisgotten

fromthehtdocsorganizeranditnaturallyperusesdocumentsthatarenamed

“index”(Beitindex.html,index.aspx,andsoon),whichservesasthedefaultpage.

Nonetheless,writinglocalhost/MyfirstWebsite/index.phpisimportant.Youcan

alsomakeyourcustomnamefortheURLbyessentiallyrenamingtheorganizer

buthowaboutwesimplysticktoMyFirstWebsitefornow.

Note:Ifyoudon’thavearecordnamedlistandyouentertheURL,youwillgeta

slip404fornothavingthedocumentontheserver.Incaseyoudohavedistinctive

documentsthatarenotnamedindex<extention>,youneedtodeterminethe

particularrecordname.E.g:localhost/MyfirstWebsite/page.php.

Page 12: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

0.1CreatingthepublicHTMLPages

Thenextstepisthatweshouldchangeourwebsiteandincludearegistrationpage

whereourclientscanenrollandalsoaLog-inpageimmediatelyaftergetting

enlisted.Weshouldalsoadjustourlandingpagewiththeaccompanyingcode:

CODEABOVE:

<html>

<head>

<title>MyfirstPHPWebsite</title>

</head>

<body>

<?php

echo“<p>HelloWorld!</p>”;

?>

<ahref=”login.php”>Clickheretologin

<ahref=”register.php”>Clickheretoregister

</body>

</html>

Itshouldbeobviousbynowthatwehavejustincluded2connectionswhichare

fortheLoginandregister.Weshouldmaketheregistrationpagefirst.Asyoucan

see,it’sonlyanessentialstructurewheretheclientcanincludehis/her

accreditations.Fortheloginpage,insertthiscode:

Page 13: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

Insight:Justduplicatethesamecodetomakethingseasierandfaster.

login.php

CODEABOVE:

<html>

<head>

<title>MyfirstPHPWebsite</title>

</head>

<body>

<h2>LoginPage</h2>

<ahref=”index.php”>Clickheretogoback<br/><br/>

<formaction=”checklogin.php”method=”POST”>

EnterUsername:<inputtype=”text”name=”username”required=”required”/>

<br/>

Enterpassword:<inputtype=”password”name=”password”required=”required”

/><br/>

<inputtype=”submit”value=”Login”/>

</form>

</body>

</html>

Fundamentally,it’sstillthesamecodeasfromtheregister.phpbutthe

Page 14: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

adjustments/progressionsmadeweretheonesunderlined.

Tryrunninglocalhost/MyFirstWebsiteagainandyourpagesoughttoappearlike

this:

index.php

login.php

register.php

Page 15: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

0.2Creatingthedatabaseandit’stables

Nowthathaveourmostimportantpageforallpeopleingeneral,howaboutwe

continuetothedatabase?

Tostartwith,selectlocalhost/phpmyadmin.Thiswillleadyoutothe

phpmyadminlandingpage:

Localhost/phpmyadmin

Fromthatpoint,gototheDatabasestabsituatedontopthenfromthecontentbox

inthecenter,selectfirst_dbthentaponmake.SimplyleavetheCollationas

shownbelow:

Youhavenoweffectivelymadeyourfirstdatabase.

Fromthatpoint,howaboutwemakeatableinwhichwecanenrollourclientsand

showcasedata?Tostartwith,clickonfirst_dbsituatedontheleftsideandmakea

tablenamedclientswith3segmentsthentaponGo.

Forthetable’sstructure,choosetohavetheaccompanyingfieldsthentapon

recovery:

Page 16: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

Group:ColumnName-Type-Length-NullProperty-OtherProperties

Id-INT-N/A-NotNull-AutoIncrement

Username-varchar-50-Notnull

Secretkey-varchar-50-Notnull

Leaveeverythingasdefaultifitisnotdetermined.

Note:Youhavetosrolltotherightofthatpagefortheauto_increment.Isimply

alteredthephototofittheA_Ifield

Next,makeanothertablenamedrundownwith7sectionsandforthetable’s

structure:

id-INT-N/A-NotNull-AutoIncrement

pointsofinterest-content-Notnull

date_posted-varchar-30-Notnull

time_posted-Time-Notnull

date_edited-varchar-30-Notnull

time_edited-Time-Notnull

open-varchar-5-Notnull

Page 17: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

0.3Addinguserstothedatabase

Sincewehaveourtables,weshouldproceedtothefunpart,gettingyour

enlistmentpageusable.Fromyourregistration.php,includethehtmlcodesadd-

onbelow:

register.php

Here’stheamplificationtothecode:

<html>

<head>

<title>MyfirstPHPWebsite</title>

</head>

<body>

<h2>RegistrationPage</h2>

<ahref=”index.php”>Clickheretogoback<br/><br/>

<formaction=”checklogin.php”method=”POST”>

EnterUsername:<inputtype=”text”name=”username”required=”required”/>

<br/>

Enterpassword:<inputtype=”password”name=”password”required=”required”

/><br/>

<inputtype=”submit”value=”Register”/>

</form>

</body>

</html>

Page 18: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

$_SERVER[“REQUEST_METHOD”]==“POST”-checksifthestructurehas

gottenaPOSTmethodwhenthesubmitbuttonhasbeenclicked.ThePOST

methodismadeinhtmlfromthemethod=”POST.

$_POST[‘’]-getsthenameoriginatingfromaPOSTmethod.Thisactionbasically

getstheinfowithregardstothenamefromthestructure.Foroursituationit’s

usernameandpassword.

mysql_real_escape_string()-exemplifiestheinformationintoastringtokeep

inputsfromSQLInjections.Thisguaranteesthatyourstringsdon’tescapefrom

extracharacters.

Afterthat,gotoyourregister.phpandattempttoinputanydatathenclickon

“Register”.FormysituationIputintheusernamextianandpasswordas123456.

Itoughttoshowtheinputsbelow.Here’smyspecimen:

Throughthispartyououghttohaveseenonthemostproficientmethodtoget

infothroughthestructureandhowtoaddittothedatabase.Onyourregister.php,

includethesupplementarycode:

Herearetheclarificationstothecode:

<html>

<head>

<title>MyfirstPHPWebsite</title>

</head>

Page 19: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

<body>

<h2>RegistrationPage</h2>

<ahref=”index.php”>Clickheretogoback<br/><br/>

<formaction=”checklogin.php”method=”POST”>

EnterUsername:<inputtype=”text”name=”username”required=”required”/>

<br/>

Enterpassword:<inputtype=”password”name=”password”required=”required”

/><br/>

<inputtype=”submit”value=”Register”/>

</form>

</body>

</html>

alert(“Usernamehasbeentaken!”);</script>’;//Promptstheuser

Print‘<script>window.location.assign(“register.php”);</script>’;//redirectsto

register.php

}

}

if($bool)

{

mysql_query(“INSERTINTOusers(username,password)VALUES(‘$username’,

‘password’)”);//insertsvalueintotableusers

Print‘<script>alert(“SuccessfullyRegistered!”);</script>’;//Promptstheuser

Print‘<script>window.location.assign(“register.php”);</script>’;//redirectsto

register.php

}

}

?>

mysql_connect(“Servername”,”ServerUsername”,”ServerPassword”)-The

Page 20: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

sentencestructureusedtojoinwithourXAMPPserver.localhostor127.0.0.1is

thenameoftheserver.Thedefaultusernameisrootandnosecretwordfor

default.

mysql_select_db(“databasename”)-Selectsthedatabasetobeutilized.

thenagaindie(‘Message’)-Displaysthelapsemessageiftheconditionwasn’tmet.

mysql_query(‘sqlquestion’)-doestheSQLinquiries.

mysql_fetch_array(‘query’)-bringsallquestionsinthetabletoshoworcontrol

data.Itisputinaasacirclesothatitwouldquestionallcolumns.Observethat,

just1lineisquestionedpercirclethatisthereasonawhilecircleisvital.

$row[‘rowname’]-theestimationofthesectioninthepresentinquiry.Itis

representedasanexhibit.Foroursituation$rowisthenameofthevariablefor

ourcolumnontheupanddown.

Attempttheinputsthatyouhavemadebeforeandseewhathappens.Itoughtto

showthatyouhaveeffectivelyregistered.Attemptgoingtophpmyadminandsee

yourclientstable:

Congrats!Nowyouknowhowtoincludedataintothedatabasewithdata

validations.

Page 21: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

0.4Userlog-in:Authentication

Subsequently,fortheloginpage,weshouldmakeanotherdocumentcalled

checklogin.php.Thereasonisbacktrackingtoourlogin.php,ourstructurehasan

activitycalled“checklogin.php”,especially<formactivity=“checklogin.php”

method=“POST”>.Intheeventthatyouwillseeitontheregister.php,it’salsoon

register.phpbecausetheback-endisdoneonthesamedocumenttoo.

Howaboutwenowcodethechecklogin.phpwiththeaccompanyinglanguage:

checklogin.php

<?php

session_start();

$username=mysql_real_escape_string($_POST[‘username’]);

$password=mysql_real_escape_string($_POST[‘password’]);

$bool=true;

mysql_connect(“localhost”,“root”,“”)ordie(mysql_error());//Connecttoserver

mysql_select_db(“first_db”)ordie(“Cannotconnecttodatabase”);//Connectto

database

$query=mysql_query(“Select*fromusersWHEREusername=’$username’”);//

Querytheuserstable

$exists=mysql_num_rows($query);//Checksifusernameexists

$table_users=“”:

$table_password=“”;

if($exists>0)//IFtherearenoreturningrowsornoexistingusername

Page 22: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

{

while($row=mysql_fetch_assoc($query))//displayallrowsfromquery

{

$table_users=$row[‘username’];//thefirstusernamerowispassedonto

$table_users,andsoonuntilthequeryisfinished

$table_password=$row[‘password’];//thefirstpasswordrowispassedonto

$table_password,andsoonuntilthequeryisfinished

}

if(($username==$table_users)&&($password==$table_password))//checks

ifthereareanymatchingfields

{

if($password==$table_password)

{

$_SESSION[‘user’]=$username;//settheusernameinasession.Thisservesasa

globalvariable

header(“location:home.php”);//redirectstheusertotheauthenticatedhome

page

}

}

else

{

Print‘<script>alert(“IncorrectPassword!”);</script>’;//Promptstheuser

Print‘<script>window.location.assign(“login.php”);</script>’;//redirectsto

login.php

}

}

else

{

Page 23: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

Print‘<script>alert(“Incorrectusername!”);</script>’;//Promptstheuser

Print‘<script>window.location.assign(“login.php”);</script>’;//redirectsto

login.php

}

?>

session_start()-Startsthesession.Thisisnormallydoneonestablishedpages.

Thereasonwhyweusedthisisbecauseitisneededforthe$_SESSION[‘’].

mysql_num_rows()-Thisyieldsawholenumber.Thisnumberseveryoneofthe

columnsdependingontheinquiry.

$_SESSION[‘name’]-Servesasthesessionnameforthewholesession.Thisis

moreorlesslikeopenvariablesinitemarrangedprogramming.Wewillbe

utilizingthisforrecognizingwhethertheclientisvalidatedornot.

Thenattempttotestyourdatawithawrongusernameandpassword.Itoughtto

givebackthepreferredprompt.Aftertesting,tryinputtingtherightvalues.It

oughttoleadyoutohome.php.

Note:home.phpdoesnotexistyetsoitwillcreateanerror404.

Page 24: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

CHAPTER2:SETTINGUPTHEHOMEPAGEFORLOGGED-INUSERSANDLOGGING-OUTNowthatwereconfirmed,letnowmakeourlandingpage(home.php)withthe

accompanyingsyntax:

home.php

CODEABOVE:

<html>

<head>

<title>MyfirstPHPWebsite</title>

</head>

<?php

session_start();//startsthesession

if($_SESSION[‘user’]){//checksiftheuserisloggedin

}

else{

header(“location:index.php”);//redirectsifuserisnotloggedin

}

$user=$_SESSION[‘user’];//assignsuservalue

?>

Page 25: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

<body>

<h2>HomePage</h2>

<hello>!

<!—Display’susername—>

<ahref=”logout.php”>Clickheretogologout</a><br/><br/>

<formaction=”add.php”method=”POST”>

Addmoretolist:<inputtype=”text”name=”details”/><br/>

Publicpost?<inputtype=”checkbox”name=”public[]”value=”yes”/><br/>

<inputtype=”submit”value=”Addtolist”/>

</form>

<h2align=”center”>Mylist</h2>

Id Details Edit Delete

</body></html>

Here’stheexplanationtothecode:

session_start()-Basicallystartsthesession.Requiredfor$_SESSION[‘’].

header()-redirectstheuser.

Tryrefreshingyourbrowseranditshouldlooklikethis:

Nowthatwehaveourhomepage,let’strycreatingourlogout.phpandtestifthe

user’ssessionisoff.Whatwewillensureisthatiftheuserislogged-out,theuser

shouldn’taccesshome.php.Sohere’sthesimplesyntaxtologout.php:

logout.php

Page 26: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours
Page 27: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

2.1TestingPageSecurity

Totestpagesecurity,tryrefreshinghome.phpandclickonlogout.Nowtry

clickingonthebackarrowofyourprogramandseewhathappens:

Asitshouldbeclear,itdoesn’tguideyoutohome.phpbecauseyouarelogged-out.

Thenforthesecondtest,attemptphysicallyinputtingthelocation

localhost/MyFirstWebsite/home.php.Thesamecaseoughttohappenaswell.

Sincewerelogged-out,evenamanualinfoofthelocationdoesn’tgettoan

approvedpage.Whatwehavedoneisasimplesecuritycomponentinwhichwe

divertunapprovedclientstoanopenpage.

Nowtrysigninginagainandyoushouldgobacktohome.php.

Page 28: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

2.2Addingdatatothelist-UserAccessOnly

Inournextstep,howaboutwemaketheaddingofdatatothelisttobeuseraccess

only?Asyouwillseefromthestructure,itiscomposedas<form

action=”add.php”method=”POST”>,denotingthatourhttppostrequestgoesto

add.phpandwiththat,wemakeouradd.phpwiththeaccompanyingsyntax:

CODEABOVE:

<?php

session_start();

if($_SESSION[‘user’]){

}

else{

header(“location:index.php”);

}

$details=mysql_real_escape_string($_POST[‘details’]);

$time=strftime(“%X”);//time

$date=strftime(“%B%d,%Y”);//date

Print“$time-$date-$details”;

?>

Notethatthisisn’tourcertifiedadd.phpsyntaxyet,I’msimplygoingtoshowthe

timeanddatesyntaxandgettingyourdata.

Afterthat,doareversaltoyourhome.phpandattempttoincludeanitemthen

select“Addtolist”.

Page 29: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

Asshouldbeobviousfromtheimage,wehaveourcurrenttime,date,andyour

data.Here’stheclarificationtothecode:

strftime()-get’sthetimeinlightofwhatarrangementyourset.

%X-currentframeworktime.

%B-currentframeworkmonth.

%d-currentframeworkday.

%Y-currentframeworkyear.

Nowweshouldchangeouradd.phpandincludetheaccompanyingdataintothe

databasetogetherwiththedatafromthecheckbox:

Here’salittleclarification:

foreach()-getsthevalueofthecheckbox.Asyouwillsee,thecheckboxdesignin

thestructureisname=”checkbox[]”.Togetdatafromcheckbox,itmustbe

instantiatedasanarray.Doingassuchwouldmakeitfeasibletogetdatafrom

differentcheckboxes.

Nowtryatenteringsomedataandclick“Addtolist”.Formysituation,I’llsimply

utilizefishoncemore.Howaboutwegotoourphpmyadminandhowaboutwe

checkwhetherthedatahasbeenincluded?Theresultsofmycaseareinthe

chapterbelow.

Page 30: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

CHAPTER3:DISPLAYINGDATAINTHEHOMEPAGESincewehaveseenthattheinformationhasbeeneffectivelyincluded,weshould

nowshowtheinformationinourlandingpage.Weshouldchangeourhome.php

andhowaboutweincludeafewsectionsforthedate?

home.php

<html>

<head>

<title>MyfirstPHPWebsite</title>

</head>

<?php

session_start();//startsthesession

if($_SESSION[‘user’]){//checksiftheuserisloggedin

}

else{

header(“location:index.php”);//redirectsifuserisnotloggedin

}

$user=$_SESSION[‘user’];//assignsuservalue

?>

Page 31: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

<body>

<h2>HomePage</h2>

<hello>!

<!—Display’susername—>

<ahref=”logout.php”>Clickheretogologout</a><br/><br/>

<formaction=”add.php”method=”POST”>

Addmoretolist:<inputtype=”text”name=”details”/><br/>

Publicpost?<inputtype=”checkbox”name=”public[]”value=”yes”/><br/>

<inputtype=”submit”value=”Addtolist”/>

</form>

<h2align=”center”>Mylist</h2>

‘;

Print‘”;

Print‘”;

Print‘”;

Print‘”;

Print‘’;

Print‘’;

Print‘’;

Print‘’;

}

?>

Itshouldnowshowthatinformation.FromourCRUDagenda,wehavenow

achievedCreateandRead.Nextistoupdate(edit)anderasedataincaseyoufind

thatwehavealteranderaseconnectionsshowedonthesegment.I’lladdanother

informationtothelistnamed“fish”tohaveanothersampleandthistime,its

privacystatusisno:

Page 32: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours
Page 33: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

3.1EditingData

Weshouldnowtryalteringourinformationandtodothatwewillneedtoutilize

anotherfunctioncalled“GET”.Withourpastroutines,wehavebeenutilizing

POSTasourhttprequestbutthistimewewillutilizeGETforalteringanderasing

records.Tobeginwith,weshouldchangeourhome.phpandaddalittlecodeto2

segments:

home.php

CODEABOVE:

<html>

<head>

<title>MyfirstPHPWebsite</title>

</head>

<?php

session_start();//startsthesession

if($_SESSION[‘user’]){//checksiftheuserisloggedin

}

else{

header(“location:index.php”);//redirectsifuserisnotloggedin

}

$user=$_SESSION[‘user’];//assignsuservalue

?>

Page 34: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

<body>

<h2>HomePage</h2>

<hello>!

<!—Display’susername—>

<ahref=”logout.php”>Clickheretogologout</a><br/><br/>

<formaction=”add.php”method=”POST”>

Addmoretolist:<inputtype=”text”name=”details”/><br/>

Publicpost?<inputtype=”checkbox”name=”public[]”value=”yes”/><br/>

<inputtype=”submit”value=”Addtolist”/>

</form>

<h2align=”center”>Mylist</h2>

‘;

Print‘”;

Print‘”;

Print‘”;

Print‘”;

Print‘’;

Print‘’;

Print‘’;

Print‘’;

}

?>

Asyouhaveseen,wejustincludedURLparameterforthealteranderase

interfacestobeforaspecificID.Wewillbeutilizingthislatertohandlethe

information.ThemotivationbehindwhyweuseIDisonthegroundsthatit’san

exceptionalidentifier.Itispossiblefortheindividualtohaveenteredthesame

informationsoit’snotadvisabletoutilizethedetailsasamethodofcontrollater

on.

Page 35: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

TryputtingyourcursorintotheeditlinkandyouwillseetheestimationoftheID

onthelowerleft:

<br/>Enternewdetail:<inputtype=”text”name=”details”/><br/>openpost?

<inputtype=”checkboxname=”public[]”value=”yes”/><inputtype=”submit”

value=”UpdateList”/></form>‘;}else{<h2align=”center”>Thereisnot

informationtobeedited.</h2>}?></body></html>Clickhereforthecomplete

edit.phpcode(Onlyalludetothefront-endcode.

<html>

<head>

<title>MyfirstPHPWebsite</title>

</head>

<?php

session_start();//startsthesession

if($_SESSION[‘user’]){//checksiftheuserisloggedin

}

else{

header(“location:index.php”);//redirectsifuserisnotloggedin

}

$user=$_SESSION[‘user’];//assignsuservalue

?>

<body>

<h2>HomePage</h2>

<hello>!

Page 36: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

<!—Display’susername—>

<ahref=”logout.php”>Clickheretogologout</a><br/><br/>

<ahref=”home.php”>Returntohomepage</a>

<h2align=”center”>CurrentlySelected</h2>

0)

{

while($row=mysql_fetch_array($query))

{

Someexplanationstothecode:

!empty()-amethodthatchecksifthevalueisnotempty.Thesyntaxcanbe

reversedifyouwanttocheckifit’semptybyremovingtheexplanationpoint(!),

thereforeit’ssyntaxwouldbeempty().

$_GET[‘’]-Usedtogetthevaluefromtheparameter.Inourcase,weuseidasour

URLparametersothesyntaxwouldbe$_GET[‘id’].

$id_exists-thevariablethatcheckswhetherthegivenidexists.

$_SESSION[‘id’]-weplacethevalueofidintosessiontouseitonanotherfile.

Lines42-76

HowaboutweattemptadjustingtheURLparameterbygettingridof?id=1.This

shouldresulttolocalhost/MyFirstWebsite/edit.phpanditoughttoresultlikethis:

edit.php?id=1

Page 37: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

GoaheadandclickUpdatelistandyoushouldberedirectedtohome.phpandsee

theupdatedlist.

SincewesecuredourURLparameters,letsnowputthealtersyntax.Weshould

backpedaltoedit.phpandaddsomecomplementarycodetorestorethedatato

thedatabase:

Congrats!Wehavenowdonetheeditfunction!

Page 38: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

3.2Deletingdata

TakingalookbacktotheCRUD,wehavenowdonecreating(adding),reading

(displaying),andupdating(editing)records.Atthispoint,thelastpartiserasing

records.Forthispart,it’sgenerallythesameaswhatwehavedoneonedit,

however,whatvariesisonlytheSQLstatement.RatherthanutilizingUPDATE,

wewillbeutilizingtheDELETEsyntax.Inerasingrecords,weneedtoprompt

individualsverifyingthatthey’dtrulyneedtoerasetherecordsowewillbe

includingalittleJavaScriptinhome.php.Todothat,weshouldalterourcodeand

includesomeint.home.php

home.php

CODEABOVE:

<tableborder=”1px”width=”100%”>

Id

Details

PostTime

EditTime

Edit

Delete

PublicPost

‘;

Print‘’.$row[‘id’].“”;

Page 39: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

Print‘’.$row[‘details’].“”;

Print‘’.$row[‘date_posted’].“-“.$row[‘time_posted’].“”;

Print‘’.$row[‘date_edited’].“-“.$row[‘time_edited’].””;

Print‘<ahref=”edit.php?id=’.$row[‘id’].’”>edit’;

Print‘<ahref=”#”nclick=”myfunction(‘.$row[‘id’].’)”>delete</a>’;

Print‘’.$row[‘public’].‘’;

Print‘’;

}

?>

<script>

functionmyFunction(id)

{

varr=confirm(“Areyousureyouwanttodeletethisrecord?”);

if(r==true)

{

window.location.assign(“delete.php?id=”+id);

}

}

</script>

Asyouhaveseen,wealteredthelinkforthedelete.Wechangedhrefinto“#”and

includedandonclickcapacityforJavaScriptforthetechniqueformyFunctionand

insideit’sparameteristheidoftherow.Belowthetablecomposedisthe

JavaScriptsyntaxwhereinitpromptstheuserontheoffchancethathe/sheneed’s

toerasetherecord.Incasetheclientaffirms,thepagethenconnectstodelete.php

togetherembeddedwiththevalueoftheid.Next,letusmakedelete.phpand

here’stheaccompanyingsyntax:

Delete.php

Page 40: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

CODEABOVE:

<?php

session_start();//startsthesession

if($_SESSION[‘user’]){//checksifuserisloggedin

}

else{

header(“location:index.php”);//redirectsifuserisnotloggedin.

}

if($_SERVER[‘REQUEST_METHOD’]==“GET”)

{

mysql_connect(“localhost”,“root”,“”)ordie(mysql_error());//connecttoserver

mysql_select_db(“first_db”)ordie(“cannotconnecttodatabase”);//Connectto

database

$id=$_GET[‘id’];

mysql_query(“DELETEFROMlistWHEREid=’$id’”);

header(“location:home.php”);

}

?>

Thecodeissimplystraightforwardandthesyntaxisaswelltheonesthatwe

utilizedbeforealthoughyoumaynoticewehavechangedourrequesttechnique

intoGET.Atthisstage,weareutilizingtheGETrequestsincewehaveaURL

parameter.Nowtryrefreshinghome.phpandletusattempterasingthefirst

record.Thisoughttobetheoutcome:

Prompting:

Page 41: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

End-result:

Congrats!AtthispointwehaveauthoritativelyfinishedourCRUDproclamations!

Page 42: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

3.3Displayingpublicdata

Subsequently,letusseehowpublicinformationshouldbeplay.Wewillbe

showinginformationthathasbeensettoyesinourindex.php,inwhichisapage

fornon-authenticatedusers.It’sexceptionallysimple.Wesimplyneedtoalterour

index.phpandincludesomephpcodeandtable.Here’sourupgradedindex.php:

index.php

Nowlog-outandseeyourdefaultpage.Itshouldlooksomethinglikethis:

Note:Youwon’tseethedatayetsincewehaven’tsetanyinformationtopublic.

Nowlet’slog-inagainandthistime,let’saddsomemoredata.InmycaseI’ve

addedthefollowing:

Salad-public

Corn-non-public

Pasta-public

Chicken-public

Spaghetti-non-public

Page 43: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

Withatotalof6data’swith3ofeachprivacysetting:

home.php

Nowlet’slog-outandseeourdefaultpage(index.php).Itshouldnowlooklike

this:

index.php

Asyoucansee,itonlydisplaysdatathataresettopublic.

Page 44: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

CHAPTER4:DYNAMICCONTENTANDTHEWEBTothenormalclient,awebpageissimplyjustawebpage.Itopensinthebrowser

andgivesinformation.Lookingcloser,however,variouspagesstayforthemost

partthesame,whileotherpageschangeroutinely.Pagesthatdon’tchange—static

pages—aregenerallysimpletomake.SomebodyneedstomakeaHTMLarchive

doc,byhandorwithapparatuses/tools,andtransferittoawebsitewhereweb

browserscanvisit.Astandoutamongstthemostwell-knowninstrumentstomake

HTMLdocsisAdobeDreamweaver.Atthepointwhenchangesarerequired,you

simplysupplanttheoldfilewithanotherone.Dynamicpagesaremadewith

HTMLaswell,although,ratherthanabasicbuildand-postapproach,thepages

areupgradedroutinely,evensometimeseverytimethattheyareasked.

Staticsitesgivehyperlinkedtextandmaybealoginscreen,however,pastthatthey

don’toffermuchassociation.Bycontrast,Amazon.com

(http://www.amazon.com)exhibitsalotofwhatadynamicsitecando:your

orderinginformationisloggedplusAmazonofferssuggestionstakingintoaccount

yourbuyinghistorywhenyouaccesstheirpage.Attheendoftheday,dynamic

impliesthattheclientinteractswiththesitepastsimplyperusingpages,andthe

siterespondsinviewofyouractivities.Goingthrougheachpageisapersonalized

experience.

Makingdynamicpages—evenacoupleofyearsago—impliedcompositionofa

considerableamountofcodeintheCorPerldialects,andafterwardcallingand

executingthoseprogramsthroughaprocedurecalledaCommonGateway

Interface(CGI).Nonetheless,makingsuchexecutablefileswasn’tmuchfun,nor

wastakinginanentirenewcomplexlanguage.

Thankfully,PHPandMySQLensurethatmakingdynamicwebsitesissimplerand

faster.

Page 45: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

4.1HTTPandtheInternet

SomebasicknowledgeofhowtheInternetfunctionsmaybehelpfulontheoff

chancethatyouhaven’tprogrammedfortheWebrecently.TheHyperText

TransferProtocol(HTTP)identifieshowsitepagesareexchangedoverthe

Internet.HTTPisthesystemusedtoexchangeorpassondataontheWorldWide

Web.Itsuniquereasonforexistingwastogiveanapproachtopublish,distribute

andrecoverHTMLpages.TheWorldWideWebConsortium(W3C)andthe

InternetEngineeringTaskForceharmonizedthedevelopmentofHTTP,whichare

request-and-responseprotocolsthatjoincustomersandservers.Theclientatthe

startingpoint,normallyawebbrowser,isalludedtoastheuseragent.The

destinationserver,whichstoresorbuildsresourcesaswellasenclosingHTML

documentsandpictures,isknownastheoriginalserver.Betweentheuseragents

androotserver,theremaybeafewintermediariessuchasproxies.AHTTP

customerstartsarequestbysettingupaTransmissionControlProtocol(TCP)

connectiontoaspecificportonaremotehost(port80isthedefault).AnHTTP

serverlisteningonthatportwaitsforthecustomertosendarequestmessage.

Afteracceptingtherequest,theserversendsbackastatusline,as“HTTP/1.1200

Alright,”anditsownparticularresponse.Contingentuponthestatus,this

reactionalresponsecouldbetherequestfile,aerrormessage,orsomeotherdata.

HTTPismadeontopofTCP,whichisitselflayeredontopofInternetProtocol

(IP).

ThetwoareoftentogethertermedasTCP/IP.Applicationsonorganizedhostscan

utilizeTCPtomakeassociationswitheachother,andafterwardexchangeof

information.Theprotocolensuressolidconveyanceofinformationfromsenderto

collector.TCPunderpinsaheftyportionoftheInternet’smostprominent

applicationprotocolsandapplications,comprisingoftheWeb,email,andSecure

Shell(SSH).

Page 46: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

4.2PHPandMySQL’sPlaceinWebDevelopment

PHPisaprogramminglanguagedesignedtocreatewebpagesinteractivelyonthe

PCservingthem,whichisknownasawebserver.DissimilarfromHTML,where

thewebprogramusestagsandmarkuptocreateapage,PHPcodekeepsrunning

betweentherequestedpageandthewebserver,addingtoandchangingthe

fundamentalHTMLoutput.

PHPmakeswebadvancementsimpleinlightofthefactthatallthecodeyouneed

iscontainedinsidethePHPframework.Thisimpliesthatthere’snoparticular

reasonforyoutoreevaluatethewheeleverytimeyousittodeveloptoaPHP

program;itisaccompaniedbybuilt-inwebfunctionality.WhilePHPisawesome

forwebapplicationdevelopment,itdoesn’tstoredatabyitself.Forthat,you

requireadatabase.ThedatabaseofCHOICEforPHPengineersisMySQL,which

actslikeafilingclerkforPHP-prepareduserdata.MySQLrobotizesthemost

widelyrecognizedtasksinvolvingstoringandrecoveringspecificclientdatataking

intoaccountyoursuppliedcriteria.MySQLiseffortlesslyaccessedfromPHP,and

theyfunctionadmirablytogether.AnincludedadvantageisthatPHPandMySQL

keeprunningondifferentPCtypesandworkingframeworks,includingMacOSX,

Windows-basedPCs,andLinux.SeveralelementsmakeutilizingPHPandMySQL

togetherthenaturaldecisionbymany:

• PHPandMySQLfunctionwelltogether

PHPandMySQLhavebeencreatedonaccountofoneanotherinmind,sotheyare

simpletoutilizetogether.Theprogramminginterfacesbetweenthemaresensibly

pairedup.Theideaofthesetwoworkingtogetherwasn’tanideainaddendum

whenthedesignersmadethenPHPandMySQLinterfaces.

• PHPandMySQLhaveopensourcepower

Astheyarebothopensourcetasks,PHPandMySQLcanbothbeutilizedforfree.

MySQLcustomerlibrariesarenolongerpackagedwithPHP.Advancedclientscan

makeimprovementstothesourcecode,andalongthoselineschangethewaythe

languageandcomputerprogramswork.

• PHPandMySQLhavegroupsupport

BothofthemhavedynamiccommunitiesontheWebinwhichyoucantakean

interest,andthememberswillhelpyouansweryourinquiries.Youcanlikewise

Page 47: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

buyproficientsupportforMySQLintheeventthatyourequireit.

• PHPandMySQLarefast

Theirbasicandefficientdesignsempowerspeedierprocessing.

• PHPandMySQLdon’timpedeyouwithsuperfluousdetails

TheValueofOpenSource

Aswesaidabove,bothPHPandMySQLarebothopensourceprojects,soyou

neednottoworryaboutpurchasinguserlicensesforeachPCinyourofficeor

home.Atanypointwhenusingopensourceprojectsandtechnologies,most

programmersusuallyhaveaccesstothesourcecode.Thisfacilitatesindividualor

evengroupanalysistodistinguishprobablecomplexcode,debug,test,andoffer

changesandadditionstothatcode.

Forinstance,Unix-theprecursorintheopensourceprogrammingcommunity—

wasopenlysharedwithcollegeprogrammingresearchers.Linux,thefree

alternativeforUnix,isanimmediateoutcomeoftheirendeavorsandtheopen

source-licensingmodel.Generally,opensourcelicensesconsistoftheprivilegeto

distributeadjustedcodebutwithafewlimitations.Forinstance,afewlicenses

necessitatethatderivativecodeshouldbereleaseunderthesamelicense,orthere

maybealimitationthatotherscan’tutilizeyourcode.

Opensourcelicensingstartedasanendeavortosafeguardacultureofsharing,

andlaterpromptedanextendedawarenessregardingthevalueofthatsharing.

Today,opensourcesoftwareengineerssharetheircodechangesontheWebby

meansofhttp://www.php.net,listservs,andwebsites.Incaseyoufindyourselfin

acodingnightmarewhichyoucan’tawaken,theresourcesmentionedinthis

chaptercanandwillhelp.

Page 48: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

4.3TheComponentsofaPHPApplication

Ifyourendgoaltotransformandcreatedynamicwebpages,you’llhaveto

comprehendanduseafewtechnologies.Therearethreeprinciplepartsofmaking

dynamicwebpages:awebserver,aserver-sideprogramminglanguage,anda

database.It’sasmartideatohaveanin-depthunderstandingofthesethree

essentialpartsforwebdevelopmentwhenusingPHP.We’llbeginwithsome

simplecomprehensionofthehistoryalso,motivationbehindApache(yourweb

server),PHP(yourserver-sideprogrammingdialect),also,MySQL(your

database).Thiscanhelpyoutoseehowtheyfitintothewebadvancementpicture.

Keepinmindthatdynamicwebpagespulldatafromafewsourcesatthesame

time,includingApache,PHP,MySQL,andCascadingStyleSheets(CSS),which

we’lldiscusslater.

PHP

PHPdevelopedoutofaneedforindividualstocreateandkeepupwebsites

containingdynamiccustomer-serverfunctionality.In1998,PHPwasdischarged

initsthirdform,transformingitintoawebadvancementapparatusthatcould

competewithsimilaritemslike,Microsoft’sActiveServerPages(ASP)andSun’s

JavaServerPages(JSP).PHPadditionallyisaninterpretedlanguage,insteadof

anassembledone.ThegenuinemagnificenceofPHPisitsstraightforwardness

combinedwithitspower.

PHPisalmosteverywhereandisverycompatiblewithallmajoroperating

systems.Itisalsosimpletolearn,makingitaperfecttoolforwebprogramming

beginners.Furthermore,yougettoexploitagroup’spushtomakeweb

developmentsimplerforeverybody.

ThemakersofPHPaddedtoafoundationthatpermitsexperiencedCdevelopers

toexpandPHP’scapacities.Consequently,PHPnowincorporatescuttingedge

innovationslikeXML,XSL,andMicrosoft’sComponentObjectModel

Technologies(COM).

Apache

Apacheisawebserverthattransformsprogramrequestsintoconsequentialweb

pagesandknowshowtoprocessPHPcode.PHPisjustaprogramminglanguage,

sowithouttheforceofawebserverlikeApachebehindit,therewouldbeno

Page 49: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

chancetogettingwebclientstoreachyourpagescontainingthePHPcode.

Apacheisnotbyanymeanstheonlywebserveraccessible.Anotherwellknown

webserverisMicrosoft’sInternetInformationServices(IIS),whichissupplied

withWindows2000andeverylaterform.Apachehasseveraldistinctadvantages

ofbeingfree,givingfullsourcecode,andutilizinganunrestrictedlicense.Apache

2.0isthepresentversionyouwoulddoubtlesslybeusing,however,1.3isstill

frequentlybeingutilized.IISissimplertocoordinatewithActiveDirectory,

Microsoft’smostrecentauthenticationframework;however,thisappliesgenerally

tointernalorganizationwebsites.

SincewebserverslikeApacheandIISaredesignedtoserveupHTMLrecords,

theyneedausertoknowhowtopreparePHPcode.Apacheutilizesmodulesto

loadexpansionsintoitsfunctionality.IISutilizesananalogousconceptcalled

InternetServerApplicationProgramInterface(ISAPI).Thesebothtakeinto

considerationquickerpreparationofthePHPcodethantheold-schoolprocedure

ofcallingPHPasadifferentexecutableeverytimethewebserverhadarequest

forapagecontainingPHP.We’lltalkabouthowtheApachemodulesetupinthe

nextchapter.

Apachehasjusttwonoteworthyversionsbeingusedtoday:1.3and2.Apache2is

abigreworkof1.3whichsupportsthreading.Threadsenablejustoneprocessto

overseemorethanonethingataparticularinstance.Thisbuildsspeedand

lessenstheresourcesrequired.Sadly,PHPisn’tabsolutelycompatiblewith

threadingyet.Apache2hasbeenoutlongenoughtobeviewedassecureforusein

developmentandcreationsituations.

Apache2supportsmoreeffectivemodulesaswell.Nonetheless,sharedmodule

DLLsthatdon’taccompanytheofficialApachesourcerecords,forexample,

mod_php4,mod_ssl,mod_auth_mysql,andmod_auth_ntsec,canbefoundon

theWeb.Apachesimilarlyhastheupsideofhavingthecapacitytokeeprunning

onotheroperatingsystemsotherthanWindows,whichnowtakesustothe

subjectofcompatibility.However,firstwe’llgiveyoualittlemoreexhaustive

coverageofrelationaldatabasesandSQL.

SQLandRelationalDatabases

OrganizedQueryLanguage(SQL)isthemostfamouslanguageusedtomake,

recover,overhaul,anderaseinformationfromrelationaldatabaseadministration

frameworks.Arelationaldatabasecomplieswiththerelationalmodelandalludes

Page 50: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

toadatabase’sinformationaswellasschema.Theschemaisthedatabase’s

structureofhowinformationisorganized.Regularuseoftheexpression

“RelationalDatabaseManagementSystem”actuallyalludestotheprogramming

usedtomakearelationaldatabase,forexample,OracleorMicrosoftSQLServer.

Arelationaldatabaseisacompilationoftables,yetdifferentitemsareregularly

consideredsomepartofthedatabase,astheyhelpsortoutandstructurethe

informationaswellasforcingthedatabasetofitinwithanthesetof

predeterminedrequirements.

MySQL

MySQLisafreerelationaldatabasewhichstillcontainsfull-features.MySQLwas

createdinthe1990stofillthecontinuallydevelopingrequirementforPCsto

overseedatashrewdly.ThefirstcoreMySQLdesignerswereattemptingtounravel

theirneedforadatabasebyutilizingmSQL,averysmallandbasicdatabase.It

turnedouttobeclearthatmSQLcouldn’ttakecareoftheconsiderablenumberof

issuestheyneededitto,sotheymadeamorerobustdatabasethattransformed

intoMySQL.

MySQLbolstersafewdistinctivedatabaseengines.Databaseenginesdecidehow

MySQLhandlestherealstockpilingandqueryingoftheinformation.Duetothat,

eachstorageenginehasitsownparticulararrangementofcapabilitiesand

strengths.Aftersometime,thedatabaseenginesaccessibleareturningouttobe

moreprogressiveandquicker.

ThelatestproductionreleaseofMySQListhe5.0xversion.MySQL5.0gives

executionthatissimilartoanyoftheagreatdealmorecostlyundertaking

databasesforexample,Oracle,Informix,DB2(IBM),andSQLServer(Microsoft).

Thedevelopershaveaccomplishedthislevelofperformanceexecutionbyutilizing

thetalentsofnumerousopensourcedesigners,alongsidecommunitytesting.For

generalweb-drivendatabasetasks,thedefaultMyISAMdatabaseengineworks

exceptionallyfine.Don’tworryoverthemostrecentandmostprominentelements

ofdatabases,asthegreaterpartofwhatyou’lllikelyneedhasalreadybeen

incorporatedinMySQLforquiteawhile.

Compatibility

Webprograms,forexample,Safari,Firefox,Netscape,andInternetExplorerare

madetoprocessHTML,soitdoesn’tmakeadifferencewhichoperatingsystemsa

Page 51: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

webserverkeepsrunningon.Apache,PHP,andMySQLbolsteranextensive

varietyofoperatingsystems(OS),soyouaren’tlimitedtoaparticularOSon

eithertheserverorthecustomer.Whileyoudon’tneedtostressmuchover

softwarecompatibility,thesheerassortmentoffileformatsaswellasdiverse

languagesthatallmeetupdoestakesomegettingusedto.

Page 52: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

4.4IntegratingManySourcesofInformation

InthebeginningoftheWeb,lifewaseasy.FilescontainedHTMLaswellasbinary

files,forexample,pictures.Afewadvanceshavesubsequentlybeencreatedto

improvethelookofwebpages.Forinstance,CascadingStyleSheets(CSS)pull

presentationdataoutofyourHTMLandintoasolitaryspotwiththegoalthatyou

canmakeformattingchangesoverawholearrangementofpagesatthesame

time;youdon’tneedtophysicallychangeyourHTMLmarkuponeHTMLpageat

once.

YoucanpossiblyhavedatafromHTMLdocumentsthatreferenceCSS,PHP

templates,andaMySQLdatabaseatthesametime.PHPtemplatesmakeit

simplertochangetheHTMLinapagewhenitcontainsfieldspopulatedbya

databasequery.

Justtogetanessenceofwhatyourcodewillresemble,itwillbegoodtolookatan

examplewhichcontainsPHPcodethatcreatesHTMLfromaMySQLdatabase,

andthatHTMLitselfalludestoaCSSstylesheet.

Theoutcomeisthatwhileyou’veaddedanotherdocumenttotheblend,you’ve

madetheHTMLmarkupsimplertoread,andthePHPcodeislessjumbledwith

incidentalHTML.Awebdesignerwho’snotgiftedinPHPcanadjustthelookof

thepagewithoutstressingoverbreakingthePHPcode.

Thelastkindofdataindicatedhere,CSS,additionallyoriginatesfroman

aspirationtoisolatethepresentationstyles,forexample,contentandcolorsfrom

theimportantcontent.

CascadingStyleSheets(CSS)supplementsHTMLtogivewebdesignersand

clientsmorecontroloverthewaytheirwebpagesshow.Designersandclientscan

makestylesheetsthatcharacterizehowdiversecomponents,forexample,headers

andlinks,showuponthewebwebsite.Thetermcascadinginfersfromthe

actualitythatnumerousstylesheetsatdistinctivelevelscanbeconnectedtothe

samewebpagewithdefinitionsacquiringfromoneleveltothenext.ToapplyCSS

code,theillustrationcodeindicatedisputinsidetheheaderofyourHTMLrecord.

<html>

<head>

Page 53: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

<title>CSSExample</title>

<styletype=”text/css”>

h4,b{color:#80D92F;textstylefamily:arial;}

p{contentindent:2cm;foundation:yellow;textstylefamily:courier;}

</style>

</head>

<body>

<h3>LearnhowtoutilizeCSSonyourwebsites!</h3>

<h4>It’scool,it’sstunning,itevensparesyoutime!</h4>

<p>Isn’tthis<b>nifty</b>?</p>

</body>

</html>

IntheCSS,youcaneitherdesignateacolorbynamingit,aswedidherewiththe

backdropdesignation,“background:yellow”,oryoucanappointitwithanumeric

colorcode,aswedidhere,“color#80D92F”.Thecodethatstartswithstyleisthe

CSScode.

InspiteofthefactthatweincorporatetheCSSintherecordinthissample,it

couldoriginatefromadifferentdocument,whereitcanbereferencedas

user_admin.css.

Allthingsconsidered,it’samatterofstyle.Wemakeuseofuppercaseinourweb

destinationssowecanseetheHTMLbetterandputacarriagereturnbetween

everymarkupline.Labelscommonlyhappeninstart-endsets.

Thesepairsareinthefollowingstructure:<tag>Isn’tthisnifty?</tag>

Theinitial<tag>showsthestartofalabelpair,andthelast</tag>demonstrates

theend.Thiscompletepairoflabelsiscalledanelement.Anysubstanceinsideof

anelementhastheprinciplesoftheelementconnectedtoit.Intheearliersample,

thetext“LearnhowtoutilizeCSSonyourwebsites!”iscontainedbyah3

component:<h3>LearnhowtoutilizeCSSonyourwebsites!</h3>

It’sadditionallygreatpractice(andit’sneededbyXHTML)thatyourlabelssettle

neatlytoproduceelementswithclearlimits.Continuouslyutilizeendtagswhen

Page 54: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

youachievetheendofanelement,andabstainfromhavingsetsoftagsthatcover.

(Ratherthan<b>bold<i>italic</i></b>,yououghttoclosethecodelikethis:

</b></i>.)Attheendoftheday,youshouldopenandclosethingsatthesame

level.Alongtheselines,ontheoffchancethatyouopenaboldandafterthatitalic,

yououghttoclosetheitalicbeforeyouclosethebold.

Page 55: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

4.5RequestingDatafromaWebPage

Itcanbeprecarioustoseehowthesepiecesincorporateeachother.Atthepoint

whenawebserveridentifiesPHPcode,itturnsoverthehandlingofthepageto

thePHPinterpreter.TheserverprocessesthePHPrecordandsendsthe

subsequentHTMLdocumenttotheserver.Ontheoffchancethattheresult

incorporatesanexternalCSSstylesheet,theprogramissuesadifferentrequestfor

thatstylesheetbeforeputtingthepageondisplay.

HandlingPHPontheserveriscalledserver-sideprocessing.Whenyouaskfora

webpage,youtriggeranentirechainofreactions.Figurerepresentsthis

associationbetweenyourPCandthewebserver,whichisthehostoftheweb

website.

Hereistheprocessofserver-sideprocessing:

1.Youenterawebpageaddressinyourbrowser’slocationbar.

2.Yourbrowserseparatesthataddressandsendsthenameofthepagetothe

web server. For instance, http://www.phone.com/directory.html would

requestthepagedirectory.htmlfromwww.phone.com.

3. A program on the web server, called the web server process, takes the

requestfordirectory.htmlandsearchesforthisparticularfile.

4.Thewebserverreadsthedirectory.htmlfromthewebserver’sharddrive.

5.Thewebservergivesbackthecontentofdirectory.htmltoyourbrowser.

6.YourwebprogramutilizestheHTMLmarkupthatwasreturnedfromthe

web server to construct the interpretation of the web page on your PC

screen.

TheHTMLfilenameddirectory.htmlisknownasastaticwebpageonthe

groundsthateverybodywhorequeststhedirectory.htmlpagegetspreciselythe

samepage.

Forthewebservertoalterthereturnedpage,PHPandMySQLareaddedtothe

blend.

Everystepinthatprocessisrecordedhere:

1.Youenterawebpageaddressinyourbrowser’slocationbar.

Page 56: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

2.Yourprogramseparatesthataddressandsendsthenameofthepagetothe

host. Case in point, http://www.phone.com/login.php requests the page

login.phpfromwww.phone.com.

3.Thewebserverprocessonthehostgetsthesolicitationforlogin.php.

4.Thewebserverreadsthelogin.phprecordfromthehost’sharddrive.

5. The web server recognizes that the PHP file isn’t only a plain HTML

document, so it inquires another procedure—the PHP interpreter—

processesthedocument.

6.ThePHPinterpreterexecutesthePHPcodethat it finds inthecontent it

got from the web server process. Included in that code are calls to the

MySQLdatabase.

7.PHPaskstheMySQLdatabaseprocesstoexecutethedatabasecalls.

8.TheMySQLdatabaseprocesssendsbacktheresultsofthedatabasequery.

9. The PHP translator finishes execution of the PHP code with the

informationfromthedatabaseandreturnstheoutcomestothewebserver

process.

10. The web server gives back the outcomes as HTML content to your

browser.

11. Your web browser utilizes the returnedHTML content to assemble the

webpageonyourscreen.

Thismayappearlikeaconsiderablemeasureofsteps,yetthemajorityofthis

processinghappensnaturallyeachtimeawebpagewithPHPcodeisrequested.

Indeed,thisproceduremayhappenafewtimesforasinglewebpage,sinceaweb

pagecancontainnumerousimagefilesaswellastheCSSdefinition,whichshould

allberecoveredfromthewebserver.

Whilstcreatingdynamicwebpages,youworkwithanassortmentofvariablesand

servercomponents,whichareessentialtohavinganalluring,maintainable,

simpleto-navigate,also,viablewebsite.

Inthenextchapter,wedemonstratetoyouinstallationproceduresandintroduce

anoteworthycogsrequiredtomakethisworki.e.PHP

Page 57: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

CHAPTER5:EXPLORINGPHPWithPHP,MySQL,andApacheintroduced,you’repreparedtostartwritingcode.

Dissimilartonumerouslanguages,PHPdoesn’tneedcomplexdevicessuchas

compilersanddebuggers.Actually,you’llsoonseethatyoucanenterPHPdirectly

intoyourcurrentHTMLdocs,andwithonlyacoupleofchanges,you’llbeoffand

running.

Inthischapter,we’llbeginbydemonstratingtoyouhowPHPhandlesbasictext,

andafterwardproceedtoessentialdecision-making.Sometrulycoolthingsyou

candoincludedrawingapicturebasedthecurrentclient’sbrowser,andprintinga

warningmessageiftheclientisworkingfromanoperatingsystemthatmakes

yourwebsitelookcrummy.ThisandmoreisconceivablewithPHP,whichmakes

thesetrapseasytonavigate.

5.1PHPandHTMLText

It’seasytooutputcontentusingPHP;actually,handlingcontentisoneofPHP’s

fortes.We’llstartwithdetailingwherePHPisprocessed,thentakealookata

percentageoftheessentialfunctionstooutputtext,andfromtheregodirectlyinto

printingthetextinviewofacertainconditionbeingvalid.

TextOutput

InyourendeavortolearnPHP,youwillneedtheabilitytoshowmessagesimply

andregularly.PHPgivesyouachancetodothat,howeveryou’llhavetoutilize

legitimatePHPsyntaxwhenmakingthecode.Orelse,yourbrowserwillassume

thateverythingisHTMLandproducesthePHPcodespecificallytothebrowser.

Everythingwilllooklikeacontentandcodemixup.Thiswillsurelybring

confusiontoclientsofyourwebsite!Youcanutilizewhichevertexteditoryoulike

tocomposeyourPHPcode,includingNotepadorDevPHP

(http://sourceforge.net/ventures/devphp/).

OurinstancesshowhowcomparativeHTMLmarkupandPHPcodelook,and

whatyoucandotobeginnoticingthecontrastsbetweenthem.

Page 58: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

5.1PHPandHTMLText

Inspiteofthefactthatmostcodelooksreallybasic,itreallywouldn’tfillinasitis,

sothereareafewproblems.There’snorealwaytotellinafilewhichpartis

standardHTMLaswellaswhichpartisPHP.Consequently,theecho()order

mustbehandledofinadifferentmanner.ThefixistoencompassyourPHPcode

with<?php?>labels.

WhenyoubegincomposingPHPcode,you’llbeworkingwitheasytextfilesthat

containPHPandHTMLcode.HTMLisabasicmarkuplanguagethatdesignates

howyourpagelooksinabrowser;however,itisjustthat:textonly.Theserver

doesn’thavetotransformHTMLdocumentsbeforesendingthemtotheclient’s

browser.ContrastingHTMLcode,PHPcodemustbedecipheredbeforethe

resultingpageissenttothebrowser.Ifnot,theoutcomewillbeonemajormess

ontheclient’sscreen.

ToseparatethePHPcodetoinformthewebserverwhatshouldbeprocessed,the

PHPcodeisputbetweenformalorcasualtagsblendedwithHTML.Theechoand

printdevelopsworkverypreciselythesame,withtheexceptionofechocantake

morethanoneargumentyetdoesn’treturnanybenefit,whileprinttakesone

argument.Wepickedhello.phpasthefilename;nonetheless,youcanpickany

nameyoulikegiventhatthelengthofthefilenamehastheaugmentation.php.

Thistellsthewebservertoprocessthisdocument’sPHPcode.

Page 59: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

5.2CodingBuildingBlocks

TocomposeprogramsinPHPthatdosomethinghelpful,you’llhavetoknow

blocksofreusablecodecalledmethodsorfunction,andalsohowtotemporarily

storedatathatcan’tbeexecutedinvariables.Wediscussevaluations,which

permityourcodetomakeastutechoicesinlightofmathematicalprinciplesand

userdata.

Variables

Sinceweexpectthatsomeofyouhaven’tdoneanyprogramming,wegetitthat

variablesmaybeanotheridea.Avariablestoresavalue,forexample,thetext

string“HiWorld!”ortheintegralvalue1.Avariablecanthenbereusedall

throughyourcode,ratherthanneedingtosortouttheintegralvalueagainand

againforthewholelifeofthevariable,whichcanbedisappointingandtiring.

Givecarefulconsiderationtosomekeyelementsthatareintheformofvariables.

Thedollarsign($)shouldatalltimefillthefirstspaceofyourvariable.Thefirst

characterafterthedollarsignmustbeeitheraletteroranunderscore.Itcan’t

underanycircumstancesbeanumber;generally,yourcodewon’texecute,so

watchthosegrammaticalmistakes!

•PHPvariablesmaybemadejustoutofalphanumericcharactersand

underscores;forinstance,a-z,A-Z,0-9,and_.

•VariablesinPHParecase-sensitive.Thisimpliesthat$variable_nameand

$Variable_Namearedifferent.

•Variableswithmorethanasinglewordcanbeisolatedwithunderscorestomake

themsimplertounderstand;forinstance,$test_variable.

•Variablescanbeassignedvaluesthatusetheequalsign(=).

•Alwaysendwithasemicolon(;)tofinishassigningthevariable.

Readingavariable’svalue

Togettothevalueofavariablethathaspreviouslybeenassigned,justspecifythe

dollarsign($)followedbythevariablename,andutilizeitasyouwouldthevalue

ofthevariableinyourcode.Youdon’tneedtoremoveyourvariableswhenyour

programfinishes.They’retemporarysincePHPnaturallytidiesthemupwhenyou

Page 60: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

finishusingthem.

• Variabletypes

Variablesallstorecertaintypesofinformation.PHPnaturallypicksadata

variabletakingintoaccountthevalueassigned.Theseinformationtypescomprise

ofstrings,numbers,andalsomorecomplexcomponentssuchasarrays.We’lltalk

aboutarrayslater.What’svitaltoknowisthatunlessyouhavemotivationtocare

aboutthetypeofdata.PHPhandlesallofthepointsofinterest,soyoudon’thave

tostressoverthem.Incircumstanceswhereaparticularsortofinformationis

needed,forexample,thenumericaldivisionoperation,PHPendeavorstoconvert

thedatatypesnaturally.Intheeventthatyouhaveastringwithasingle“2,”itwill

bechangedovertoawholenumberestimationof2.Thischangeisdependably

exactlywhatyouneedPHPtodo,anditmakescodingconsistentforyou.

• Variablescope

PHPhelpskeepyourcodesortedoutbyverifyingthatontheoffchancethatyou

usecodethatsomebodyelsecomposed(andyoulikelywill),thenamesofthe

variablesinyourcodedon’tclashwithotherbeforehandcomposedvariable

names.Forinstance,incaseyou’reutilizingavariablecalled$namethathasan

estimationofBill,andyouuseanotherperson’scodethatadditionallyhasa

variablecalled$namehoweverutilizesittostayinformedconcerningthefilename

log.txt,yourworthcouldgetoverwritten.Yourcode’svaluefor$nameofBillwill

besupplantedbylog.txt,andyourcodewillmakesayHellolog.txtratherthan

HelloBill,whichwouldbeamajorproblem.

Tokeepthisfromhappening,PHPsortsoutcodeintofunctions.Functionspermit

youtogatherapieceofcodetogetherandexecutethatcodebyitsname.Tokeep

variablesinyourcodeseparatefromvariablesinfunctions,PHPgivesseparate

storageofvariablesinsideofeveryfunction.Thisdifferentstorageroomimplies

thatthescope,orwhereavariable’svaluecabbeadmitted,isthenearbythelocal

storageofthevalue.

• Globalvariables

Globalvariablespermityoutocrossthelimitbetweendiscretecapacitiestogetto

avariable’sworth.Theworldwideproclamationindicatesthatyouneedthe

variabletobethesamevariableeverywherethatitisregardedasglobal.

Globalvariablesoughttobeutilizedsparinglyonthegroundsthatit’ssimpleto

Page 61: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

unintentionallyadjustavariablewithoutacknowledgingwhattheresultsare.This

sortoferrorcanbeextremelyhardtofind.Also,whenweexaminefunctionsin

detail,you’lldiscoverthatyoucansendinvaluestofunctionswhenyoucallthem

andgetvaluesreturnedfromthemwhenthey’redone.Youdon’tneedtouse

globalvariables.

Ontheoffchancethatyouneedtouseavariableinaparticularfunctionwithout

losingthewortheverytimethefunctionends,howeveryouwouldprefernotto

useaglobalvariable,butratheruseastaticvariable.

• Staticvariables

Staticvariablesgiveavariablethatisn’tdecimatedwhenafunctionends.Youcan

utilizethestaticvariablevalueagainwheneveryoucallthecapacityanditwill

havethesamevalueaswhenitwaslastutilizedasapartofthefunction.The

easiestapproachtoconsiderthisistothinkaboutthevariableasglobalyetopen

tosimplythatfunction.Theestimationof$ageiscurrentlyheldeverytimethe

birthdayfunctioniscalled.Theworthwillstayarounduntiltheprogramends.

Valueissparedonthegroundsthatit’sannouncedasstatic.Inthisway,we’ve

talkedabouttwotypesofvariables,yetthere’sstillonemoretoexamine,super

globals.

• Superglobalvariables

Superglobalvariables,PHPusesuncommonvariablescalledsuperglobalstogive

dataaboutthePHPscript’ssurroundings.Thesevariablesdon’trequireany

announcementasglobal.Theyarehabituallyaccessible,andtheygiveimperative

datapastthescript’scodeitself,forexample,valuesfromauser’sinput.

SincePHP4.01,thesuperglobalsaretermedasarrays.Arraysareunique

accumulationsofvaluesthatwe’lltalkaboutinlaterchapters.Themore

establishedsuperglobalvariablessuchasthosebeginningwith$HTTP_*that

werenotinclustersstillexist,butrathertheiruseisdefinitelynotrecommended,

astheyaredeprecated.

Page 62: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

CHAPTER6:PHPDECISION-MAKINGInthelastpartyoubeganlearningprogrammingwithPHPandsomecodebasics.

Presently,it’schancetogrowyourcomfort,learning,andknowledgeofPHP.We’ll

beginwithexpressionsandstatatents.

Page 63: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

6.1Expressions

Thereareafewbuildingblocksofcodingthatyouhavetocomprehend:

explanations,expressions,andoperators.Astatementiscodethatperformstasks.

Statementsarecomprisedofexpressionsandoperators.Anexpressionisabitof

codethatassessestoavalue.Aworthcanbeanumber,astringofcontent,ora

Boolean.

Anoperatorisacodecomponentthatfollowsuponanexpressionsomehow.For

example,aminussign(–)canbeusedtotellthePCtodecrementthevalueofthe

expressionafteritfromtheexpressionbeforeit.Caseinpoint:

$account_balance=$credits-$debits;

Themostessentialthingtoseeaboutexpressionsisthewaytoconsolidatethem

intocompoundexpressionsandproclamationsutilizingoperators.Inthisway,

we’regoingtolookatoperatorsusedtotransformexpressionsintomoremind

bogglingexpressionsandstatements.

Theeasiesttypeofexpressionisliteraloravariable.Anliteralassessestoitself.

Afewexamplesofliteralsarenumbers,strings,andconstants.Avariableassesses

totheworthallocatedtoit.

Despitethefactthataliteralorvariablemaybealegitimateexpression,theydon’t

doanything.Yougetexpressionstodothings,forexample,mathortaskby

connectingthemtogetherwithoperators.Anoperatorjoinsbasicexpressionsinto

moreintricateexpressionsbymakingconnectionsbetweenbasicexpressionsthat

canbeassessed.Forexample,iftheconnectionyouneedtosetupisthetotal

joiningoftwonumericqualitiestogether,youcouldcompose3+4.Thenumbers

3and4areeachsubstantialexpressions.Including3+4islikewisealegitimate

expression,whosevalue,forthissituation,happenstobe7.Theplussign(+)isan

operator.Thenumberstoeithersideofitareitsarguments,oroperands.

Argumentsoroperandissomethingonwhichanoperatortakesaction;for

instance,anargumentoroperandcouldbeamandatefromyourhousemateto

dischargethedishwasher,andtheadministratordischargesthedishwasher.

Distinctiveoperatorshavediversetypesandnumbersofoperands.Administrators

canlikewisebeover-burdened,whichimpliesthattheydodistinctivethingsin

distinctivecontexts.

Page 64: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

You’vepresumablyspeculatedfromthisdatathattwoormoreexpressions

associatedbyoperatorsarecalledanexpression.You’reright,asoperatorsmake

complexexpressions.Themoresub-expressionsandoperatorsyouhave,themore

drawnoutandmoremindbogglingtheexpression.Inanycase,thelengthofit

canbeassignedtoavalue,it’sstillanexpression.

Atthepointwhenexpressionsandoperatorsareamassedtodeliverabitofcode

thatreallydoessomething,youhaveastatement.

Theoperatorsarerecordedasfoundon

http://www.php.net/manual/en/language.operators.php.Thereareafew

operatorswe’regoingtotalkaboutsoyoucangetupandrunningwithPHPasfast

ascouldpossible.Theseincorporateapercentageofthethrowingadministrators

thatwe’lljustskimthesurfaceofforthetimebeing.Everyoperatorhasfourbasic

propertiesinadditiontoitsmainfunctionality:

• Operatorassociativity

• Numberofoperands

• Orderofprecedence

• Typesofoperands

Theretrulyisn’tagreatdealmoretoseeaboutexpressionswiththeexceptionof

howtoamassthemintocompoundexpressionsandarticulationsusingoperators.

Next,we’regoingtotalkaboutoperatorsthatareutilizedtotransformexpressions

intomoreintricateexpressionsandstatements.

Page 65: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

6.2OperatorConcepts

PHPhasnumeroussortsofadministrators/operators,including:

•Arithmeticadministrators

•Arrayadministrators

•Assignmentadministrators

•Bitwiseadministrators

•Comparisonadministrators

•Executionadministrators

•Incrementing/decrementingadministrators

•Logicaladministrators

•Stringadministrators

Theoperatorsarerecordedasfoundon

http://www.php.net/manual/en/language.operators.php.Thereareafew

operatorswe’regoingtotalkaboutsoyoucangetupandrunningwithPHPasfast

ascouldpossible.Theseincorporateapercentageofthethrowingadministrators

thatwe’lljustskimthesurfaceofforthetimebeing.Everyoperatorhasfourbasic

propertiesinadditiontoitsmainfunctionality:

• Operatorassociativity

• Numberofoperands

• Orderofprecedence

• Typesofoperands

Theeasiestoptiontobeginisbydiscussingtheoperands.

1.NumberofOperands

Diverseoperandstakedistinctivequantitiesofoperands.Numerousoperatorsare

utilizedtojointwoexpressionsintoamoreintricatesingleexpression;theseare

calledbinaryoperators.Paralleloperatorsincorporatemultiplication,

subtraction,addition,anddivision.

Someoperatorstakeoneoperand;thesearecalledunaryoperators.Considerthe

Page 66: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

negativeadministrator(-)thatmultipliesanumericvalueby–1.The

preincrementwhat’smore,predecrementadministratorsdepictedinChapter3

areadditionallyunaryadministrators.

Aternaryoperatortakesthreeoperands.Theshorthandforanifstatement,

whichwe’lldiscusslaterwhenexaminingconditionals,takesthreeoperands.

2.TypesofOperands

Youshouldbeawareofthekindofoperandonwhichanadministratorisintended

toworkinlightofthefactthatcertainadministratorsanticipatethattheir

operandswillbeofspecificdatatypes.

PHPendeavorstomakeyourlifeassimpleascouldbeexpectedunderthe

circumstancesviaconsequentlychangingoveroperandstothedatatypethatan

administratorisanticipating.Therearetimes,nonetheless,thatanautomatic

conversionisn’tconceivable.

Mathematicaladministratorsareacaseofwhereyoushouldbewatchfulwithyour

types.Theytakejustnumbersasoperands.Forinstance,whenyouattemptto

multiplytwostrings,PHPcanchangeoverthestringstonumbers.While“Becker”

*“Furniture”isnotavalidexpression,itreturnszero.Thenagain,anexpression

thatischangedoverwithoutaslipis“70”*“80”.Thisleadsto5600.Though70

and80arestrings,PHPhasthecapacitychangethemtothenumbertypeneeded

bythemathematicaloperator.Therewillbetimeswhenyouneedtoexpresslyset

orconvertavariable’stype.

TherearetwoapproachestodothisinPHP:tobeginwith,byutilizingsettypeto

reallychangethedatatype;orsecond,bycasting,whichincidentallychangesover

thevalue.PHPusescastingstochangeoverdatatypes.AtthepointwhenPHP

doesthecastingforyouautomatically,it’scalledimplicitcasting.Youcanlikewise

indicatedatatypesunequivocally,yetit’snotsomethingthatyou’lllikelyneedto

do.

Thecasttypespermittedare:

(int),(integer)

Casttointeger,entirenumberswithoutadecimalpart.

(bool),(boolean)

CasttoBoolean.

Page 67: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

(float),(twofold),(genuine)

Casttofloat,numbersthatmayincludeadecimalpart.

(string)

Casttostring.

(array)

Casttoarray.

(object)

Casttoobject.

Toutilizeacast,placeitbeforethevariabletocast,asevidentinexample6.2,the

$test_stringvariablehasthestring1234

Sample6.2.Throwingavariable

$test=1234;

$test_string=(string)$test;

Rememberthatitmaynotbeevidentwhatwillhappenwhencastingbetween

specifictypes.Youmaykeeprunningintodifficultiesontheoffchancethatyou

don’twatchyourselfatthepointwhencontrollingvariabletypes.

Somebinaryoperators,forexample,theassignmentoperators,havefurther

confinementsonthelefthandoperand.Sincetheassignmentoperatoris

allocatingaqualitytothelefthandoperator,itmustbesomethingthatcantakea

value,forexample,avariable.

Sample6.3.Lefthandexpressions

3=$locations;/awful-aqualitycan’tbedoledouttotheexacting3

$a+$b=$c;/awful-theexpressionontheleftisn’tonevariable

$c=$a+$b;/OK

$stores=“Becker”.”“.”Furniture”;/OK

Thereisalessdifficultapproachtorecallthis.Thelefthandexpressionin

assignmentoperationsisknownasanL-value.L-valuesinPHParevariables,

componentsofanarray,andobjectproperties.

OrderofPreference

Page 68: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

TheOrderofPreferenceofanadministratorfiguresoutwhichoperatorprocesses

firstinanexpression.Forexample,themultiplicationanddivisionprocessbefore

additionaswellassubtraction.Youcanseeasimplifiedtableat

http://www.zend.com/manual/language.operators.php#language.operators.precedence

Ontheoffchancethattheadministratorshavethesamepriority,theyarehandled

intherequesttheyshowupintheexpression.Forinstance,multiplicationand

divisionprepareintherequestinwhichtheyshowupinanexpressioninlightof

thefactthattheyhavethesamepriority.Administratorswiththesamepriority

canhappeninanyrequestwithoutinfluencingtheresult.

Mostexpressionsdon’thavemorethanoneadministratorofthesamepriority

level,ontheotherhandtherequestinwhichtheyprocessdoesn’tchangethe

outcome.AsindicatedinSimple6.4,whenaddingandsubtractingthe

accompanyingsuccessionofnumbers,itdoesn’tmakeadifferencewhetheryou

addorsubtractfirst—theoutcomeisstill1.

PHPhasafewlevelsofpriority,enoughthatit’shardtostayinformedconcerning

themwithoutcheckingareference.Table4-2isarundownofPHPadministrators

sortedbyrequestofpriorityfrommostnoteworthytoleast.Administratorswith

thesamelevelnumberareallofthesamepriority.

Sample6.4.OrderofPreference

2+4-5==1;

4-5+2==1;

4*5/2==10;

5/2*4==10;

2+4-5==1;

4-5+2==1;

Whenusingexpressionsthatcontainadministratorsofdiverseprioritylevels,the

ordercanchangethevalueoftheexpression.Youcanutilizeparentheses,(and),

tooverridetheprioritylevelsorjusttomaketheexpressioneasiertoread.

Illustration6.5demonstratestochangethedefaultpriority.

Illustration6.5.Changingthedefaultpriorityusingparenthesis

echo2*3+4+1;

Page 69: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

echo2*(3+4+1);

Theresultis:

11

16

Inthesecondexpression,themultiplicationisdonelastduetotheparenthesis

overridingthedefaultpriority.

PHPhasafewlevelsofpriority,enoughthatit’shardtokeeptrackwithout

checkingareference.

Associativity

Alloperators/administratorsprocesshandletheiradministratorsinacertain

direction.Thisdirectioniscalledassociativity,anditreliesonuponthetypeof

administrator.Mostadministratorsareprocessedfromlefttoright,whichis

calledleftassociativity.E.g.intheexpression3+5–2,3and5areincluded,and

afterward2issubtractedfromtheresult,resulting8.Whileleftassociativity

impliesthattheexpressionisassessedfromlefttoright,rightassociativityimplies

theopposite.

Sincetheassignmentoperator/administratorhasrightassociativity,itisoneof

theexemptionssincerightassociativityislesscommon.Theexpression$a=$b=$c

formsby$bbeingassignedtheestimationof$c,andafterward$abeingassigned

thevalueof$b.Thisassignsasimilarvaluetothemajorityofthevariables.Ifthe

assignmentadministratorisrightassociative,thevariablesmaynothavethesame

value.

Incaseyoubelievethatthisisunfathomablycomplicated,don’tworry.These

principlesareimplementedonlyincasethatyoufailtobeclearonyour

instructions.Rememberthatyoushouldalwaysusebracketsinyourexpressions

tomakeyourrealmeaningclearer.ThishelpsbothPHPandotherindividuals

whomaywanttoreadyourcode.

Intheeventthatyouinadvertentlyutilize&ratherthan&&,or|ratherthan||,

you’llwindupmisunderstandingtheoperator.&and|lookattwofoldinformation

alittlebitatatime.

PHPwillchangeoveryouroperandsintobinaryandapplybinary

operators/administrators.

Page 70: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

RelationalOperators

InChapter3welookatassignmentandmathoperators.Relationoperatorsgive

thecapacitytolookattwooperandsandreturneitherTRUEorFALSEwith

respecttotheexamination.AnexpressionthatevaluatesjustTRUEorFALSEis

knownasaBooleanexpression,whichwetalkedaboutinthepastsection.These

examinationsincorporatetestsforequalityandlessthanorgreaterthan.These

comparisonoperatorspermityoutotellPHPwhentodosomethinginviewof

whetheracomparisonisgenuinesothatchoicescanbemadeinyourcode.

Equality

Theequalityoperator/administrators,adoubleequalssign(==),isutilizedas

oftenaspossible.Utilizingthesingleequalssign(=)initsplaceisatypical

mistakeinprograms,sinceitallotsvaluesratherthantestingequality.

Intheeventthatthetwooperandsareequal,TRUEisreturned;otherwise,FALSE

isreturned.Incaseyou’reechoingyouroutcomes,TRUEisprintedas1inyour

browser.FALSEis0andwon’tshowinyourbrowser.

It’saneasybuildalthoughitpermitsyoutotestforconditions.Ontheoffchance

thattheoperandsareofdistinctivesorts,PHPendeavorstoconvertthempriorto

thecomparison.

Forinstance,“1”==1isvalid.Additionally,$a==1isvalidifthevariable$ais

allocatedto1.

Incaseyoudon’tneedtheequalityadministratortoautomaticallyconverttypes,

youcanutilizetheidentityoperator,atripleequalssign(===),whichchecks

whethertheresultsandtypesarethesame.Forinstance,“1”===1isfalsesince

they’redifferenttypes,becauseastringisnotequaltoaninteger.

Infrequentlyyoumayneedtoverifywhethertwothingsaredistinctive.The

inequalityoperator,anexclamationmarkbeforetheequivalentssign(!=),checks

fortheoppositeofequality,whichimpliesthatitisnotequivalenttoanything;for

thatreason,it’sFALSE.

“1”!=“A”/validortrue

“1”!=“1”/false

√ Comparisonadministrators/operators

Page 71: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

Youmayneedtocheckformorethanjustequality.Comparisonadministrators

testtherelationshipbetweentwovalues.Youmaybeacquaintedwiththesefrom

secondaryschoolmath.Theyincorporatelessthan(<),less-thanorequalto(<=),

greaterthan(>),andgreater-thanorequalto(>=).

Forinstance,3<4isTRUE,while3<3isFALSE,and3<=3isTRUE.

Comparisonadministratorsareregularlyusedtocheckforsomethingincidentup

untilasetpoint.E.g.anonlinestoremayofferfreedeliveringincaseyoubuyfive

ormorecommodities.Therefore,thecodemustcomparethequantityof

commoditieswiththenumberfivebeforechangingtheshippingcost.

Logicaladministrators/operators

LogicaladministratorsworkwiththeBooleanoutcomesoflogicaladministrators

toconstructmorecomplexlogicalexpressions;therearefourlogical

administratorswhichareadditionallyBooleanadministrators.

Totestwhetherbothoperandsaregenuine,usetheANDadministrator,also

writtentoasthedoubleampersands(&&).BoththetwofoldampersandandAND

arelogicaladministrators;themaindistinctionisthatthedoubleampersandis

assessedbeforetheANDadministrator.Theadministrators||aswellasORfollow

thesameprinciple.TRUEisreturnedifbothoperandsareTRUE;generally,

FALSEisreturned.

TotestwhetheroneoperandisTRUE,usetheORadministrator,whichisaswell

writtenasdoubleverticalbarsorpipes(||).Genuineisreturnedjustifeitheror

bothoperandsareTRUE.

UtilizingtheORadministratorcanbringabouttrickyprogramlogicissues.Incase

PHPfindsthatthefirstoperandisTRUE,itwon’tassessthesecondoperand.

Whilethissparesexecutiontime,youshouldbecautiousthatthesecond

administratordoesn’tcontaincodethatshouldbeexecutedforyourprogramto

workapprpriately.

TotestwhetheronlyoneoperandisTRUE,utilizeXOR.XORreturnsTRUEifone

andoneoperandisTRUE.ItreturnsFALSEifbothoperandsareTRUE.

ToinvalidateaBooleanquality,usetheNOTadministrator,writtenasan

exclamationmark(!).ItreturnsTRUEiftheoperandhasanvalueofFALSE.It

returnsFALSEiftheoperandisTRUE.

Page 72: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

Conditionals

Conditionals,likevariables,formabuildingblockinourestablishmentofPHP

development.

Theychangeascript’sprocessasindicatedbythecriteriasetinthecode.There

arethreeessentialconditionalsinPHP:

•if

•?:(shorthandforanifarticulation)

•switch

Theswitchstatementishelpfulwhenyouhavevariousthingsyouneedtodoand

needtotakediverseactivitiesbasedonthecontentsofavariable.Theswitch

statementisexaminedinmoredetaillaterinthissection.

TheifStatement

Theifstatementofferstheabilitytoexecuteapieceofcodeifthesupplied

conditionisTRUE;generally,thecodeblockdoesn’texecute.Theconditioncanbe

anyexpression,includingtestsfornonzero,equality,null,variables,andreturned

qualitiesfromcapacities.

Regardless,eachandeveryconditionalyoumakeincorporatesarestrictiveclause.

IntheeventthataconditionisTRUE,thecodeblockincurlybraces({})is

executed.Ifnot,PHPoverlooksitandmovestothesecondcondition,proceeding

throughallprovisionscomposeduntilPHPhitsanelse.Atthatpoint,it

consequentlyexecutesthatblockjustiftheIFconditionturnsouttobeFALSE;

else,itproceedsonward.Thecurlybracesarenotrequiredifyouhaveonelineof

codetoexecuteintheblock.Anelseexplanationismostcertainlynot

continuouslyneeded.

Theelseblockdependablyneedstocomelastandbedealtwithasthoughit’sthe

defaultactivity.Thisislikethesemicolon(;).Regulartrueconditionsare:

•$var,if$varhasaqualityotherthantheemptyset(0),anemptystring,orNULL

•isset($var),if$varhasanyqualityotherthanNULL,includingtheemptysetor

anemptystring

•TRUEoranyvariationthereof

Wehaven’tdiscussedaboutthesecondbulletpoint.isset()isafunctionthat

Page 73: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

checkswhetheravariableisset.AsetvariablehasavalueotherthanNULL.

Thesyntaxfortheifstatementis:

if(conditionalexpression){

pieceofcode;

}

IftheexpressionintheconditionalblockassessestoTRUE,theblockofcodethat

tailsitexecutes.Inthiscase,ifthevariable$usernameissetto‘Administrator’,a

welcomemessageisprinted.Ifnot,nothinghappens.

if($username==“Administrator”){

echo(‘Welcometotheadministratorpage.’);

}

Thecurlybracesaren’trequiredifyouneedtoexecutestandoutstatement,yetit’s

greatpracticetodependablyutilizethem,asitmakesthecodesimplertoreadand

harderertochange.

Theelsestatement

Theoptionalelsestatementgivesadefaultpieceofcodethatexecutesifthe

conditionreturnedisFALSE.elsecan’tbeutilizedwithoutanifstatement,asit

doesn’ttakeaconditionalitself.Therefore,elseandifneedtoalwaysbetogether

inyourcode.

Remembertofinishoffthecodeblockfromtheifconditionalwhenyou’veused

propstobeginyourpieceofcode.Liketheifblock,theelseblockoughttoaswell

usecurvybracestostartandendthecode.

Theelseifstatement

Mostoftheaboveisincrediblewiththeexceptionofwhenyouneedtotestfora

fewconditionsatthesametime.

Todothis,youcanutilizetheelseifstatement.Ittakesintoaccounttestingof

extraconditionsuntiloneisdiscoveredtobetrueoruntilyouhittheelseblock.

Eachelseifhasitsowncodehinderthatcomesspecificallyaftertheelseif

condition.Theelseifmustcomeaftertheifstatementandbeforeanelsestatement

ifoneexists.

Page 74: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

Case6.7.Checkingvariousconditions

if($username==“Admin”){

echo(‘Welcometotheadministratorpage.’);

}

elseif($username==“Guest”){

echo(‘Pleaseinvestigatearound.’);

}

else{

echo(“Welcomeback,$username.”);

}

Hereyoucancheckfortwoconditionsandtakedifferentactivitiesinlightofeach

ofthequalitiesfor$username.Atthatpointyouadditionallyhavethealternative

todosomethingelseifthe$usernameisn’toneoftheinitialtwo.

Thenextconstructdevelopsontheideasoftheif/elsestatement,yetitpermits

youtoeffectivelychecktheresultsofanexpressiontonumerousqualitieswithout

havingadifferentif/elseforeveryvalue.

The?Operator

The?operatorisaternaryoperator,whichimpliesittakesthreeoperands.It

meetsexpectationslikeanifstatementhowevergivesbackavaluefromoneofthe

twoexpressions.Theconditionalexpressiondecidesthevalueoftheexpression.A

colon(:)isutilizedtoseparatetheexpressions,asindicatedhere:

{expression}?return_when_expression_true:return_when_expression_false;

Case4.8.Utilizingthe?operatortomakeamessage

<?php

$logged_in=TRUE;

$user=“Administrator”;

$banner=($logged_in==TRUE)?”Welcomeback,$user!”:”Pleaselogin.”;

echo“$banner”;

Page 75: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

?>

Theaboveexample4.8produces

Welcomeback,Admin!

Thiscanbereallyhelpfulforcheckingforerrors.However,weshouldtakea

ganderatastatementthatletsyoucheckanexpressionagainstalistofpossible

valuestopicktheexecutablecode.

TheswitchStatement

Theswitchstatementcomparesanexpressionwithvariousvalues.It’sreally

commontohaveanexpressionsuchasavariable,forwhichyou’llneedtoexecute

differentcodeforeveryvaluestoredinthevariable.Caseinpoint,youmayhavea

variablecalled$action,whichmayhavethevaluesadd,modify,anddelete.The

switchstatementmakesitsimpletocharacterizeasquareofcodetoexecutein

lightofeachofthosevalues.Toshowthedifferencebetweenusingtheifstatement

andtheswitchstatementtotestavariableforafewqualities,we’llrevealtoyou

thecodefortheifstatement(inillustration6.9)andhatfortheswitchstatement

(inexample6.10)

Illustration6.9.Utilizingiftotestforvariousqualities

if($action==“Include”){

echo“Performactivitiesforincluding.”;

echo“Thegreatestnumberofstatementsasyoulikecanbeineverysquare.”;

}

elseif($action==“MODIFY”){

echo“Performactivitiesformodifying.”;

}

elseif($action==“Erase”){

echo“Performactivitiesforerasing.”;

}

Case6.10.Utilizingswitchtotestforvariousqualities

switch($action){

Page 76: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

case“Include”:

echo“Performactivitiesforincluding.”;

echo“Thegreatestnumberofstatementsasyoulikecanbeineverypiece.”;

break;

case“MODIFY”:

echo“Performactivitiesformodifying.”;

break;

case“Erase”:

echo“Performactivitiesforerasing.”;

break;

}

Theswitchstatementlivesuptoexpectationsbytakingthevalueaftertheswitch

keywordandcomparingittothecasesintheorderinwhichtheyarearranged.If

nocasematches,thecodeisn’texecuted.Whenacasematches,thecodeis

executed.Thecodeinconsequentcasesadditionallyexecutesuntiltheendofthe

switchstatementoruntilabreakkeyword.Thisishelpfulforproceduresthathave

chronologicalsteps.Iftheclienthaddoneseveralsteps,hecanresumetheprocess

whereheleftoff.

Theexpressionaftertheswitchstatementmustassesstoasimpletypee.g.an

integer,astringoranumber.Anarraycanbeutilizedjustifaspecificindividual

fromtheclusterisreferencedasasimpletype.

TherearevariousapproachestodirectPHPnottoexecutecasesotherthanthe

matchingcase.

Page 77: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

6.3BreakingOut

Ifyouneedjustthecodeinthematchingblocktoexecute,placeabreakkeyword

attheendofthatblock.AtthepointwhenPHPgoesoverthebreakpivotalword,

processingjumpstothefollowinglineafterthewholeswitchstatement.Case6.11

outlineshowprocessingworkstoexpectationswithnobreakstatements.

Case6.11.Whathappenswhentherearenobreakkeywords

$action=“ASSEMBLEORDER”;

switch($action){

case“ASSEMBLEORDER”:

echo“Performactivitiesfororderassembly.<br/>”;

case“PACKAGE”:

echo“Performactivitiesforpacking.<br/>”;

case“SHIP”:

echo“Performactivitiesforshipping.<br/>”;

}

Ifthevalueof$actionis“ASSEMBLEORDER”,theoutcomeis:

Performactivitiesfororderassembly.

Performactivitiesforpacking.

Performactivitiesforshipping.

Ontheotherhand,ifaclienthasassembledanorder,anestimationof

“PACKAGE”producesthese:

Performactivitiesforpackaging.

Performactivitiesforshipping.

Defaulting

TheSWITCHstatementlikewisegivesanapproachtodosomethingifnoneof

alternativecasesmatch,whichisthesameastheelsestatementinanif,elseif,or

elseblock.

UsetheDEFAULT:statementfortheSWITCH’slastcasestatement(seeExample

Page 78: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

4-12).

Example4-12.UsingtheDEFAULT:statementtoproduceaerror

switch($action){

case“ADD”:

echo“Performactivitiesforaddding.”;

break;

case“MODIFY”:

echo“Performactivitiesformodifying.”;

break;

case“DELETE”:

echo“Performactivitiesfordeleting.”;

break;

default:

echo“Slip:ActionmustbeeitherADD,MODIFY,orDELETE.”;

}

Theswitchstatementadditionallybolstersthealternatesyntaxinwhichthe

switchandendswitchessentialwordscharacterizethebeginningandendofthe

switchratherthanthecurlybraces{},asindicatedinExample6.13.

Example6.13.Utilizingendswitchtoendtheswitchdefinition

switch($action):

case“ADD”:

echo“Performactionsforadding.”;

break;

case“MODIFY”:

echo“Performactionsformodifying.”;

break;

case“DELETE”:

Page 79: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

echo“Performactionsfordeleting.”;

break;

default:

echo“Error:ActionmustbeeitherADD,MODIFY,orDELETE.”;

endswitch;

You’vediscoveredthatyoucanhaveyourprogramsexecutedifferentcodesubject

toconditionscalledexpressions.Theswitchstatementgivesasuitableformatto

checkingthevalueofanexpressionagainstvariouspossiblevalues.

Page 80: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

6.4Looping

Sinceyou’vechangedthestreamofyourPHPprogrambasedonexaminations,

youneedtorealizethatifyouneedtorehashanassignmentuntilanexamination

isFALSE,you’llneedtouseLOOPING.Everytimethecodeloopexecutes,itis

callediteration.Thisisvaluableforsomebasicerrandse.g.showingtheoutcomes

ofaquerybyloopngthroughthereturnedcolumns.PHPgivesthewhile,for,and

do…whiledevelopstoperformloops.

Eachoftheloopdevelopmentsneedstwofundamentalbitsofdata.Tobeginwith,

theconditiontostoploopingischaracterizedsimplylikethecomparisoninanif

statement.Second,thecodetoperformlikewiseobligedandspecifiedeitherona

singlelineorinsidecurlybraces.Alogicalmistakewouldbetoexcludethecode

fromaloopthatdependsonthecodeexecutedtobringaboutthecircletoquit,

creatinganinfiniteloop.

You’vediscoveredthatyoucanhaveyourprojectsexecutedifferentcodeinlightof

conditionscalledexpressions.Theswitchstatementgivesanadvantageous

arrangementtocheckingtheestimationofanexpressionagainstvarious

conceivablequalities.

ThecodeisexecutedthelengthoftheexpressionassessestoTRUE.Tododgean

infiniteloop,whichwouldloopeternally,yourcodeoughttohavetheexpressions

intheendbecomeFALSE.Whensuchasituationhappens,theloopstopsand

executionproceedstothenextlineofcode,takingafterthelogicalloop.

whileLoops

Thewhilelooptakestheexpressionfollowedbythecodetoexecute.

Thesyntaxforsomeawhileloopis:

while(expression)

{

codetoexecute;

}

AsampleisdemonstratedinExample6.14.

Sample4-14.Anexamplewhilecirclethatchecksto10

Page 81: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

<?php

$num=1;

while($num<=10){

print“Numberis$num<br/>”;

$num++;

}

print‘Done.’;

?>

Sample4-14producesthese:

Numberis1

Numberis2

Numberis3

Numberis4

Numberis5

Numberis6

Numberis7

Numberis8

Numberis9

Numberis10

Done.

Priortothecirclestarts,thevariable$numissetto1.Thisiscalledinstatinga

countervariable.Everytimethecodesquareexecutes,itexpandstheworthin

$numby1withthestatement$num++;.After10iterations,theassessment$num

<=10getstobeFALSE,thentheloopstopsanditprintsDone.Rememberto

expandthe$numvar,asthewhileloopreliesonuponit.Becautioussoasnotto

makeaninfiniteloop.Ithastheundesirableimpactofnotgivingbackyourpage

andtakingatonofprocessingtimeonthewebserver.

do…whileLoops

Page 82: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

Thedo…whilelooptakesanexpressionsuchasawhilestatementthoughitputs

itattheend.Thesyntaxis:

do{

codetoexecute;

}while(expression);

Thiscircleishelpfulwhenyouneedtoexecuteapieceofcodeatanyrateonce

despiteoftheexpressionvalue.E.g.let’scheckto10withthisloop,asindicatedin

Illustration6.15.

Illustration6.15.Numberingto10withdo…while

<?php

$num=1;

do{

echo“Numberis“.$num.”<br/>”;

$num++;

}while($num<=10);

echo“Done.”;

?>

Case6.15createsthesameresultsasExample6.14;ifyouchangetheestimationof

$numto11,theloopformsdifferently:

<?php

$num=11;

do{

echo$num;

$num++;

}while($num<=10);

?>

Thisproduces:

Page 83: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

11

Thecodeontheloopdisplays11giventhattheloopdependablyexecutesatleast

once.Takingafterthepass,whileevaluatestoFALSE,makingexecutiontodrop

outofthedo…whileloop.

forLoops

forloopsgivethesamegeneralfunctionalityaswhileloopsthoughtheyrequirea

predefinedareaforintroducingandchangingacountervalue.

Theirsyntaxis:for(iniitializationexpression;conditionexpression;modification

expression){codethatisexecuted;

}

Anexampleforloopis:

<?php

for($num=1;$num<=10;$num++){

print“Numberis$num<br/>\n”;

}

?>

Thisproduces:

Numberis1

Numberis2

Numberis3

Numberis4

Numberis5

Numberis6

Numberis7

Numberis8

Numberis9

Numberis10

AtthepointwhenyourPHPprogramprocesstheforloop,theinitialization

Page 84: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

segmentisassessed.

Foreveryiterationofthepartofcodethatincrements,thecounterexecutes

furthermore,istrailedbyachecktoverifywhetheryou’refinished.Theoutcomeis

anamoreconservativeandeasy-to-readstatement.

Atthepointwhenspecifyingyou’reforloop,ifyouwouldprefernottoincorporate

oneoftheexpressionssuchastheintroductionexpression,youmayprecludeit,

yetyoumustincorporatetheisolatingsemicolons(;).Sample4-16demonstrates

theuseofaforloopwithouttheinitializationexpression.

BreakingOutofaLoop

PHPgivessomethingsimilartoanemergencystopbuttonforaloop:thebreak

statement.

Ordinarily,themainwayoutofaloopistofulfilltheexpressionthatdecidesatthe

pointwhentostoptheloop.Ifthecodeontheloopfindsanerrorthatmakes

proceedingwiththecirclepointlessorunimaginable,youcanbreakoutoftheloop

onbyusingthebreakstatement.It’ssimilartogettingyourshoelacestuckinan

escalator.Ittrulydoesn’tbodewellforthelifttocontinuemoving!However,those

oldonesdid!

Conceivableissuesyoumayexperienceinaloopconsistofcomingupshorton

spacewhenyou’rewritingadocumentoraimingtodividebyzero.InExample

6.16,wereenactwhatcanhappenifyoudividebasedanobscureentryinstated

fromsubmissionofaform(thatcouldbeaclientsuppliedvalue).Ifyourclientis

malignantorjustplaincareless,shemayenteranegativevaluewhereyou’re

expectingapositivevalue(inspiteofthefactthatthisoughttobegotteninyour

formvalidationprocess).Inthecodethatisexecutedasafractionoftheloop,the

codecheckstoverifythe$counterisnotequivalenttozero.Ifitis,thecodecalls

break.

Sample6.16.Usingbreaktoevadedivisionbyzero

<?php

$counter=-3;

for(;$counter<10;$counter++){

/Checkfordivisionbyzero

Page 85: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

if($counter==0){

echo“Stoppingtoavoiddivisionbyzero.”;

break;

}

echo“100/$counter<br/>”;

}

?>

Thisresultsinthefollowing:

100/–3

100/–2

100/–1

Stoppingtoavoiddivisionbyzero.

Obviously,theremaybetimeswhenyouwouldprefernottosimplyskipone

executionoftheloopcode.Thecontinuestatementperformsthisforyou.

ContinueStatements

Youcanutilizecontinuestatementtoimpedeprocessingthepresentblockofcode

inacircleandbouncetothefollowingemphasisofthecircle.It’sdifferentfrom

breakinthatitdoesn’tquithandlingthecircletotally.You’reessentiallyskipping

aheadtothefollowingemphasis.Verifyyouaremodifyingyourtestvariable

beforethecontinuestatement,otherwise,aninfiniteloopispossible.Case6.17

demonstratestheformersampleutilizingcontinueratherthanbreak.

Case6.16.Usingcontinueinsteadofbreak

<?php

$counter=-3;

for(;$counter<10;$counter++){

/Checkfordivisionbyzero

<?php

$counter=-3;

Page 86: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

for(;$counter<10;$counter++){

//checkfordivisionbyzero

if($counter==0){

echo“Skippingtoavoiddivisionbyzero.<br>”;

continue;

}

echo“100/$counter“,100/$counter,”<br/>”;

}

?>

Thenewoutputislikeinthefollowingsequence:

100/-3-33.3333333333

100/-2-50

100/-1-100

Skippingtomaintainastrategicdistancefromdivisionbyzero

100/1100

100/250

100/333.3333333333

100/425

100/520

100/616.6666666667

100/714.2857142857

100/812.5

100/911.1111111111

Noticethattheloopskippedthe$countervalueofzeroanditregardless

proceededwiththenextvalue.

We’venowgonethroughthemajorityofthemajorprogramflowlanguage

constructs.We’vetalkedaboutthebuildingblocksforcontrollingprogramflowin

Page 87: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

yourprograms.ExpressionscanbeasdirectasTRUEorFALSEorasmind

bogglingasrelationalcomparisonwithlocaloperators.Theexpressions

consolidatedwithprogramflowconstructdevelopsliketheifstatementand

switchmakesdecision-makingsimple.

Weadditionallyexaminedwhile,do…while,andforloops.Loopsareextremely

helpfulforbasicelementwebpagetaskssuchasshowingtheoutcomesfroma

queryinanHTMLtable.

Page 88: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

CHAPTER7:FUNCTIONSTocomposePHPprogramsthatcontainmorethanonlyafewpagesofcodeand

arestillsystematizedwellenoughtobevaluable,youhavetohaveanin-depth

understandingoffunctions.Functionsletyoudisposeofrehashingthesamelines

ofcodeagainandagaininyourprograms.Functionsworkbyallocatinganame

calledafunctionnametoalumpofcode.Subsequently,youexecutethecodeby

callingthatname.TherearemanyinherentfunctionsinPHP.Forinstance,

print_risafunctionthatprintscoherentdataaroundavariableinplainEnglish

asopposedtocode.Ifgivenastring,wholenumber,orfloat,thequalityitselfis

printedwiththeprint_rfunction.Ifgivenanarray,qualitiesaredemonstratedas

keysandcomponents.Asimilarformatisutilizedforobjects.InPHP5.0,print_r

andvar_exportshowsecuredandprivatepropertiesofobjects.

Functionsrunthearrayfromaggregate_infotoimap_pingthrough

pdf_open_image.Sincetherearemanyofthem,wecanjustcoverafew

fundamentalsinthischapter,althoughwe’llgiveyouenoughdatathatyou’llbe

usingfunctionslikeanexpertasainaveryshorttime.

Youcanlookhttp://www.php.netforathoroughlistoffunctions.

Specifically,we’llgooverthefollowing:

•Howtomakeafunction,giveitaname,andexecutethatfunction

•Howtosendvaluestoafunctionandutilizetheminthefunction

•Howtoreturnvaluesfromafunctionandapplytheminyourcode

•Howtoverifythatafunctionexistsbeforeyouattemptusingit

Thepointofcodingwhenyoumaysplitcodeintoafunctionisasomewhatofa

subjectivejudgmentcall.Unquestionably,ifyoudiscoveryourselfrehashingafew

linesofcodeagainandagain,itbodeswelltopullthatcodeintoitsownfunction.

Thatwillmakeyourcodesimplertoreadaswellasprotectyoufromhavingto

makenumerousimprovementsifyouchoosetodosomethingelsewiththatpiece

ofcode,asitstheninonlyonespot,notvariousspotswhereyou’dneedtosearch

andreplacetochangeit.

Afunctionisablockofcodethatallowsvalues,formsthem,andafterward

performsanaction.Considermakingcakesandbakingtheminaovenasa

Page 89: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

function.Youputtherawdoughintotheoven,whichmakesthedoughmixture

theinput.Theoventhenbakesthedoughmixture;thisisthefunction.The

outcomeofthefunctionforbakingthecakesistheedible,bakedcakes.The

functionmayeventakeotherinputs,forexample,temperatureandbakingtime.

Thesedifferentinputsarecalledparameters.

Parameterssenddatatoafunction,andafterwardthefunctionexecutesthecode.

Functionscanuseanywhereintherangeofzeroparameterstoanentirelist.In

Illustration7.1,you’llutilizetheechofunctiontoshowsometext.echoshows

messagethatyousendtoitasaparameter.Mostfunctionsneedyoutoputtheir

parameterswithinparentheses,yetechoisaspecialcasetothisidea.Echoingof

allvariablesisaboutfoolproof!Figure7.1showshowtheoutcomeofthescript

showsupinaprogram.

Illustration7.1.ThepervasiveHelloworld!

<?php

echo(“Helloworld!”);

?>

Howtheechooutputlooksinthebrowserwindow

Theechofunctionbasicallysendsonthe“Welcomeworld!”stringtothe

program/browseronceyouloadthePHPdocument.echoisinfactaPHP

languageconstruct.Basically,thismeansithasthecapacitytoworkwithout

encasingitsparametersinparentheses.It’simportanttonotethattruefunctions

needparenthesesinmostcases.

YoucanuseoneofPHP’snumerousinherentfunctionsoridentifyyourown.We’ll

talkallthemoreaboutidentifyingdifferentfunctionslaterinthispart.

Page 90: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

7.1CallingFunctions

FunctionsthatareincorporatedintoPHPcanbecalledfromanyPHPscript.

Whenyoucallfunctions,youareexecutingthecodeinsidethem,asidefromthe

codeisreusableandmoreretainable.Oneinherentfunction,indicatedinExample

7.2,isphpinfo.ItreturnstechnicalandconfigurationdataaboutyourPHP

installation.

Thefunctionhelpsyoutoanalyzebasicissuesandproblems.Youmayfindthat

thisisamongstthebestplacestolookwhenverifyingwhetheryoumeetthe

prerequisitesofaPHPscript.Figure7.2showsjustpieceofthedatacontainedon

thispage.Ifafunctioncalldoesn’twork,thispageaideinanalyzingwhetherPHP

hasbeenassembledwiththeessentialmodules.Trynottoleaveascriptusing

phpinfo():onaproductionwebserver,although,inlightofthefactthatitreveals

dataaboutyourserverthatcouldbeutilizedbyhackersforpernicious

agenda/intentions.

Tocallafunction,writethenameofthefunction,anopeningparenthesis((),the

parameters,anendparenthesis()),andafterthatasemicolon(;).Itwould

resemblethis:function_name(parameters);.Functionnamesaren’tcase-

sensitive,socallingphpinfoisthesameascallingPhpInfo.Asindicatedin

Example7.3,thisiswhatcallingafunctionresembles:md5($mystring);.

Mostfunctionshavereturnvaluesthatyou’lleitheruseinanexaminationorstore

inavariable.Anincredibleplacetobeginisthemd5function.md5isaone-way

hashfunctionwhichislikeachecksumusedtoverifythereliabilityofastring.

md5changesamessageintoarigidseriesofdigits,calledamessagedigest.You

canthenperformahashcheck,comparingthecomputedmessagedigestagainsta

messagedigestdecodedwithapublickeytoverifythatthemessagewasnot

interferedwith.

Sample5.3makesa128-bitlongmd5markofthestring“mystring”.

Case5.3showsthefollowingoutcome:

169319501261c644a58610f967e8f9d0

Thereturnvalue,whichisanalyzedcomprehensivelyinthissection,isallocatedto

thevariable$signature,whichthenshows/displaystheoutput.

Page 91: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

Case7.2.ShowingdataaboutthePHPsorrounding

<?php

phpinfo();

?>

Figure7.2.InformationaboutPHPdisplayedinthebrowser

Atypicaluseformd5istoverifythatadocument/filedidn’tgettobedegenerated

whileitwasbeingtransferred.Thedocumentanditsmd5markareanalyzedafter

theirreachingthereceiver.Iftheymatch,yourealizethatit’simpossiblethatthe

document’scontentweretamperedwithduringtheprocessoftheirtransfer.If

they’redifferent,yourealizethatthedocumentisdegenerateorcorrupt.

Thisillustrationshowshowyoucanperformaperplexingprocedureusinga

functionwithoutneedingtostressoverhowthatprocedurereallydoesit.Thisis

thegenuinepoweroffunctions.

Page 92: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

7.2DefiningFunctions

ThereareasofnownumerousfunctionsincorporatedintoPHP.Nonetheless,you

canidentifyyourownalso,breakdownyourcodeintofunctions.Toidentifyyour

ownfunctions,beginwiththefunctionstatement:

functionsome_function([arguments]){codetoexecute;}

Thesections([])meanoptional.Thecodecouldlikewisebecomposedwith

optional_argumentsinsteadof[arguments].Thefunctionkeywordis

accompaniedbythefunctionname.Functionnamescomplywiththesame

principlesasothernamedobjectse.g.variables,inPHP.Onepairofparenthesis

(())mustcomenext.Ifyourfunctionhasparameters,they’respecifiedinsideof

theparentheses.Lastly,thecodetoexecuteisrecordedbetweencurlybraces,as

showninthepastcodeillustration.

Youcanidentify/definefunctionsatanypointinyourcodeandcallthemfrom

virtuallyanywhere.

TherulesofthisscopeareportrayedinChapter3.Asyoumayrecall,thescopeof

avariableisthesettinginsidewhichit’sdefined.Generally,allPHPvariableshave

justonescope.Asinglescopecompassesincludedandallnecessaryfilesaswell.

Thefunctionisdefinedonthesamefileorincludedinanincorporateddocument

file.Functionscanhaveparametersandreturnvaluesthatpermityoutoreuse

code.

Tomakeyourownfunctionthateasilyshowsadifferenthellomessage,youwould

composeitasfollows:

<?php

functionhi()

{

echo(“Hellofromfunction-land!”);

}

/Callthefunction

hi();

?>

Page 93: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

thisshowsas:

Hellofromfunction-land!

Thehifunctiondoesn’ttakeanyparameters,soyoudon’tlistanythingbetween

theparentheses.Sinceyou’vedefinedabasicfunction,howaboutweblendina

fewparameters?

Parameters

Parametersgiveahelpfulapproachtopassdatatoafunctionwhenyoucallit

withoutneedingtostressovervariablescope.InPHP,youdon’tneedto

characterizewhatkindofinformationaparameterholds—onlytheparameters’

namesneedtobespecified.

Asampleofafunctionthattakesaparameterisstrtolower,whichchangesover

yourstring“Hiworld!”tolowercase.Ittakesaparameterofthesortstring,which

isadatatypedepictedinChapter3.Additionally,there’sanotherfunctioncalled

strtoupperwhichchangesoverallcharactersofyourstringintocapitalizedletters,

asdemonstratedinExample7.4.

Sample7.4.Utilizingthestringcapitalizationfunctionsinsideofanotherfunction

thattakesaparameter

<?php

/Capitalizeastringfunctionunderwrite($str)

{

/First,changeoverallcharacterstolowercase

$str=strtolower($str);

/Second,changeoverthefirstcharactertocapitalized

$str{0}=strtoupper($str{0});/$str{0]getstothefirstcharacterinthestring

echo$str;

}

capitalize(“hElloWoRld!”);

?>

Case7.4yieldstheaccompanying:

Page 94: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

Hiworld!

Thevalueof$strwasechoedinsidethefunctiononthegroundsthatyoudidn’t

specifyanywaytogetthevalueoutofthefunction.Asnotedabove,$str{0}getsto

thefirstcharacterinastring.

PHPdoesn’tneedyoutocharacterizewhetherafunctionreallyreturnsavalue,or

whatdatatypeitreturns.

Parameterscanlikewisecontaindefaultvalues.Withadefaultvalue,youreally

don’tneedtopassthefunctionanyinfoforittosetthedefault.Howaboutwe

changeyouruppercasefunctiontohaveadefaultvaluethatpermitsyouto

capitalizethefirstletterofeverywordorsimplytheentiresentence?We’redoing

thisinExample7.5.

Illustration7.5.Makinganuppercasefunctionwithadefaultparameter$each

<?php

/Capitalizeastringorjustthefirstletterofeverywordfunctionunderwrite($str,

$each=TRUE){

/First,changeoverallcharacterstolowercaseornon-first-wordlettersmay

remaincapitalized

$str=strtolower($str);

if($each===TRUE){

$str=ucwords($str);

}else{

$str=strtoupper($str);

}

echo(“$str<br/>”);

}

capitalize(“hElloWoRld!”);

echo(“NowdothesamewiththeechoparametersettoFALSE.<br>”);

capitalize(“hElloWoRld!”,FALSE);

?>

Page 95: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

Thisresultsinthefollowing:

HelloWorld!

NowdothesamewiththeechoparametersettoFALSE

HELLOWORLD!

ParameterReferences

Whenyoupassaquerytothefunction,alocalduplicateismadeinthefunctionto

storethevalue.Anyprogressionsmadetothatvalueinfluencejustthelocal

duplicateofthevariableinthefunction,nottheoriginoftheparameter.Youcan

defineparametersthatmodifythesourcevariablebydefiningreference

parameters.

Referenceparametersdefinereferencesbyputtinganampersand(&)rightbefore

theparameterinthefunction’sdefinition.Weshouldmodifythecapitalize

functionfromExample7.5totakeareferencevariableforthestringtocapitalize,

whichisindicatedinExample7.6.

Illustration7.6Modifyingcapitalize()totakeareferenceparameter

<?php

functioncapitalize(&$str,$each=TRUE){

{/First,changeoverallcharacterstolowercase

$str=strtolower($str);

if($each===genuine){

$str=ucwords($str);

}else{

$str{0}=strtoupper($str{0});

}

}

$str=“HiWoRld!”;

underwrite($str);

echo$str;

Page 96: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

?>

Example7.8producesthefollowing:

HelloWorld!

Sincecapitalizedefinedthe$strparameterasasourceofperspectiveparameter,a

connectiontothesourcevariablewassenttothefunctionwhenitwasexecuted.

Thefunctionbasicallyaccessedandmodifiedthesourcevariable.Hadthevariable

notbeenannouncedasreference,thefirstestimationof“hElloWoRld!”would

haveshown.

IncludingandRequiringPHPFiles

Tomakeyourcodeeasiertoread,youcanputyourfunctionsinadifferentfile.

NumerousPHPadd-onsthatyoudownloadofftheInternetcontainfunctions

whichhavebeenputintotherecordsbynowthatyoubasicallyincludeinyour

PHPprogram.Ontheotherhand,PHPgivesfourfunctionsthatempoweryouto

embedcodefromdifferentfiles:

•incorporate

•require

•include_once

•require_once

Eachandeveryoneoftheincludeandrequirefunctionstakealocaldocasinput.

Requireandincludefunctionsarequitesimilarintheirfunctionalityaside

irrespectivethewayinwhichtheyhandlearesourcewhichcannotberetrieved.

Forinstance,includeandinclude_oncegiveanoticeiftheresourceisn’t

retrievableandtriestoproceedwithexecutionoftheprogram.Therequireand

require_oncefunctionsgivestoppreparingofthespecificpageiftheycan’t

recovertheresource.Presentlywe’regoingtogetmorespecificaboutthesefour

functions.

√ TheincludeStatement

TheincludestatementpermitsyoutoincorporateandjoinotherPHPscriptsto

yourownscript.Youcanconsideritjusttakingtheincludedrecordand

embeddingitintoyourPHPdocument.Case7.7iscalledadd.php.

Illustration7.7.Asampleincludedocumentcalledadd.php

Page 97: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

<?php

functioninclude($x,$y){

return$x+$y;

}

?>

Illustration7.8presumesthatadd.phpisinthesamedirectoryasthescript.

Illustration7.8.Utilizingtheincludefunction

<?php

include(‘add.php’);

echoadd(2,2);

?>

Afterbeingexecuted,thisproduces:

4

Asclearfromexample7.8,theincludestatementappendsotherPHPscriptsso

thatyoucangettodifferentvariables,functions,andclasses.

Youcannameyourincluderecordsanythingyoulike,howeveryououghtto

continuouslyusethe.phpextensiongiventhatifyounamethemsomethingelse,

forexample,.inc,it’simpossiblethataclientcanaskforthe.increcordandthe

webserverwillgivebackthecodestoredinit.Thisisasecurityhazard,asitmay

exposepasswordsorinsightsabouthowyoursystemfunctionsthatcanexpose

shortcomingsinyourcode.ThisisonthegroundsthatthePHPinterpreterparses

justrecordsmarkedplainlyasPHP.

√ Theinclude_oncestatement

AproblemmayoccurwhenyouincludenumeroushostedPHPscriptsasthe

includestatementdoesn’tcheckforscriptsthathavepreviouslybeenincluded.

Forinstance,ifyoudidthis:

<?phpinclude(‘add.php’);include(‘add.php’);

echoadd(2,2);

?>

Page 98: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

You’dgetthiserror:

Fatalerror:Cannotredeclareadd()(alreadydeclaredin

/home/www/htmlkb/oreilly/ch5/add.php:2)

in/home/www/htmlkb/oreilly/ch5/add.phponline2

Thisregistrymaynotbetheplaceyourfileisfound;yourrecordwillgowherever

you’veassignedaspotforit.Toevadethiskindofmistake/error,yououghttouse

theinclude_oncestatement.

Example7.9illustratestheinclude_oncestatement.

Example7.9.Utilizinginclude_oncetoincludearecord

<?php

include_once(‘add.php’);

include_once(‘add.php’);

echoadd(2,2);

?>

Whenexecuted,theoutputforthefollowingis:

4

√ requireandrequire_oncefunctions

Toverifythatarecordisincludedandtostopyourprogramifitisn’t,userequire

aswellasitscorrespondingitem,require_once.Thesearepreciselythesameas

includeandinclude_oncewiththeexceptionofthattheyverifythatthedocument

isavailable;ifnot,thePHPscript’sexecutionisstopped,whichwouldn’tbea

pleasantthing!Yououghttouserequireratherthanincludeiftherecordyou’re

includingdefineseitherbasicfunctionsthatyourscriptwon’thavethecapacityto

execute,orvariabledefinitions,forexample,databaseassociationdetails.

Forinstance,ifyouendeavortorequireafilethatdoesn’texist,asfollows:

<?php

require_once(‘add_wrong.php’);

echoadd(2,2);

?>

Page 99: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

you’dgetthiserror:

Warning:main(add_wrong.php):neglectedtoopenstream:Nosuchfileor

directoryin/home/www/htmlkb/oreilly/ch5/require_once.phponline2

Fataerror:main():Failedopeningobliged“add_wrong.php”

Thelastpointwe’llcoverwithfunctionsisthewaytotestwhetherafunctionhas

beendefinedbeforetryingtouseit.

TestingaFunction

IfcompatibilitywithdifferentPHPversionsisparticularlyessentialtoyourscript,

it’simportanttohavethecapacitytocheckforthepresenceoffunctions.The

functionfunction_existsdoesexactlywhatyou’danticipate.Ittakesastringwith

afunction’snameandreturnsTRUEorFALSEdependingonwhetherthe

functionhasbeendefined.Forinstance,thesecodetestsafunction:

<?php

$test=function_exists(“test_this”);

if($test==TRUE)

{

echo“Functiontest_thisexists.”;

}

else

{

echo“Functiontest_thisdoesnotexist.”;

/call_different_function();

}

?>

Thiscodedisplaysthisstatement:

Functiontest_thisdoesnotexist.

TheFunctiontest_thisdoesnotexistmessageshowsasyouhaven’tdefinedthe

functiontest_this.

Page 100: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

You’vefiguredouthowtodefinefunctionsandtheirparametersandhowtopass

dataforwardandbackwardfromthem;besides,we’vegivenyousomegreat

samplesofthemosteffectivemethodtoinvestigatepotentialfunctiontroubles.

Next,we’llpresentasubstitutestyleofprogrammingcalledObject-Oriented(OO)

programming.PHP5.0hasacompletelydevelopedOOinterface.Thereis

constantdebateonwhichtypeofcodingisbetter,andinfact,noneisbetteror

moreworsethantheother;it’sbasicallyastyleissuealongsidepersonal

experience.

Page 101: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

7.3Object-OrientedProgramming

Object-Orientedprogrammingtakesafterthesameobjectivesthatweexamined

whendiscussingfunctions,basicallytomakereusingcodesimpler.Itusesclasses

togroupfunctionsandvariablestogetherasanobject.Itmayhelptoconsider

objectsaslittlesecretboxesthatcanworkwithoutyouknowingtheexactwayof

howit’sdone.

Despiteeverything,theyutilizefunctions;howevertheygetanothernamewhen

definedinclasses.Thesearecalledmethods.Theclassworksasanoutlinefor

makingobjectsoftheclassdefinedtype.Variablescanaswellbedefinedin

methods;howevertheypickupthenewcapacitytobecharacterizedasamajor

aspectoftheclassitself.

Atthepointwhenanotherobjectismadefromaclass,itiscalledaninstanceof

thatclass.Anyvariablesthataredefinedintheclassgetseparatestoragespacein

everyoccurrence.Theseparatestorageforvariablesgivesthecaseofanobject

withthecapacitytorememberinformationbetweenmethodexecutions.

Ifyou’renewtotheideaofOOprogramming,don’tpanicovergettingto

understandeverythingimmediately.We’llworkwithaclassinChapter8,soit’s

adequatejusttoknowhowtocallthetechniques.Actually,anythingthatshould

bepossiblewithobjectsshouldbepossiblewithplainfunctions.It’ssimplya

matterofstyleandindividualpreference.

CreatingaClass

Classesarecommonlystoredinindependentdocumentsforreuse.Let’sbuildan

objectcalledCatthathasthreemethods:meow,eat,andpurr.Theclassbuild

definesaclassanditsname.Classnamestakeafterthesamenamingprinciplesas

variablesandfunctions.Thecodethatmakesuptheclassisputbetweencurly

braces.ThefollowingexamplemakestheCatclasswithoutdordefiningany

methodsvariables.Youcandoaspeedyverificationofwhethertheclasshasbeen

defined,asExample7.10illustrates.

Example7.10.MakinganobjectfromtheCatclass

<?php

classCat{

Page 102: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

}

$fluffy=newCat();

echo“Cushyisanother“.gettype($fluffy).”!”;

?>

Theabovecodedisplaysasfollows:

Fluffyisanewobject!

CreatinganInstance

Example7.10characterizestheclassaswellasmakesaninstanceofit.Thenew

keywordadvisesPHPtogivebackanotherexampleoftheCatclass.Inspiteofthe

factthattheclassdoesn’tdoanything,youcantellthatit’scharacterizedasan

object.Theclassisanoutlineforbuildingoccasions.Theclassspecifieswhatis

incorporatedineachnewexampleofthatclass.Everyoccasioncandoeverything

theclassdefinesinsideofthecontextoftheoccasion.

MethodsandConstructors

Methodsarethefunctionscharacterizedinsideoftheclass.Theyworkinsideof

natureoftheclass,includingitsvariables.Forclasses,thereisanexceptional

methodcalledaconstructorthatiscalledwhenanotheroccurrenceofaclassis

madetodoanyworkthatinitializestheclass,forexample,settingupthe

estimationsofvariablesintheclass.Theconstructorischaracterizedbymakinga

techniquethathasthesamenameastheclass,asdemonstratedinExample7.11.

Illustration7.11.MakingtheCatconstructor

<?php

classCat{

/Constructor

functionCat(){

}

}

?>

PHP5.0backssyntaxformakingaconstructorstrategyutilizing__constructor,

Page 103: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

asdemonstratedinExample7.12.IfaclassinPHP5.0doesn’thavethissystem,

theoldstyleofusingtheclassnameasthesystemnameisused.

Illustration7.12.UtilizingthePHP5styleconstructor

<?php

classCat{

/Constructor

Function__constructor(){

}

}

?>

Theconstructormightlikewisecontainparameterslikewhateverothermethod.

Additionally,classescancontainuser-definingmethods.FortheCatclass,youcan

characterizemeow,eatandpurrasindicatedinExample7.13.

Example7.13.DefiningthreememberfunctionsforCat

<?php

ClassCat{

/Constructor

function__constructor(){

}

/Thecatmeows

functionmeow(){

echo“Meow…”;

}

/Thecateats

functioneat(){

echo“*eats*”;

}

Page 104: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

/Thecatspurrs

functionmurmur(){

echo“*Purr…*”;

}

}

?>

Whenyoupronounceanotheroccasionofaclass,theclientcharacterized

constructorisdependablycalled,acceptingthatoneexists.Asyouprobablyare

aware,aclassgivesthediagramtoobjects.Youmakeanobjectfromaclass.Ifyou

seetheexpression“instantiatingaclass,”thisimpliesthesamethingasmakingan

object;consequently,youcanconsiderthemasbeingsynonymous.Whenyou

makeanobject,youaremakinganoccasionofaclass,whichimpliesyouare

instantiatingaclass.

Thenewbuildinstantiatesaclassbyallocatingmemoryforthatnewobject,which

impliesthatitneedsasolitarypostfixcontention,whichisacalltoaconstructor.

Thenameoftheconstructorgivesthenameoftheclasstoinstantiate,andthe

constructorintroducesthenewobject.

Thenewconstructsendsbackareferencetotheobjectthatwasmade.This

referenceiscommonlyassignedtoavariable.Nonetheless,ifthereferenceisnot

assignedtoavariable,theobjectisinaccessibleafterthestatementinwhichthe

newoperatorcompletestheprocessofexecuting.Illustration7.14demonstratesto

yougenerallyacceptedmethodstoutilizeneweffectively.

Illustration7.14.Makinganotherobjectandassigningittoavariable

<?php

ClassCat{

/Constructor

function__constructor(){

}

/Thecatmeows

functionmeow(){

Page 105: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

echo“Meow…”;

}

/Thecateats

functioneat(){

echo“*eats*”;

}

/Thecatpurrs

functionpurr(){

echo“*Purr…*”;

}

}

/AssignthenewCatobjectreferenceto$myCat

$myCat=newCat;

?>

VariableScopeWithinClasses

Classesmaycontainvariablesthathelpindefiningtheirstructureandhowthey

areused.Variablesinsideaclassaredeclaredwiththevarstatement.Thevar

statementannouncesavariabletohaveclassscope.Classscopemeansthey’re

instantlyrecognizablewithanytechniquesfortheclassandcanbereferenced

outsidetheclassutilizingaspecialconstruct.Example7.15addsthe$agevariable

totheCatclass.

Illustration5-15.Addingthe$agevariabletoCat

<?php

classCat{

/Howoldthecatis

var$age;

/PHP5uses:

/public$age;

Page 106: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

}

?>

Whilstreferringtotechniquesandvariablesfromwithintheclass,youmust

utilizethesyntax:

$this->variableortechniquename;

Theuncommonvariable$thisalwayspointstotheexistingexecutingobject.

InExample7.16,thethis->operatorisusedtomodifytheestimationof$age.

Illustration5-16.Gettingtothe$agevariableusingthis->

<?php

classCat{

/Howoldthecatis

var$age;

/Constructor

functionCat($new_age){

/Settheageofthiscattothenewage

$this->age=$new_age;

}

/Thebirthdaymethodincrementstheagevariable

functionBirthday(){

$this->age++;

}

}

/Createanewinstanceofthecatobjectthatisoneyearold

$fluffy=newCat(1);

echo“Ageis$fluffy->age<br/>”;

echo“Birthday<br/>”;

/Increasefluffy’sage

Page 107: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

$fluffy->Birthday();

echo“Ageis$fluffy->age<br/>”;

?>

Illustration7.16createsthefollowing:

Ageis1

Birthday

Ageis2

Notethatyoucangettotheestimationof$agefromoutsidetheclassbyutilizing

thenameoftheclasswiththe->operatorratherthanthis.

Inheritance

Whenassertingclasses,it’slikewisefeasibletoisolatefunctionalityintosubclasses

thatnaturallyinheritthesystemsandvariablesoftheclassonwhichtheyare

based.Thiscanbehelpfulifyou’readdingfunctionalitytoaclasswithout

modifyingtheoriginalclass.Example7.17showshowpropertiesandtechniques

areacquiredfromtheparentclassfortheDomestic_Catclass.

Theextendsoperator

Whenaclassinheritsfromanotherclass,theclassfromwhichitacquires

propertiesisknownasthesuperclass.Whenannouncingasubclass,usethe

extendskeywordtospecifyfromwhichclassit’sinheriting.Case7.17

demonstratesanillustrationofthis.

Case7.17.Usingextendskeywordstodefineasubclass

<?php

classCat{

/Howoldthecatis

var$age;

functionCat($new_age){

/Settheageofthiscattothenewage

$this->age=$new_age;

}

Page 108: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

functionBirthday(){

$this->age++;

}

}

classDomestic_CatexpandsCat{

/Constructor

functionDomestic_Cat(){

}

/Sleeplikeadomesticcat

functionsleep(){

echo(“Zzzzzz.<br/>”);

}

}

$fluffy=newDomestic_Cat();

$fluffy->Birthday();

$fluffy->sleep();

echo“Ageis$fluffy->age<br/>”;

?>

Case7.17outputsthefollowing:

Zzzzzz.

Ageis1

NoticethatyoucanaccesstheBirthdayfunctionfromtheCatclassandthe

recentlydefinedsleepmethoddespiteofwhichlevelintheobjectdefinedthe

method.

Theparentoperator

ADomestic_CatisaCatinallregards.However,itcontainsthebasemethodsfor

aCat.It’slikewisefeasibletooverrideexistingfunctionalityfromthesuperclassto

giveyourownnewcode.Youjustreclassifythefunctioninthenewclass.

Page 109: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

Whenexpandingclassestooverridefunctionsinyourclassthatarenowdefined

inthesuperclass,youcanstillexecutethecodefromtheparentclassandafter

thatincludeyourownparticularfunctionality.Tocalltheparentclasstechnique

beforeyourcode,use:

parent::method_from_parent

Thiscallstheparentsysteminthesuperclass.Youcanthenaddittoyourcode,as

showninExample7.18.

Illustration7.18.Utilizingtheparentbuild

<?php

classCat{

/Howoldthecatis

var$age;

functionCat($new_age){

/Settheageofthiscattothenewage

$this->age=$new_age;

}

functionBirthday(){

$this->age++;

}

functionEat(){

echo“chompchomp.”;

}

functionMeow(){

echo“meow.”;

}

}

classDomestic_CatextendsCat{

/Constructor

Page 110: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

functionDomestic_Cat(){

}

StaticMethodsandVariables

Methodsandvariablescanlikewisebeutilizedandaccessediftheyaredefinedas

staticinaclass.AsChapter3outlined,staticmeansthesystemorvariableisopen

throughtheclassdefinitionandnotsimplythroughobjects.InPHP4.0,thereis

norealwaytoconcludethatavariableisstatic;nonetheless,inPHP5.0,youcan

utilizethestaticmodifier.

The::operatorpermitsyoutoalludetovariablesandsystemsonaclassthat

doesn’tyethaveanycasesorobjectsmadeforit.Sample7.20showshowyoucan

callastaticsystemusing::,andhowthenormaltechniquecallingsyntaxof->

doesn’twork,evenafteranillustrationoftheclasshasbeenmade.(PHPdoesn’t

reportanerror—itsimplydoesn’twork.)

Example7.20.Utilizingthe->and::operatorstocallhypnotize

<?php

classCat{

}

classHypnotic_CatextendsCat{

/Constructor

functionHypnotic_Cat(){

}

/Thisfunctionmustbecalledstatically

Publicstaticfunctionhypnotize(){

echo(“Thecatwashypnotized.”);

return;

}

}

/Hypnotizeallcats

Hypnotic_Cat::hypnotize();

Page 111: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

$hypnotic_cat=newHypnotic_Cat();

/Doesnothing

$hypnotic_cat->hypnotize();

Itoutputsthefollowing:

Thefelinewashypnotized.

Whenastrategyiscalledusingthescoperesolutionoperator(::),youcan’tutilize

the$thisobjecttoalludetotheobjectinlightofthefactthatthereisnoobject.

VariableReferences

InPHP,avariablenamefocusestoanareainmemorythatstorestheinformation.

Therecanbemorethanonevariablenameindicatingthesamespotinmemory.

Theampersandoperator(&)isutilizedtodemonstratethatyou’reoccupiedwith

theareainmemorythatavariablefocusestoratherthanitsvalue.

PHPreferencespermityoutomaketwovariablestoalludetothesamecontent.In

thisway,changingthevalueofonevariablecanchangethevalueofanother.This

canmakeitexceptionallydifficulttodiscovererrorsinyourcode,sincechanging

onevariableandchangestheother.

Thesamepunctuationcanbeutilizedwithfunctionsthatarrivalreferences.Case

5-21utilizesthistoreferencethe$somevariable.

Example7.21.Referencingthe$some_variable

<?php

$some_variable=“HelloWorld!”;

$some_reference=&$some_variable;

$some_reference=“GutenTagWorld!”;

echo$some_variable;

echo$some_reference;

?>

Theoutputisasfollows:

GutenTagWorld!GutenTagWorld!

Example7.21demonstratesthatareferenceissituatedutilizingthe&operator

Page 112: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

andgoesbeforethe$inthecurrentvariable.Thevariable$some_referencethen

alludesto$some_variable(thememoryareawhere“HiWorld!”isplaced).

Asexaminedalreadyinthispart,variablereferencesarehelpfulforpassinga

variablebyreferenceasaparametertoafunction.Thispermitsthefunctionto

modifythevariableinyourfundamentalcodeasopposedtomodifyingalocal

duplicate/copythatislostwhenthefunctionfinishes.

Assigningavariabletoanothervariablewithoutusingthereferenceoperator

resultsinacopyofthevariablebeingsetintoanotherspotinmemory.Thenew

variablecanbechangedwithoutmodifyingthefirstvariable.Whilethistakes

morememory,it’sthebestapproachifyouwouldprefernottochangethefirst

variable’svalue.

Sinceyou’venowcomprehensivelystudiedfunctionsandclasses,you’reprepared

tobeginworkingwithmoreperplexinginformation,forexample,arrays.Arrays

willbeexceptionallyvaluablewhenworkingwithinformationfromadatabasein

lightofthefactthattheycanundoubtedlyholdtheinformationfromaninquiry.

Page 113: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

CHAPTER8:ARRAYSVariablesareawesomeforputtingawayasolitarybitofdata,howeverwhat

happenswhenyouhavetostoreinformationforanentirearrangementofdata,for

example,theoutcomesofaquery?Atthepointwhenthishappens,usesarrays.

Arraysareanuncommonsortofvariablethatstoresnumerousbitsof

information.Arrayspermityoutogettoanyofthequalitiesputawayinthem

individuallyyetstillduplicateandcontrolthearrayoverall.Sincetheyareso

valuable,you’llseearraysutilizedasoftenaspossible.PHPgivesnumerous

functionstoperformingbasicarrayassignments,forexample,numbering,sorting,

andcirclingthroughtheinformation.

Page 114: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

8.1ArrayFundamentals

Toworkwitharrays,youhavetotakeintwonewterms:indexesandelements.

Elementsarethequalitiesthatareputawayinthearray.Everycomponentinthe

arrayisreferencedbyanindexthatdifferentiatesthecomponentfromsomeother

oneofakindcomponentinthearray.Theindexvaluecanbeanumberorastring,

butitmustbedistinctive.Youcanthinkaboutanarraylikeaspreadsheetora

databasethathasjusttwosections.Thefirstsectioninterestinglyidentifiesthe

lineinthespreadsheet,whilethesecondsegmentcontainsastoredvalue.

AssociativeVersusNumericIndexedArrays

Numericarraysusesnumbersastheirindexes,whileacquaintedarraysusestings.

Atthepointwhenutilizingassociativearrays,youmustsupplyanindexstring

everytimeyouincludeacomponent.Numericarrayspermityoutosimplyinclude

thecomponent,andPHPnaturallyassignsthefirstfreenumber,beginningat0.

Bothtypesofarrayspermityoutoincludenewelementstothearrayeachonein

turn.

Associativearraysarepleasantforstoringconfigurationdatasincetheirkeyscan

haveasignificantname.

Atypicalindicationofbeginningtogettotheestimationsofyourarrayat1rather

than0isendeavoringtoaccessthelastvalueandfindingit’snotthere.For

example,ifyouuseanumericarraytostorefivecomponentsandletPHPpickthe

numberfilevalues,thelastvalueisputawayundertheindexvalueof4.

Page 115: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

CHAPTER9:WORKINGWITHMYSQLIt’snowyourchancetolearnhowtoassociatewiththeMySQLdatabaseusingthe

customertoolsthataccompanyMySQL.Youmightlutilizeaweb-basedelement

devicecalledphpMyAdmintomodifyyourdatabase.We’lllikewisecoverhowto

utilizeSQLtomakedatabases,clients,andtables,andinadditionhowtomodify

existingobjectsinthedatabase.

Page 116: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

9.1MySQLDatabase

MySQLhasitsowncustomerinterface,permittingyoutomoveinformation

aroundandchangedatabasedesign.Notethatyououghttoutilizeapasswordto

signin.Assigningdatabaseclientspermitsyoutoconstrainaccesstotablesin

viewofthesignedindatabaseclient.EachMySQLservercanhavenumerous

databases.Awebapplicationmayutilizeitsownrestrictivedatabaseorastandard

databaselikeMySQL.

YoumayhaveinstalledMySQLyourselforhaveentrytoitthroughyourISP.Most

ISPsthatbolsterPHPlikewisegiveaMySQLdatabasetoyourutilization.Should

youhavedifficulty,checktheirhelppagesorcontactthemtofocusassociation

subtleelementsestablishconnectiondetails.

You’llhavetoknowthefollowing:

•TheIPlocationofthedatabaseserver

•Thenameofthedatabase

•Theusername

•Thesecretkey

Ifyou’veintroducedMySQLonyourPC,you’llhavethechancetousethedefaults

fromtheestablishmentandthepasswordyouchose.Thispartfocusesontwo

approachestocommunicatewithMySQL:theorderlineandphpMyAdmin.

AccessingtheDatabasefromtheCommandLine

OnemethodofcommunicatingwithMySQListhroughtheMySQLcommand-line

customer.Contingentuponwhichoperatingsystemyou’reusing,youhaveto

eitheropenaordershellforWindows(sortcmdfromtheRundialog,asindicated

inFigure9.1)ontheotherhandopenaterminalsessioninMacOSXandUnix

environments.

Page 117: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

Figure9.1.WindowsRundialog

Whenyouachievethecommandline,typemysql,andpressEnter.Thesyntaxfor

themysqlcommandis:

mysql-hhostname-uclient–p

Thedefaultusernameisrootifyou’veinstalledMySQLallalonePC.Youcan

overlookthehostnameflagandvalue.EnteryourpasswordwhenMySQLshows

the“Enterpassword”prompt.Ifthepassword,username,andhostnameareright,

you’llseeabannermessagelikethatdemonstratedinFigure.

Thedefaultdatabasethatisavailableafterinstallationiscalledmysql.Themysql

databaselikewisestoresthedatabaseclientverificationinformation.Trynotto

eraseit!Whenyoubeganmysql,youdidn’tspecifyanassociationwithaspecific

database.TheUSEcommandhelpsyoutodothis.

Toassociatewiththemysqldatabase,typetheaccompanyingattheMySQLbrief:

USEmysql;

Thisreturns:

Databasechanged

IfyourISPsuppliedadifferentdatabasename,usethatratherthanmysql.

Page 118: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

9.2ManagingtheDatabase

Nowthatyou’reassociatedwiththedatabase,youcanmakeusers,databases,and

tables.Youwillnothavetomakeadatabaseorclientaccountifyou’reusinga

MySQLserverinahostedenvironment,andtheysuppliedyouwithausername

anddatabasename.

CreatingUsers

Tomakeuserswellbeyondthedefaultfavoredrootclient,issuethegrant

command.Thegrantcommandrunsbythissyntax:

GRANTPRIVILEGESONDATABASE.OBJECTSTO’username’@’hostname’

IDENTIFIEDBY‘password’;

Forinstance:

GRABALLPRIVILEGESON*.*TO“michele”@”localhost”IDENTIFIEDBY

‘secret’;Thismakestheclientmichelewhocanaccessanythingbylocally.To

changetothemicheleclient,atthemysqlcommandprompt,type:

exit

AtthatpointbeginMySQLfromtheorderlinewiththenewusernameand

password.Thepunctuationforsyntaxtheusernameandsecretwordwhen

beginningMySQLis:

mysql-hhostname-uusername–ppassword

Noticethatthereisnospaceinthemiddleof–pandsecretword.MySQLcan

provokeforthesecretwordifyousimplyspecifythe–pbannerwithouta

watchword.Ifyoudon’tneedclientstogettotablesotherthantheirown,supplant

*intheGRANTALLPRIVILEGESON*.*TO“michele”codewiththenameofthe

client’sdatabase,similartothis:

ConcedeALLPRIVILEGESONstore.*TO“michele”@”localhost”IDENTIFIED

BY‘mystery’;You’llhavetorunthislineasrootorassomebodywith

authorization.Inthiscode,thewordstoreassociatestothedatabasenamewhere

benefitsareallocated,whichyou’llmakeinthefollowingarea.

CreatingaMySQLDatabase

You’regoingtomakeadatabasecalledstore.TheCREATEDATABASEcommand

Page 119: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

functionslikethis:

CreateDATABASEstore;

Ifthisworks,you’llgetanoutcomelikethisone:

QueryOK,1rowinfluenced(0.03sec)

Databasenamescan’tcontainanyspaces.OnUnixserverssuchasLinuxandMac

OSX,databasenamesarecase-sensitiveaswell.

Tobeginusingthisdatabase,type:

Usestore;

Youwillgettheoutcome:

Databasechanged.

Believingyou’vedoneeverythingaccurately,you’llbesetupwithnew

information,anditwillbechosenforuse.Makingtablestostoreinformationisan

imperativeidea,sothatistheplacewe’reheading!

Page 120: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

9.3UsingphpMyAdmin

ThetoolphpMyAdmin,accessiblefromhttp://www.phpmyadmin.net/,permits

youtocontrolaMySQLdatabasethroughyourwebprogram.Allthatisneededis

awebserverwithPHPinstalledandaMySQLdatabasetocontrolit.

TointroducephpMyAdmin,takeafterthesestrides:

1.ClickDownloadsfromtheprimarypage.

2. Download the archive document, for example, all-languages.tar.gz (Unix

archived)oralllanguages.zip(WindowsZIPdesign).

3.Unpackthearchive(countingsubdirectories)toadirectoryonyourPC.

4. Send them to your ISP account where PHP records can be executed.

Alternately, if you have aweb server installed locally, relocate them to a

catalog in the document root with a consistent name, for example,

myadmin.

5. To build up phpMyAdmin, make a directory called config inside of the

myadmindirectory.OnLinuxframeworks,executethesecommandsrather

tomakethedirectory,andsetthesystemstopermitthesetupprogramto

modifytheconfugurationdocument:

compactdiscmyadmin

mkdirconfig

chmodo+rwconfig

cpconfig.inc.phpconfig/

chmodo+wconfig/config.inc.php

6. In your web program, explore to

http://localhost/myadmin/scripts/setup.php.

You’llseeascreenliketheonedisplayedintheFigure.

Page 121: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

Figure9.3.ThephpMyAdminsetupcreatestheconfigurationfilefor

phpMyAdmin

7.IntheServerssegment,taptheAddbutton.TheServersetuppageshows

asdemonstratedinFigure9.4.

8.Alargeportionofthedefaultvaluescanbeleftalone.Youdoneedtoenter

thepassswordfortherootMySQLclientinthe“passwordforconfigauth”

field.

9. Select “cookie” from Authentication sort to limit access to yourMySQL

informationtojustclientswithaMySQLaccount.

10.Click“Add.”

11.Click“Save” fromtheConfigurationsection tosaveyourprogressions to

theconfigurationfile.

12.Duplicatetheconfig.inc.phpfiletomyadmin.

13.Removetheconfigdirectory.

14. In your web program, explore to http://localhost/myadmin/index.php.

YourwebprogramshowsaloginpageliketheonedemonstratedinFigure.

Page 122: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

Figure9.4.DefiningtheconnectiondetailsforyourMySQLserver

Whenintroducedandassociatedwiththedatabase,phpMyAdmin’sprimarypage

seemstobesametotheonedisplayedinFigure9.6.

Youcanchooseanyconfigureddatabasesfromthedrop-downlistmarked

Databases.

Theadministratorgivesasimpleapproachtoperceivehowyourdatabaseis

arrangedandwhatobjectsexist,(forexample,tables),andyou’reevenofferedthe

choicetoincludetablesthroughthegraphicalinterface.ThroughthePHP

administrator,youcanmakenewdatabasesandtables,runqueries,andshowcase

serverstatistics.

Page 123: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

Figure9.5.Theloginpagerestrictsaccesstoyourdatabase

Thefiguredemonstratesthetablesinthetestdatabasewe’llbemakinginthis

section.Ifyourdatabasemakesuseofadifferentname,substitutethatnamefor

“test.”Clickonthecreatorstableonthelefttogetmoredetailsonthattable.

Tappingonthecreatorstableshowsitstablestructure.Thisscreengivesan

simpleapproachtoimaginethedesignofadatabase,especiallyifit’sadatabase

thatyoudidn’tmakeyourself.

Toseethecontentofatable,tapontheBrowsetab.Figure9.8demonstratesthe

browsetabforthecreatorstable.

Thewebadmintoolgivesaninterfacethatissimpletouseeitherforgoing

throughyourdatabaseandmakingnewobjectsorformodifyingdata.Youmay

findthegraphicalinterfacetobeaninvigoratingchangefromthecontentbased

commandlineofthemysqlclient.

We’representlygoingtoacquaintyouwithessentialdatabasestructuresoyou

havesomebasicyetvitalknowledgeofdatabases.We’llgiveyouastrong

comprehensionofthelanguagethatisutilizedtocommunicatewiththedatabase,

SQL.Theinitialphaseinsettingupyourdatabaseistomakesomedatabase

tables.Atthatpointyou’llfigureouthowtoinclude,view,andchange

information.

Page 124: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

Figure9.6.SelectingadatabasetoadministerinphpMyAdmin

Figure9.7.Theobjectsinthetestdatabaseandtheauthorstablestructure

Page 125: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

Thedataintheauthorstableandthequeryusedtogenerateit

Page 126: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

9.4DatabaseConcepts

Databasesareavaultfordata.Theystandoutatoverseeingandcontrolling

organizeddata.Structuredinformationisanapproachtoarrangerelatedpieces

ofdata,whichweexaminedalreadyinChapters3–6.Thefundamentaltypesof

structureddata,whichcanaswellbecalleddatastructures,include:

•Files

•Lists

•Arrays

•Records

•Trees

•Tables

Eachofthesefundamentalstructureshasnumerousvarietiesandconsiders

differentoperationstobeperformedontheinformation.Asimpleapproachto

comprehendthisideaistothinkaboutthetelephonedirectory(phonebook).It’s

themostcommondatabase,anditcontainsafewitemsofdata—name,address,

andtelephonenumber,andinadditioneverytelephonesubscriberinaspecific

range.Telephonedirectorieshaveadvanced,andafewindividualsmighthave

boldednames,howevergenerally,everyentryinthetelephonedirectorytakesthe

samestructure.

Ifyouthinkaboutthephysicalprintedversiontelephonedirectoryincomparable

termsasadatabase,thetelephonedirectoryisatable,whichcontainsarecordfor

everysubscriber.Everysubscriber’srecordcontainsthreefields(otherwisecalled

attributesorcolumns):name,addressaswellastelephonenumber.Theserecords

areidentifiedbythenamefield,whichiscalledthekeyfield.Thetelephone

directoryisarrangedbyalphabetsthroughlastnamesfirst;checkFigure9.9for

howadistinctiverecordanddistinctivefieldsshowinyourdatabasebasedon

telephonedirectory’sanalogy.WhiletheinformationinaMySQLdatabaseisn’t

keptinanyspecificorder,itcanbequeriedinorder.

Page 127: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

Figure9.9.Phonebookrecordandfields

Ifyoutookthesameinformationfromthephonebookandplaceitintoa

database,youcouldassemblequestionse.g.whohasthetelephonenumber651-

668-2251,oreverybodyinaspecificpostaldivisionorzipcodewhohasthelast

nameDavis.Thiskindofdatabaseissimilartoamajorspreadsheet;itcanbe

knownasaflat-filedatabase,whichimplieseverydatabaseisself-containedin

onetable.Sincethe1970s,relationaldatabasesforhandlinginformationhave

replacedflatfiles.Theysustainvarioustables,connectedtogetherasrequired.

Page 128: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

9.5StructuredQueryLanguage

Sinceyou’vecharacterizedatable,youcanaddinformationtoit.MySQLwillkeep

trackofalldetails.Tomanageinformation,usetheStructuredQueryLanguage

(SQL)commands.

Sinceit’sbeenintendedtoeffortlesslyportraytherelationshipbetweenrowsand

tables,thedatabaseusesSQLtomodifyinformationinthetables.

SQLisastandardlanguageusedwithmostdatabasese.g.MySQL,Oracle,or

MicrosoftSQLServer.Itwascreatedspecificallyasalanguageusedtorecover,

include,andmanageinformationthatstaysindatabases.We’llgetintothedetails

ofMySQLinthenextchapter,butwe’llstartwithsomesimplecommandsthatare

easytouse.We’regoingtocommencewithmakingtables.

MakingTables

Makeuseofthetablecommandstospecifythestructureofnewdatabasetables.

Whenyoumakeadatabasetable,everysegmenthasacoupleofchoicesaswellas

datatypesandcolumnnames.Valuesthatmustbesuppliedwhenadding

informationtoatablearespecifiedthroughtheNOTNULLkeyword.The

PRIMARYKEYkeywordtellsMySQLwhichsegmenttouseasakeyfield.

Subsequently,youhaveMySQLassignkeyvaluesusingtheAUTO_INCREMENT

keywordautomatically.

Tomakethesetables,typeandpastethecodeintotheMySQLcommandline

client.Laterchapterscontainessentialdataifyou’reoccupiedwithrunningthe

SQLcodeintheaccompanyingexamples.ItclarifieshowtoaccesstheMySQL

client,allotsecuritypermissionsthroughtheGRANTcharge,makeadatabase,

andselectitforuse.

Example9.1.Makingthebooksandauthorsstables

CreateTABLEbooks(

title_idINTNOTNULLAUTO_INCREMENT,

titleVARCHAR(150),

pagesINT,

PRIMARYKEY(title_id));

Page 129: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

MAKETABLEauthors(

author_idINTNOTNULLAUTO_INCREMENT,

title_idINTNOTNULL,

authorVARCHAR(125),

PRIMARYKEY(author_id));

Ifalliswell,you’llseeoutputthatrequiresMySQLtomakeatablecalled“books,”

andit’lllooklikeExample9.2(thetimetheinquirytakestorunmaybedifferent

than0.06sec):

Example9.2.MakingSampleData

mysql>CREATETABLEbooks(

->title_idINTNOTNULLAUTO_INCREMENT,

->titleVARCHAR(150),

->pagesINT,

->PRIMARYKEY(title_id));

QueryOK,0rowsaffected(0.06sec)

Thecodetomakethebookstableseparatesastakesafter:

•Thefirstsection,calledtitle_id,isanumber/integer.Theauto_increment

keywordisaspecialvalueassignedtothisfieldautomaticallyduringline

insertion.

•Thetitlecolumnholdscontentupto150characters.

•Thepagescolumnisawholenumber.

•ThePRIMARYKEYtraittellsMySQLwhichfieldisthekeyvalue.

TheessentialkeymustbeoneofakindandnotNULL.Alltablesoughttohavea

primarylkey,asitpermitsMySQLtoaccelerateaccesswhenyourecover

informationfrommultipletablesthenagainaspecificcolumnutilizingthekey

quality.MySQLdoesthisbyutilizinganextraordinaryinformationstructure

calledaindex.Anindexworkslikeaneasyrouteforfindingarecord,similartoa

cardcataloginalibrary.Toverifyyourtablecolumns,useDESCRIBE:

Depictbooks;

Page 130: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

AddingDatatoaTable

TheINSERTcommandisusedtoincludeinformation.ItssyntaxisINSERTINTO

tableCOLUMNS([columns])VALUES([values]);.Thissyntaxshowswhichtable

informationshouldbeaddedto,thecolumns,andalistofthevalues.Ifthe

segmentsaren’tspecified,thevaluesmustbeinthesamerequestinwhichthey

weredefinedwhenthetablewasmade(providedthatyoudon’tskipanysection

values).Therearespecificprinciplesforhowyouhandleinformationtopopulate

yourdatabaseusingSQLcommands:

•Numericvaluesshouldn’tbecited.

•Stringvaluesoughttodependablybecited.

•Dateandtimevaluesoughttodependablybecited.

•Functionsshouldn’tbecited.

•NULLoughttoneverbecited.

Finally,ifacolumnisn’tgivenavalue,it’sthusviewedasNULLunlessadefault

existsforthesection.Ifasectioncan’thaveNULL(itwasmadewithNOTInvalid)

andyoudon’tspecifyavalue,anerrorhappens.

E.g.:

INSERTINTObooksVALUES(1,”LinuxinaNutshell”,112);

INSERTINTOauthorsVALUES(NULL,1,”EllenSiever”);

INSERTINTOauthorsVALUES(NULL,1,”AaronWeber”);

Providedthattherewerenoerrors,yououghttoget:

mysql>INSERTINTObooksVALUES(1,”LinuxinaNutshell”,112);

QueryOK,1rowaffected(0.00sec)

mysql>INSERTINTOauthorsVALUES(NULL,1,”EllenSiever”);

QueryOK,1rowaffected(0.00sec)

mysql>INSERTINTOcreatorsVALUES(NULL,1,”AaronWeber”);

QueryOK,1lineinfluenced(0.00sec)

Atthepointwhenincludinginformation,youmustspecifyeveryoneofthe

columnsregardlessofthepossibilitythatyouaren’tsupplyingavaluefor

Page 131: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

everyone.Despitethefactthatwedidn’tsupplytheauthor_idfieldandwelet

MySQLassignitforus,regardlessweneededtoleaveaplaceholderforit.

Similarly,weincludetheotherbook:

INSERTINTObooksVALUES(2,”ClassicShellScripting”,256);

INSERTINTOauthorsVALUES(NULL,2,”ArnoldRobbins”);

INSERTINTOauthorsVALUES(NULL,2,”NelsonBeebe”);

Thisgivesustworowsinthebookstable.Sinceyouknowhowtomakeatableas

wellasenterinformationintoit,you’llhavetoknowhowtoviewthatdata.

TableDefinitionManipulation

Onceyou’vemadeatableandbeganstoringdatainit,youmayfindthatyouhave

toimplementanimprovementtothecolumntypes.Forinstance,youmayfind

thatafieldyouthoughtwouldrequirejust30charactersreallyneeds100.You

couldbeginalloverandreclassifythetable,howeveryou’dloseallyour

information.Thankfully,MySQLpermitsyoutomodifycolumntypeswithout

losingyourinformation.Thefollowingexamplespresumethatyou’vemadethe

databasetablesinthissection.

Renamingatable

Torenameatable,useALTERtableRENAMEnewtable.Inthisillustration,we

arerenamingthetablefrombookstoproductions:

ModifyTABLEbooksRENAMEproductions;

Renamingatable

QueryingtheDatabase

Havinginformationintablesdoesn’tbenefitmuchifyoucan’tviewwhat’sin

them.TheSELECTcommandspecifieswhichtable(s)toqueryandwhichrow(s)

toviewbasedonspecificconditions.ThesentencestructureofSELECTwillbe

SELECTcolumnsFROMtables[WHERECLAUSE];[ORDERBYCLAUSE];.

Sectionsshowarundownofsegmentstoshowfromthechosen/selectedtables.

Page 132: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

TheWHEREprovisoalternativelyconfineswhichlinesarechosen.WHEREgives

cutoffpointstotheresultsthatarereturnedfromaquery.Forinstance,rowscan

bedismissedifafielddoesn’tbreakevenwithanexactingvalueorisnotexactlyor

morenoteworthythanaquality.TheORDERBYprovisopermitsyoutosortthe

returneddataincovetedways.Fieldsfromnumeroustablescanbecompelledto

beequivalent.IfvarioustablesareincorporatedinaSELECTstatementwithouta

WHEREclause,thesubsequentsetturnsintotheCartesianitem,inwhicheach

rowinthefirsttableisreturnedwithallcolumnsinthesecondtable,followedby

thesamethingforthesecondrowinthefirsttable.Toputitanotherway,thatisa

greatdealofresults!

ModifyingDatabaseData

Ifyoucommitanerror,say,byenteringthewrongnumberofpagesforabook,

youcanchangetheinformationbyutilizingtheUPDATEcommands.Thereare

manydifferentmotivationstoupgradeatable,forexample,aclientchanginghis

password.

UPDATEusesthesameWHEREclauseastheSELECTstatement,howeverit

includesaSETcommandsthatspecifiessegmentvalue.

ErasingDatabaseData

TheDELETEcommandisutilizedtoerasecolumnsorrecordsinatable.Ittakes

thesameWHEREclauseasUPDATEhowevererasesanycolumnsthatmatch.

WithouttheWHEREclause,you’dhavean“uhoh!”minuteonthegroundsthat

everyoneoftherecordsinthetablewouldbeerased.

Page 133: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

CHAPTER10:DATABASEBESTPRACTICESSinceyouhaveMySQLupandrunningandhavemadeadatabase,weshouldtalk

aboutdatabasedesignandprotectingyourdatabases.Asyoumostlikelyare

aware,itisimperativetohaveyourdatabackedup.AddingMySQLtoPHPand

combiningtheapplicationsforyourdynamicwebsiteisanincrediblebeginning.

However,ithelpsmassivelytostructureyourdatabaseaccurately.Ifyouhave

security,informationintegrity,andbackups,youhavethemostsignificantbitsof

adatabase.We’llexaminesecurityinlaterchapters.

Page 134: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

10.1DatabaseDesign

Designingyourdatabaserightfullyisimperativetoyourapplication’sexceptional

performance.Justasputtingtheprinterthedistanceoveryourofficeis

ineffective,settinginformationinpoorconnectionsmakesworklessproductivein

lightofthefactthatyourdatabaseserverwillwastetimesearchingfor

information.Atthepointwhenthinkingaboutyourdatabase,considerthetypes

ofinquirieswillbeaskedwhenyourdatabaseisused.Forexample,whatarethe

detailsaroundanitemavailabletobepurchased?Alternately,isthisalegitimate

usernameandpassword?

RelationalDatabases

MySQLisarelationaldatabase.Avitalelementofrelationalframeworksisthat

informationcanbespreadoverafewtables,insteadofourleveldocument

telephonedirectorysample.Relatedinformationisputawayinisolatedtablesand

permitsyoutoputthemtogetherbyutilizingakeyregulartobothtables.Thekey

istheconnectionbetweenthetables.Theselectionofaprimarykeyisastandout

amongstthemostbasicchoicesyou’llmakeindesigninganotherdatabase.

Themostimperativeideathatyouhavetocomprehendisthatyoumustguarantee

thatthechosekeyisexceptional.Ifit’sconceivablethattworecords(past,present,

orfuture)havethesamequalityforaproperty,don’tutilizethatcharacteristicas

anessentialkey.Countingkeyfieldsfromanothertabletoformaconnection

betweentablesisknownasaremotekeyrelationship,similartoasupervisorto

workersoraclienttoabuy.

Sinceyouhaveseparatetablesthatstorerelatedinformation,youhavetoconsider

thequantityofthingsineverytablethatidentifieswiththingsindifferenttables.

RelationshipTypes

Databasesconnectionsarequantifiedwiththeaccompanyingclassifications:

•One-to-oneconnections

•One-to-numerousconnections

•Many-to-numerousconnections

We’lltalkabouteachoftheseconnectionsandgiveasample.Ifyouthinkabouta

familystructurewhenconsideringconnections,you’reontopofthings.Atthe

Page 135: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

pointwhenyouinvestenergyalonewithoneparent,thatisaspecifickindof

relationship;whenyouinvestenergywithbothyourparents,thatisanother.If

yougetasignificantaccompliceandeveryoneofyou—yourparents,you,andyour

accomplice—dosomethingtogether,thatisanotherrelationship.Thisis

indistinguishabletothebasinsimilarity.Allthosedifferentsortsofconnections

aresimilartospecificcansthatholdtheflowofyourconnections.Inthedatabase

world,thisistheinformationyou’vemade.

One-on-onerelationships

Inaone-on-onerelationship,eachitemisidentifiedwithoneandoneandonly

otherthing.Withintheinstanceofanonlinebookshop,acoordinated

relationshipexistsbetweenclientsandtheirdeliveryaddresses.Everyclientmust

havepreciselyoneshippingaddress.

Standardization

Contemplatingabouthowyourinformationisconnectedandthemosteffective

approachtoarrangeitiscalledstandardization.Standardizationofinformationis

breakingitseparatedinlightofthecoherentconnectionstominimizethe

duplicationofinformation.Forthemostpart,copiedinformationsquandersspace

andmakesupkeepanissue.Shouldyouchangedatathatiscopied,there’sthe

chancethatyoumissapartanddangerirregularitiesinyourdatabase.It’s

conceivabletohavealotofsomethingtobethankfulfor,however;databases

settingeverypieceofinformationintheirowntableswouldtakeanexcessive

amountofhandlingtime,andquestionswouldbeconvoluted.Discovering

equalizationinthemiddleofistheobjective.Whilethetelephonedirectory

illustrationisextremelybasic,thesortofinformationthatyoupreparewithasite

pagecanadvantageincrediblyfromintelligentlygatheringrelatedinformation.

Weshouldproceedwiththeonlinebookshopsample.Thesiteneedstostay

informedconcerningtheclient’sinformation,includinglogin,address,and

telephonenumber,andinadditiondataaboutthebooks,includingthetitle,

writer,numberofpages,andwheneverytitlewasobtained.Beginbyputtingthe

greaterpartofthisdatainonetable.Whilejoiningtheinformationintoonetable

mayappearlikeasmartthought,itsquandersspaceinthedatabaseandmakes

overhaulingtheinformationrepetitive.Alltheclientinformationisrehashedfor

everybuy.Abookisconstrainedtojusttwowriters.Inthiscase,we’reutilizing

booksthathavetwowritersratherthanonlyone.Also,iftheclientmoves,his

Page 136: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

locationchanges,andeachofhisentrancesinthetablemustberedesigned.

TypesofNormalization

Tostandardizeadatabase,beginwiththemostessentialguidelinesof

standardizationandmoveforwardregulated.Theprogressionsofstandardization

areinthreestages,calledstructures.

Theprimarystep,calledFirstNormalForm(1NForFNF),mustbedonebefore

thesecondtypicalstructure.Inlikemanner,thethirdordinarystructurecan’tbe

finishedbeforethesecond.Thestandardizationprocedureincludesgettingyour

informationintosimilaritywiththethreedynamictypicalstructures.

√ FirstNormalForm

ForyourdatabasetobeinFirstNormalForm,itmustfulfillthreenecessities.No

tablemayhaverehashingsectionsthatcontainthesamesortofinformation,and

allsegmentsmustcontainstandoutworth.Theremustbeanessentialkeythat

exceptionallycharacterizescolumns.Itcanbeonesectionorafewsegments,

contingentuponwhatnumberofsegmentsareexpectedtoextraordinarilyidentify

columns.

√ SecondNormalForm

Whilethefirstordinarystructuremanagesrepetitionofinformationoveraflat

column,theSecondNormalForm(or2NF)arrangementswithrepetitionof

informationinverticalsegments.

Ordinarystructuresaredynamic.ToaccomplishSecondNormalForm,your

tablesmustasofnowbeinFirstNormalForm.Foradatabasetabletobein

SecondNormalStructure,youmustidentifyanysegmentsthatrehashtheir

qualitiesovernumerouscolumns.Thosesegmentsshouldbesetintheirowntable

andreferencedbyakeyesteeminthefirsttable.Anotherstateofmindofthisisif

therearepropertiesinthetablethataren’tsubjecttotheessentialkey.

√ ThirdNormalForm

Ifyou’vetakenaftertheFirstandSecondNormalFormprocess,youshouldnot

havetodoanythingwithyourdatabasetofulfilltheThirdNormalForm(or3NF)

principles.InThirdNormalForm,you’researchingforinformationinyourtables

thatisnotcompletelysubordinateontheessentialkey,yetreliantonanother

esteeminthetable.Wherethisappliestoyourtablesisn’tinstantlyclear.InTable

Page 137: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

8-8,thepartsofthelocationscanbeconsideredasnotbeingstraightforwardly

identifiedwiththeclient.Theroadaddressdependsonthepostaldivision,the

postaldivisiononthecity,lastly,thecityonthestate.TheThirdNormalForm

obligesthateachofthesebesplitoutintoisolatedtables.

Asyoumayhaveseen,theThirdNormalFormuprootsmuchmoreinformation

repetition,bethatasitmay,attheexpenseofeffortlessnessandexecution.Inthis

illustration,doyoutrulyexpectthecityandroadnamestochangefrequently?In

thiscircumstance,theThirdOrdinaryFormstillforestallsincorrectspellingofcity

androadnames.Sinceit’syourdatabase,yousettleonthelevelofharmonyinthe

middleofstandardizationandthepaceoreffortlessnessofyourdatabase.

Sincewe’vesecuredtheimportantpointsofhowyourinformationislaidout,we

candiveintothesubtleelementsofhowsegmentsarecharacterized.

ColumnDataTypes

Despitethefactthatdatabasesstorethesamedatathatyougatherandprocessin

PHP,databasesneedfieldstobesettospecificsortsofinformationwhenthey’re

made.

Keepinmind,PHPisn’tstronglytyped,howevermostdatabasesare!

Page 138: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

10.2BackingUpandRestoringData

Adatatypeistheclassificationofaspecifickindofdata.Whenyouread,you’re

usedtotraditions,forexample,images,letters,andnumbers.Thusly,it’ssimple

torecognizedifferentsortsofinformationinlightofthefactthatyouutilize

imagesalongwithnumbersandletters.Youcantellinitiallywhetheranumberis

arate,aperiod,orameasureofcash.Theimagesthathelpyoutocomprehenda

rate,time,ormeasureofcasharethatinformation’ssort.Adatabaseusesinside

codestostayinformedregardingthedifferentsortsofinformationitforms.

Numerousprogramminglanguagesrequirethesoftwaredesignertoannouncethe

datatypeofeachinformationobject,andmostdatabaseframeworksrequirethe

clienttospecifythesortofeveryinformationfield.Theaccessibleinformation

sortsfluctuatefromoneprogrammingdialecttoanother,andfromonedatabase

applicationtoanother.Bethatasitmay,thethreefundamentalsortsof

information—numbers,dates/times,andstrings—existinsomestructure.

ThenumericIDfields,consolidatedwithawellspringofextraordinarynumbers,

giveamethodforensuringthatthekeyfieldisspecial.Specifyingthe

auto_incrementdecisivewordatthepointwhenmakingasectionisanincredible

approachtoproduceanoneofakindIDforasegment.Forcase,iftherearetwo

creatorswiththenameJohnSmith,andyouutilizetheirnamesasakey,you’d

haveanissuestayinginformedregardingwhichJohnSmithyou’reutilizing.

Keepingkeysoneofakindisacriticalpieceofverifyingyouhavetheright

informationinyourdatabase.

BackingupandRestoringData

Indeed,eventhebest-keptupdatabasesonceinawhilegetsproblems.Tool

failures,specifically,cantrulydestroyintoyoursitepages.Sinceyou’reusinga

database,simplymovingdownthedocuments(HTML,PHP,andpictures)on

yourwebserverisn’tsufficient.There’snothingmoreterriblethanadvisingyour

webclientsthattheyneedtoreturndata,forexample,theirrecords,orneedingto

reproduceyourlistthings.Havingacompletereinforcementcanhavetheeffect

between60minutesofdowntimeandneedingtorehash.

DuplicatingDatabaseFiles

YoucanlikewisedoastraightforwarddocumentreinforcementofyourMySQL

Page 139: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

database’sdatafiles,inthesamewaythatyoucangodownyourHTMLandPHP

documents.Ifyoucangodowndocuments,youcanmovedowntheMySQL

databasedocuments.

Wedon’tprescribethisstrategyformovingadatabasestartingwithonemachine

thenontothenextserver,sincedifferentvariantsofMySQLmayanticipatethat

thesedocumentswillbeinadifferentdesign.MySQLstoresitsdatafilesinan

exceptionalinformationregistrythatisnormallysituatedinC:\Program

Files\MySQL\MySQLServer4.1\data\[database_name]onWindowsand

in/var/lib/mysqlonUnixvariations,forexample,LinuxandMacOSX.Close

downtheMySQLbenefitbeforedoingarecordduplicatereinforcementtoensure

thatalldocumentsarefromthesamepointintimewhiledoingyour

reinforcement.

TocompletelymovedownandrestoreaMySQLdatabaseutilizingyourcurrent

datafiles,allthedocumentsmustbesupplantedinthesameregistryfromwhich

theywerewentdown.Atthatpointthedatabasemustberestarted.

ThemysqldumpCommand

It’sidealtoutilizetheMySQLcommandlineformakingcompletedatabase

reinforcements.Thesameinstrumentsyou’llusetogodownandrestorecan

likewisebeutilizedtochangestagesormoveyourdatabasestartingwithone

serverthenontothenext;mysqldumpmakesacontentdocumentcontainingthe

SQLstatementsneededtoremakethedatabaseobjectsandsupplementthe

information.Themysqldumpchargeisopenfromthesummonlineandtakes

parametersforgoingdownasolitarytable,asolitarydatabase,oreverything.The

order’ssentencestructureis:

mysqldump-uclient-pobjects_to_backup

Themysqldumpcommandcreatesthereinforcementoutputtostandardout

(whichbydefaultjustprintstothescreen).Specifyaclientwhohasadmittanceto

theobjectyouneedtogodown.Youwillbeincitedfortherelatedwatchwordfor

thatclient.

Divertthisoutputtoadocumentutilizingthemoreprominentthan(>)character

tookafterbyafilename.

Backingup

Page 140: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

We’regoingtodemonstratetoyouthechargestogodownadatabasecalledstore

fromtheshellbrief.

mysqldump-uroot-pstore>my_backup_of_store.sql

Thistellsmysqldumptosignintothedatabaseastherootclientandtogodown

thestoredatabase.Youwillbeincitedfortherootwatchwordthatyouchoseamid

establishment.Theoutputofthecommandisputinarecordcalled

my_backup_of_store.sqlwiththeassistanceofthesidetrackcharacter,otherwise

calledthemoreprominentthanimage(>).

RestoringaMySQLbackup

Theupliftingnewsisthatit’snotdifficulttoreproduceyourdatabasefroma

mysqldumprecord.ThesubstancesofthebackuprecordareessentiallySQL

statementswhat’smore,canthuslybepreparedbytheMySQLchargeline

customertorestorethemoveddowninformation.

Ifyoudidareinforcementofyourdatabaseutilizingmysqldump-all-databasesto

arecordcalled

my_backup.sql,youcouldrestoreyourdatabase:

mysql-uroot-p<my_backup.sql

Ifyoudidaparticularreinforcementofoneandonlydatabase,it’ssomemore

intricate.Torestorethatkindofreinforcementrecord,utilizethe-Dchargeline

switch:

mysql-uroot-p-Dstore<my_backup.sql

Sinceyouknowhowtorestoredefaultdumprecords,wecanproceedonwardto

somedifferentapplicationswithrespecttosendingoutandimporting

information.

Workingwithotherformats

AlbeitworkingwithSQL-basedrecordsisadvantageous,theremaybetimeswhen

youneedtospareyourinformationindifferentconfigurations.Caseinpoint,a

typicalstrategyforspeakingtoarundownofinformationisinCSV(comma-

isolatedqualities)position.Themysqldumpsummonunderpinsthis

configuration.Youshoulddonothingmorethanspecifythe-no-createinfo,-tab,

furthermore,-fields-terminatedbyarguments:

Page 141: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

mysqldump-uroot-p-no-makedata-tab=/home/jon-fields-ended

by=’,’store

Thistellssmysqldumptoproduceseparatedocumentsforeverytableinthestore

database.

They’llallbeputinthecatalog/home/jon.Everydocument’snamewillbethe

nameofthetablethatisbeingsentout.Everydocumentcontainstherecordsin

theseparatetableisolatedbythecommacharacter(,)thatwasspecifiedonthe

orderline.

Themysqlimportcommand

Whenyou’resettingupyourdatabase,youmayneedtoacquireinformationfrom

anotherdatabaseoraspreadsheetinCSVposition.Forinstance,ifyou’reputting

forthbooksfordeal,youmaygetthecurrentindexofbooks.Case8-2

demonstratesthebooktitlesinCSVdesign.

ToimporttheinformationshowedinExample8-2,utilizationthemysqlimport

summon:

mysqlimport-uroot-p-fields-endedby=’,’storebooks.txt

Thefundamentalbitofthefilename(excludingthewayordocument

augmentation)decidesthenameofthetable.Inthepastsample,thetablenameis

books.Thetablemustasofnowexist,oralapseshows.Anothervaluableessential

wordisENCLOSEDBYroast;,whichpermitsyoutospecifycharacters,for

example,twofoldquotes(“)thatencaseeveryfieldintherecord.Thisisvaluable

forstayingawayfromtheproblemwithabooktitlelikeExemplaryShell

Scripting,SecondEdition,whichwouldsomehowbringaboutmysqlimportto

processtheSecondEditionsegmentofthetitleasthebeginofthefollowingfield.

Bestbackuppractices

Contingentuponhowbasicyourinformationisandhowregularlyittransforms,

youcanfocushowregularlytobackitup.Generallyspeaking,weekbyweek,bi-

weekbyweek,andmonthtomontharethemostwidelyrecognizedplans.Ifyour

businessistotallyreliantonyourdatabase,yououghttodoaweekafterweek,if

notdaybyday,reinforcementplan.Additionally,keepingaduplicateofthe

informationinadifferentareaisasmartthoughtintheoccasionofhugescale

catastrophes,forexample,aflame.Acustomerofourownkeepsbi-monthto

Page 142: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

monthreinforcementsinaflameresistantsafeattheworkplace,thoughanother

customersendstheinformationtoareinforcementadministration.A

reinforcementadministrationcanutilizephysicalharddrives,tapes,orCDs,or

cansignintoyourserverandperformthereinforcementelectronically.

Page 143: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

10.3AdvancedSQL

Inthissegment,we’llpresentdatabaseideasthat,whilenotentirelyfundamental

forbuildingupyoursites,canenhanceexecutionandmakeyourinquiriesmore

adaptable.

Indexes

Recordsworkthesamewaythatafileofabookmeetsexpectations.Ifyouwereto

searchforthemagicword“MakeTABLE”withoutafile,you’dhavetoinvesta

greatdealofenergylookingoverthepagesofthebooksearchingforanareathat

mayberelevant.Thenyou’dneedtocheckthewholesegment.Thisabsolutely

isn’taneffectiveutilizationofyourtimeorthedatabaseengine’s.The

arrangementisalist.

Theinformationinalistissortedandcomposedtomakediscoveringaspecific

esteemasbriskaswouldbeprudent.Sincethequalitiesaresorted,ifyou’re

searchingforsomethingspecific,thedatabasecanquitlookingwhenitdiscoversa

qualitybiggerthantheitemforwhichyou’relooking.

Youconfrontthesameissuesasabookdoes,however.Ifarecordisso

extraordinary,whynotrecordeverything?Therearevariousreasons:

•There’sjustalimitedamountofspaceaccessible.

•Whencomposingbooks,itgetstobeineffectivetoproduceandkeepupan

enormous,widelyinclusiveindex.

•Toomuchinformationinthefileimpliesittakesmoretimetoperusethefile

whenselectinginformation.

Inthisway,someinsightfulchoicesaboutwhichfieldstofileinyourtablesmust

bemade.Everyfileobligesitsownparticulardatafileforcapacity,whichcan

includeatouchofpreparingtimewhenthesubstanceofanorderedfieldchanges

inthedatabase.

Whenindexedareused

IfyoudoabasicSELECTstatementwithoutaWHEREprovision,afilewon’tbe

utilized.

Therearethreenoteworthyzoneswherealistcanbeused:

Page 144: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

InaWHEREclause

Forinstance,theinquirySELECT*FROMcreatorsWHEREcreator=‘Ellen

Siever’;wouldutilizearecordonthecreatorsectionifit’saccessible.

InanORDERBYclause

Forinstance,theinquirySELECT*FROMcontactsORDERBYcreator;would

utilizeanrecordonthecreatorsegmentifit’saccessible.

InMINandMAXclause

Forinstance,thequestionwouldutilizealistifthesegmentthatisspecifiedinthe

MINorMAXfunctionhasarecord.

Simplyremember,filesmustbedefinedbeforetheycanbeused.

Wheretospecifytheindex

DatabaserecordscanbespecifiedasacomponentoftheCREATETABLE

command,ortheycanbeaddedtoacurrenttablebyutilizingextraordinarySQL

summons.IfthelistismadeasamajoraspectoftheCREATETABLEsummon,

it’sspecifiedtowardtheendofthecodepiece:

UNIQUEauthind(creator)

TheUNIQUEcommandmakesalistonthecreatornamefield.Thenagain,notall

listsareoneofakind.

Multicolumnindexes

It’sadditionallyfeasibletomakeMySQLliststhatusemorethanonesection.A

multicolumnoneofakindlistguaranteesthatthemixofsectionqualitiesis

remarkable.

Thebestsectionstolistarethosethatarepronetobeutilizedasapartofthe

WHEREstatement,particularlyifyourealizethatcertainmixesofkeyswillbe

utilized.Thosearegreatsectionstoaddtoamulticolumnlist.Requestthe

sectionsinamulticolumnrecordwiththegoalthatsectionsutilizedeverynow

andagainstartthingsout.MySQLutilizesamulticolumnfiletoacceleratean

inquiryregardlessofthefactthatjustthefirstestimationofthelistisutilized.

Essentialfilesareadditionallynovel.Standoutessentialfileispermittedpertable.

Bethatasitmay,youcanhavethesamenumberofspecialfilesasyourheart

wants.

Page 145: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

We’regoingtodoaninquirywithaspecificWHEREcondition,andafterward

utilizeEXPLAINtogetinsightsabouthowitwaspreparedbyMySQL:

SELECT*FROMcreatorsWHEREcreator=‘ArnoldRobbins’;

TheEXPLAINoutputgivesanabundanceofdataabouthowMySQLpreparedthe

question.

Ittellsyou:

•Thatyou’reutilizingthecreatorstable.

•ThequestionsortisALL,soeveryrecordisfilteredtocheckfortherightesteem.

•Thepossible_keysisNULLinlightofthefactthatnorecordmatches.

•ThekeyutilizedbythisquestionisasofnowNULL.

•Thekey_lenisthekeylength;asofnowNULL,asnokeywasutilized.

•Therefsectionshowswhichsegmentsorconstantsareutilizedwiththekey;at

presentNULL.

•Thequantityofcolumnsthatmustbelookedthrough.

Noticethatalargenumberofthequalitieshavechangedwithrespecttothe

indexing:

•refimpliesthatlineswithcoordinatinglistqualitiesarereadfromthistablefor

matches.

•possible_keysshowsaconceivablekeyofauthind.

•keyshowsthattheauthindkeywasutilized.

•key_lenshowsthelengthofthekeyas126.

•refletsyouknowthataconsistentkeyisbeingutilized.

•columnsdemonstratethatonelinewassought,whichisagreatdealnotexactly

sometimerecently.

Thecorrelationdemonstratesthataddingtheindexsparesagreatdealof

processingtimeevenforlittletables.

SelectingwiththeLEFTJOINONClause

We’vetalkedaboutperformingjoinsinourSELECTstatementsutilizingthe

WHEREprovision,bethatasitmay,there’sanotherapproachtojointables.

Page 146: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

RatherthanutilizingtheWHEREpivotalword,LEFTJOINONcanbeutilizedto

performleftorexternaljoin.Aleftjoinessentiallypermitsyoutoinquirytwo

tablesthatareconnectedtogetherbyarelationship,yetpermitsoneofthetables

toreturnlinesregardlessofthepossibilitythatthereisn’tacoordinatinglinein

theothertable.Utilizingthebookshoptablesasanillustration,youmayneedto

makeaninquirythatprofitsclientsandtheirbuys,additionallyrecordsclients

whohaveyettobuyanything.

Usingthepunctuation:

SELECTfieldsFROMleft_tableLEFTJOINright_tableONleft_table.field_id=

right_

table.field_id;yourobjectivecouldberefinedlikethis:

SELECT*FROMclientsLEFTJOINbuysONusers.user_id=

purchases.user_id;

Ifyou’dliketoattemptthisinquiry,you’llhavetomaketheclientstableand

includesomeinformation:

MakeTABLEclients(

user_idint(11)NOTNULLauto_increment,

first_namevarchar(100)defaultNULL,

last_namevarchar(100)defaultNULL,

usernamevarchar(45)defaultNULL,

secretkeyvarchar(32)defaultNULL,

EssentialKEY(user_id)

);

EmbedINTOclientsVALUES

(1,’Michele’,’Davis’,’mdavis’,NULL),(2,’Jon’,’Phillips’,’jphillips’,NULL);

Whiledoinganordinarydatabasequerythatconnectionstwotables,ifbothtables

don’tincorporatethekeyqualitiesforthefieldbeingjoined,nothingisreturned

forthepassage.

UsingDatabaseFunctions

Page 147: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

MuchthesameastherearefunctionsinPHP;youcanlikewiseutilizefunctions

insideofyourMySQLquestions.We’lltalkaboutafewclassificationsoffunctions,

beginningwithstringfunctions.

Theotherrealclassificationsyou’llfindoutaboutaredateandtimemodification

functions.

Stringfunctions

Sinceyou’llasoftenaspossibleworkwithstrings,MySQLgivesnumerous

functionstodoingamixedbagofundertakings.You’llforthemostpartutilizethe

stringfunctionswithinformationthatisbeingreturnedfromquestion.

Nonetheless,it’sconceivabletoutilizethemwithoutnotwithstandingreferencing

atable.

Concatenation.Muchthesameastheprocedureofassemblingstringswiththe

PHPspotoperator

(.),whichisaperiod,MySQLcangluetogetherstringsfromdatafieldswiththe

CONCATfunction.

Caseinpoint,ifyouneedtogivebackasolitaryfieldthatjoinsthetitlewiththe

numberofpages,youcouldutilizeCONCAT.

Exchanges

Exchangescompeldifferentchangestoadatabasetobedealtwithasasolitary

unitofwork.Eitherthegreaterpartsoftheprogressionsareacknowledgedorthey

arealldiscarded.Noothersessioncangettoatablewhileyouhaveanexchange

transparentrolledoutimprovementstothattable.Inyoursession,youquicklysee

anyprogressionsmadetotheinformationifyouselectthesameinformationafter

anupgrade.

Ifyou’reutilizinganexchangefitstockpilingmotor,forexample,InnoDBorBDB,

youmayutilizethebeginexchangesummontostartanexchange.Theexchangeis

finishedwhenyoueitherconferorrollbackyourprogressions.Twoorderscontrol

finishingyourexchange.Theconferordersparestheprogressionstothedatabase.

Therollbackorderforsakestheprogressions.

Case8-19makesanexchangeskilledtable,embedsinformation,beginsan

exchange,erasesinformation,andmovesbackanexchange.

Sincetheexchangewasmovedback,youcanevennowselecttheinformation:

Page 148: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

SELECT*FROMbooks_innodbWHERE(title_id=1ORtitle_id=2);

Thisprofitstheaccompanying:

+-+--+-+

|title_id|title|pages|

+-+--+-+

|1|LinuxinaNutshell|476|

|2|ClassicShellScripting|558|

+-+--+-+

2columnsinset(0.05sec)

Sample8-19.Utilizinganexchange

MakeTABLE`books_innodb`(

`title_id`int(11)NOTNULLauto_increment,

`title`varchar(150)defaultNULL,

`pages`int(11)defaultNULL,

EssentialKEY(`title_id`)

)ENGINE=InnoDBDEFAULTCHARSET=latin1;

EmbedINTO`books_innodb`(`title_id`,`title`,`pages`)VALUES

(1,‘LinuxinaNutshell’,476),

(2,‘ExemplaryShellScripting’,558);

beginexchange;

erasefrombooks_innodbwheretitle_id=1;

erasefrombooks_innodbwheretitle_id=2;.

Page 149: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

CHAPTER11:GETTINGPHPTOTALKTOMYSQLNowthatyou’reopentoutilizingtheMySQLcustomerdevicestocontrol

informationinthedatabase,youcanstartutilizingPHPtoshowandmodify

informationfromthedatabase.

PHPhasstandardfunctionsforworkingwiththedatabase.

Inthefirstplace,we’regoingtotalkaboutPHP’sinherentdatabasefunctions.

We’lllikewisedemonstratetoyouthemosteffectivemethodtoutilizeThePHP

ExtensionandApplicationRepository(PEAR)databasefunctionsthatgivethe

capacitytoutilizethesamefunctionstogettoanybolstereddatabase.Thiskindof

adaptabilityoriginatesfromaprocedurecalleddeliberation.Inprogramming

interfaces,reflectionsimplifiesanintricateconnection.Itlivesuptoexpectations

byuprootinganyunimportantpartsofthecollaboration,permittingyoutofocus

ontheessentialparts.PEAR’sDBclassesareonesuchdatabaseinterface

reflection.

Page 150: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

11.1Theprocess

Thedatayouhavetosignintoadatabaseisdecreasedtotheabsoluteminimum.

ThisstandardarrangementpermitsyoutocooperatewithMySQL,andinaddition

differentdatabasesutilizingthesamefunctions.Soalso,otherMySQL-specific

functionsaresupplantedwithnonspecificonesthatknowhowtoconversewith

numerousdatabases.Caseinpoint,the

MySQL-specificinterfacefunctionis:

mysql_connect($db_host,$db_username,$db_password);

versusPEAR’sDBinterfacefunction:

$connection=

DB::connect(“mysql://$db_username:$db_password@$db_host/$db_database”);

Thesameessentialdataisavailableinbothcharges,yetthePEARfunction

additionallyspecifiesthesortofdatabasestowhichtojoin.Youcanjoinwith

MySQLontheotherhandotheruphelddatabases.We’llexaminebothassociation

techniquesinpointofinterest.

Inthissection,you’llfigureouthowtounitewithaMySQLserverfromPHP,how

toutilizePHPtogettoandrecoverputawayinformation,andhowtoaccurately

showdatatotheclient.

TheProcess

Theessentialstridesofperforminganinquiry,whetherutilizingthemysqlorder

lineapparatusor

PHP,arethesame:

•Connecttothedatabase.

•Selectthedatabasetoutilize.

•BuildaSELECTstatement.

•Performthequestion.

•Displaytheoutcomes.

We’llstrollthrougheachoftheseprogressionsforbothplainPHPandPEAR

functions.

Page 151: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

Assets

AtthepointwhenassociatingwithaMySQLdatabase,youwillutilizetwonew

assets.Theprincipalistheconnectionidentifierthatholdsthegreaterpartofthe

dataimportanttoassociatewiththedatabaseforadynamicassociation.Theother

assetistheoutcomesasset.Itcontainsalldataneededtorecoverresultsfroma

dynamicdatabasequestion’soutcomeset.

You’llbemakingandallocatingbothassetsinthispart.

QueryingtheDatabasewithPHPFunctions

Inthisarea,weacquainthowwithassociatewithaMySQLdatabasewithPHP.

It’strulybasic,andwe’llstartinstantlywithillustrations,howeverweoughtto

speakquicklyaboutwhatreallyhappens.Whenyouhaveagoatjoiningwitha

MySQLdatabase,theMySQLservervalidatesyouinviewofyourusernameand

secretword.PHPhandlesunitingtothedatabaseforyou,anditpermitsyouto

beginperformingquestionsandgatheringinformationquickly.

AsinChapter8,we’llrequirethesamebitsofdatatoassociatewiththedatabase:

•TheIPlocationofthedatabaseserver

•Thenameofthedatabase

•Theusername

•Thesecretword

Beforeproceedingonward,verifyyoucansignintoyourdatabaseutilizingthe

MySQLchargelinecustomer.

Figure9-1showshowtheprogressionsofthedatabasecollaborationidentifywith

thetwosortsofassets.BuildingtheSELECTstatementhappensbeforethethird

functioncall,yetitisnotindicated.It’sfinishedwithplainPHPcode,nota

MySQL-specificPHPfunction.

Page 152: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

11.2QueryingtheDatabasewithPHPFunctions

Theprincipalthingyouhavetodoisassociatewiththedatabaseandcheckto

verifythere’sanassociation.Countingthedocumentthatyousetuptostoreyour

associationdatapermitsyoutoutilizethevariablesratherthanhardcoded

qualitieswhenyoucallthe

mysql_connectfunction,asindicatedinExample9-4.We’reamassingone

document,db_test.php,byincludingthesecodepieces.

Themysql_connectfunctiontakesthedatabasehave,username,andsecretword

asparameters.Iftheassociationiseffective,aconnectiontoadatabaseis

returned.FALSEisreturnedifanassociationcan’tbemade.Checkthearrival

qualityfromthefunctiontoverifythere’sanassociation.Ifthere’sanissue,for

example,aninaccuratesecretkey,printoutawellmanneredcautioningandthe

explanationbehindthesliputilizingmysql_error.

Introducing

PEARutilizesaPackageManagerthatregulateswhichPEARhighlightsyou

introduce.WhetheryouhavetointroducethePackageManagerreliesonupon

whichformofPHPyouintroduced.Ifyou’rerunningPHP4.3.0ormoreupto

date,it’snowintroduced.Ifyou’rerunningPHP5.0,PEARhasbeensplitoutinto

adifferentbundle.TheDBbundlethatyou’rekeenonisdiscretionaryhowever

introducedasamatterofcoursewiththePackageManager.Soifyouhavethe

PackageManager,you’regoodtogo.

Unix

YoucanintroducethePackageManageronaUnixsystembyexecutingthe

accompanyingfromtheshell(chargeline)brief:

lynx-sourcehttp://go-pear.org/|php

Thistakestheoutputofthego-pear.orgsite(whichisreallythesourcePHPcode)

tointroducePEARandpassesitalongtothephpchargeforexecution.

Windows

ThePHP5establishmentincorporatesthePEARestablishmentscriptas

C:\php\go-pear.bat.Incaseyoudidn’tintroduceeveryoneofthedocumentsin

Chapter2,thumbsupandremoveallthePHPrecordstoC:/phpfromthecharge

Page 153: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

incite,andexecutethe.batrecord.IfyouintroducedPHPfromtheMSIinstaller,

youmayneedtoexecutetheaccompanyingratherthanthego-pear.batrecord:

phpgo-pear.phar

IfthePEARcatalogdoesnotexistsatallyou’llhavetore-runthePHPMSI

installer,selecttheChangealternative,andsetExtensionsandAdditionalitemsto

“Willbeintroducedonnearbycommute”beforerunninggo-pear.phar.

ThePEARinstallermakesadocumentcalledC:\php\PEAR_ENV.reg.Youhaveto

double-clicktosetupthePEARwaysintheregistry.Thisdocumentisdependent

uponwhichPEARformyouintroduced.Atthepointwhenthedialogseemsto

verifyyourdata,youwilladdthistotheregistryandsnapOK.

Youmayneedtoalterthephp.inidocumentsubsequenttorunningthis.bat

recordtoincludethePEARindextotheincorporateway.Line447ofphp.ininow

resemblesthis:

include_path=“.;c:\php\includes;c:\php\PEAR”

ApachemustberestartedbeforetheDBbundlecanbeutilized.

FacilitatedISP

MostISPshavePEARDBintroduced.RequestthatyourISPintroduceitifthey

haven’tasofnow.YoucantellwhetherPEARDBhasbeenintroducedby

attemptingthePHPcodeinSample9-8toseewhethertherequire_once

(‘DB.php’);linecausesamistakewhenthescriptisexecuted.

IncludingAdditionalPackages

Oncethatisfinished,youcangettothePEARPackageManagerbyenteringpear

atthesummonbrief.Includingnewmodulesisassimpleasexecutingpear

packagename.

Makinganassociateoccasion

TheDB.phprecordcharacterizesaclassofsortDB.AlludetoChapter5formore

dataonmeetingexpectationswithclassesandobjects.We’llbasicallybecalling

thestrategiesintheclass.TheDBclasshasajointechnique,whichwe’lluse

ratherthanouroldinterface

function,mysql_connect.Thetwofoldcolons(::)showthatwe’recallingthat

functionfromtheclassinline4:

Page 154: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

$connection=

DB::connect(“mysql://$db_username:$db_password@$db_host/$db_database”);

Whenyoucallthejoinfunction,itmakesanotherdatabaseassociationthatisput

awayinthevariable$connection.Thejoinfunctionendeavorstoassociatewith

thedatabasetakingintoaccountthejoinstringyouwenttoit.

Associatestring

Theassociatestringusesthisnewarrangementtospeaktothelogindatathatyou

effectivelysuppliedinisolatedfields:

dbtype://username:password@host/database

Thisorganizationmaylookwellknowntoyou,asit’sfundamentallythesameto

theunitestringforaWindowsrecordoffer.Theprimarypieceofthestringisthe

thingthattrulysetsthePEARfunctionsseparatedfromtheplainPHP.The

phptypefieldspecifiesthekindofdatabasetojoin.

Bolstereddatabasesincorporateibase,msql,mssql,mysql,oci8,odbc,pgsql,and

sybase.AllthatisneededforyourPHPpagetoworkwithadifferentkindof

databaseischangingthephptype!

Theusername,secretkey,host,anddatabaseoughttobenaturalfromthe

essentialPHPinterface.Justthesortofassociationisneeded.Bethatasitmay,

you’lltypicallyneedtospecifyallfields.

Afterthequalitiesfromdb_login.phpareincorporated,theinterfacestring

resemblesthetakingafter:

“mysql://test:test@localhost/test”

Iftheinterfacestrategyonline6wasfruitful,aDBobjectismade.Itcontainsthe

routinestogettothedatabaseandthegreaterpartofthedataaboutthecondition

ofthatdatabaseassociation.

Questioning

Oneofthetechniquesitcontainsiscalledinquiry.Thequestionstrategymeets

expectationssimplylikePHP’squestionfunctioninthatittakesaSQLstatement.

Page 155: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

CHAPTER12:WORKINGWITHFORMSHTMLstructuresgiveanapproachtosendsignificantinformationfromtheclient

totheserverwhereitcanbehandled.You’llbeutilizingaconsiderablemeasureof

thePHPdialectideasthatyoufoundoutaboutinthefirstalargeportionofthe

booktohandleandapprovethestructureinformation.

We’llstartbybuildingabasicshapeandfiguringouthowtogettothedatainits

fieldsafteraclient’saccommodation.We’llexaminethefundamentalsortsofinfo

gadgetsthatcanbesetonstructures,andalsoonconcealedqualities.Obviously,

thePHPcodewillbeblendedinwiththesecomponents.

Structuresworkinatwo-stageprocess.Thestructuremustbeexhibitedtothe

client.Hethenentersdataandpresentsthestructure.Eachstructurehasan

objectiveforwhatpagetoloadthatwilltransformtheinformationwhentheclient

submits.Frequently,thisisthesamedocumentthatinitiallycreatedthestructure.

ThePHPcodejustverifieswhetherthere’sclientdatastickingthesolicitationfor

thepagetofigureoutifthedocumentisbeingcalledtoproducethestructureor

procedureitsinformation.

Lookingadatabaseisfundamentalinawiderangeofsortsofutilizations.

Whetherit’slookingdiscussionposts,clients,orawebjournal,itcanmakea

client’slifemuchlessdemanding.Onadatabaselevel,therearelikewiseawide

rangeofapproachestoprocessaninquiryandbringbackresults.

Page 156: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

12.1BuildingaForm

Sinceyou’llrequireaspotfortheclienttoenterapursuitquestion,weshould

startbybuildingastructuretohandletheclient’sinformation.Eachstructure

musthavethesefundamentalparts:

•Theaccommodationsortcharacterizedwiththestrategymagicword

•Oneormoredatacomponentscharacterizedwiththeinformationtag

•Thedestinationtogotowhensubmittedcharacterizedwiththeactivitymagic

word

Weshouldmanufactureabasicstructurewithacontentinformationfieldcalled

huntandasubmitcatch,asindicatedinExample10-1.

PlacethecodeinExample10-1intoadocumentcalledsimple.phpinaweb-

availablecatalogonyourwebserver,forexample,therecordroot.Entirely

talking,structuresarecharacterizedsimplybyHTML,yetwe’reutilizingsome

PHPcodeonline6toreferencethe“PHP_SELF”componentoftheearthvariable

array“$_SERVER”.ThisgivesaalternateroutetothenameofthecurrentPHP

documentthathandlestheaccommodationofthestructureinformation.

TheforminExample10-1permitsyoutocatchthequeststringfromtheclientfor

aseek.Noticehowwewrappedanametagaroundtheinformationwherethe

contentwas;thismakesthestructuresimplertoutilize.TappingontheSearch:

messagenaturallysendsthecursortothehuntfield.Inline6,wesetthestructure

accommodationsystemtoGET.

Thisisdonetoguaranteethatclientscanbookmarktheirventuresandnotneedto

comebacktothepageandreappeartheirinformation.Line8doesthegreater

partoftheworkbycharacterizingthecontentfield.

Gettingtothesimple.phpdocumentfromyourprogramoughttocreatea

formsimilartoFigure10-1.It’snotawfullyhelpful,asanyworthyousubmitjust

bringsthesameshapebackoncemore,yetwe’lldealwiththat.

Page 157: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

Howthesampleformappearsinyourbrowser

DefaultValues

Atthepointwhenperformingquestsonadatabase,youmayneedtoreallyhave

somedefaultvaluesinyourstructures.Thisisvaluable,forinstance,forlooking

insideofacostrange.Theclientwouldn’tgenerallyliketoembedqualities,andit

makesitthatmuchlessdifficultatthepointwhenseeking.Ordinarily,thedefault

esteemforaformelementissituatedwiththeworthproperty;ontheotherhand,

thereisaspecialcaseforcheckboxesthatutilizationthecheckedcatchphrase.

TypesofInput

Therearevarioussortsofdata,sowhichonewoulditbeagoodideaforyouto

utilize?Radiocatches,checkboxes,content,data,contentterritories,buttons…oh

my!We’llportrayeachofourinfochoices.

√ Textboxes

Moreoftenthannotwhenmanaginginfofromaclient,youmayneedastringof

content.Acontentsortcomponentisutilizedtocatchthesestringsfromtheclient.

Thenamecreditisobligedtohandletheinfoafteraformsubmissionasit

specifieshowtoreferencethequality.Whenitshowsupintheprogram,thesize

parameterdecidesthelengthofthecontentbox.Themaxlengthparameter

decidesthemostextremenumberofcharacterstheclientcanputinthefield.The

linguisticstructureisasperthefollowing:

<inputtype=”text”name=”name”size=”displaysize”maxlength=”maxcharacters

permitted”/>

√ Checkboxes

Acheckboxishelpfulwhenyouneedtogiveclientsafewdifferentalternatives,

particularlywhenthey’repermittedtochooseeverydecisionseparately.Use

checkboxesjustwhenyouhaveacoupleofalternativestoprovideforaclient;

Page 158: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

generally,thereisadifferentkindofdatathatyouwouldneedtoutilize.Thisis

knownasaselect,whichwe’lldiscussinabit.Foracheckbox,settheinformation

sorttocheckbox.Thenameandworthpropertiesarelikewiseneeded.Iftheworth

issituatedtochecked,thecheckboxischeckedasamatterofcourse.

Notatallliketheearlierinformationsorts,hascheckboxgivenbackanarray.

Obviously,livinguptoexpectationswithdifferentqualitieswillbetalkedabout

laterinthispart.

Page 159: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

12.2Templates

Atwhateverpointyouaretakinginformationfromaclient,yououghttoacceptit.

Ifyoudonotaccepttheclient’sinformation,itcanbringaboutnumerousissues—

includingconceivablesecuritydangers.

Acceptingdataisnotmuddled.We’llgooverthemostwidelyrecognizedPHP

functionsthatareutilizedtodisinfectinformationfromclients.Accepting

checkboxes,radiocatches,andchoosesAcceptinginformationthatoriginates

fromcheckboxes;radiocatches,andchoosesissimplerthanacceptingfree

arrangementfields,forexample,contentboxesinlightofthefactthatthequality

oughttojustbeoneofthepredefinedqualities.Toguaranteethis,storethe

majorityofthealternativesinanarray,andverifytheclientinfoisapieceofthe

arraywhenyoupreparetheinformation.We’lltakeaganderatthecodefor

checkinginfofromasinglechoice(attheendoftheday,oneandonlycheckbox,

radiocatch,orotherdetermination).

QueryingtheDatabasewithFormData

Onceyou’veapprovedyourinformation,you’repreparedtobeginutilizingdata

fromthestructuresinyourdatabaseinquiries.Case10-11makesafunctioncalled

query_dbfromthecodeinChapter7forshowingcreatorswithachangetoline11

thatpermitscoordinatingthetitlewithaLIKEinquirycondition.LIKEandNOT

LIKEareforthemostpartutilizedwithstringsandconceivablywithspecialcases,

forexample,theunderscore(_)andthepercentsign(%).

•Theunderscore(_)matchesasolitarycharacter.

•Thepercentsign(%)matcheszeroormorecharacters.

InExample10-10,thefunctiontakesasolitaryparameterandhuntdownthe

specificbooktitleyou’rehopingtodiscover.

Sample10.10.Consolidatingstructurehandlinganddatabasequestioning

1<?php

2functionquery_db($qstring){

3include(‘db_login.php’);/associationsubtleelements

4require_once(‘DB.php’);/PEARDB

Page 160: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

5$connection=

DB::connect(“mysql://$db_username:$db_password@$db_host/$db_

database”);

7if(DB::isError($connection)){/checkforjoinmistakes

8kickthebucket(“Couldnotinterfacewiththedatabase:<br/>”.DB::

errorMessage($connection));

Formats

FormatsisolatetheHTMLcodethatcharacterizesthepresentationorlookofa

pagefromthePHPcodethatisinchargeofsocialeventtheinformation.Once

isolated,itgetstobelessdemandingforsomebodywithHTMLandmaybeCSS

learningtomodifythelayoutwithoutagonizingoverbreakingthePHPcode.

Moreover,thePHPcodecanconcentrateontheinformationasopposedto

becominginvolvedwithpresentationsubtleelements.

Therearedifferentpointsofinteresttoutilizinglayouts,aswell.Ifyoucommitan

errorinthelayout,theslipwillbeplainlycomebackfromthelayout.Thelayout

itselfcanforthemostpartbestackedintoawebprogramoragraphicalweb

advancementinstrument,forexample,Dreamweaver,sinceitlookslikethelast

conditionofthepagewhenhandled.Layoutsbackingextremelyessential

programmingelementsforutilizationwithpresentation,forexample,havingthe

capacitytotellwhetheranareaofapageoughttobeobvious.

Obviously,nothing’sideal;therearetwoorthreedrawbackstolayouts.Formats

expandthequantityofrecordstokeepup.Theyincludealittlemeasureof

additionalhandlingtime.Theylikewiseobligeintroducingthelayoutmotorand

settingupregistries.YoushouldberunninginanyeventPHPVersion4.0.6to

utilizeSmarty,afamousformatmotor.

FormatEngine

ThereareafewformatbundlesaccessibleontheInternet.Everyusesitsown

layoutmotortopreparetheformatsandmakethemaseffectiveascouldbe

expectedunderthecircumstances.Nomatterwhichformatmotoryouutilize,

you’llgenerallytakeafterthesamefundamentalsteps:

1.Recoveryourinformation.

2.Makecallstotheformatfunctionsforeveryqualitythatisutilizedasapart

Page 161: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

ofalayout.

3.Showtheformatutilizingthelayoutfunction.

We’llstrollthroughthisprocedurewithafewsamplesintheblinkofaneye.One

ofthemoreprominentlayoutmotorsaccessibleisSmarty,demonstratedlaterin

Figure10-16.Smartyhasnumerous,numerouselements;howeverwe’remost

concernedwiththefundamentallayoutmotorfunctionality.

Establishment

WhileintroducingSmartyisn’tasmindbogglingasintroducinganddesigning

Apache,PHP,what’smore,MySQL,regardlessitmeritssomeconsideration:

Applicationlevelindexes

ForeveryapplicationwithwhichyouwishtoutilizeSmarty,you’llhavetosetupa

setoffourindexes.Thefourindexesareforformats,assembledlayouts,reserved

layouts,anddesignrecords.Inspiteofthefactthatyoumaynotutilizethose

highlights,yououghttosetuptheindexesjustontheoffchancethatyoudo:

1.Makeanindexcalledmyapp/inyourarchiveroot.(Youcancallitwhatever

youneed,yetfortherestofthecontent,wewillalludetoitasmyapp/.)

2.Makearegistrynamedsmartyinsidethecatalogyousimplymade(myapp/

smarty).

3. In the smarty registry you simply made, make four more registries:

formats,templates_c,store,andconfig.Guaranteethatthewebserverwill

havecomposeaccesstothetemplates_candstoreindexesthatyoumadein

thepaststep.

YoushouldonlymakeadesignandaPHPfiletogiveitatry.

Page 162: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

CHAPTER13:PRACTICALPHPInthischapterwe’llstarttryingofthemoreregulartasksthatyou’llperformwhen

composingPHPprograms,forexample,workingwithstrings,andshowing

differentorganizationsforstrings,dates,andtimes.We’lladditionally

demonstratetoyouindustrystandardstoworkwithdocumentsthatyourPHP

programcreatesorperuses.What’smore,we’llgiveacaseofhowtoletaclient

transferadocumentandafterwardacceptitssubstancebeforemakingitopen.

Transferringdocumentsishelpfulyetcanbeasecurityhazardifrecordsaren’t

legitimatelyaccepted.

AtthepointwhenbuildingHTMLoutputforpages,weinvestaconsiderable

amountofenergyworkingwithstrings.PHPhasaricharrangementoffunctions

fordoingeveryoneoftheassignmentsyoumayneedtochangetheinstanceofa

string.Youlikewiseshouldhavethecapacitytoarrangementdatesandtimes.

Performinganykindofexpansionorsubtractionondates—onaccountof

characteristics,forexample,jumpalongtime—canrapidlygettobemuddled

withoutalittleassistancefromfunctionsspecificallyintendedtoworkwithdates.

Page 163: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

13.1StringFunctions

Sinceyou’reworkingwithessentiallytolanguagesthatbothhelpmanipulating

strings,you’llrequireknowledgeaboutstringfunctionsinPHPandinMySQL.

Youmightthinkthatitsmorepropertomodifyastringeitherinaquestionorin

PHPinviewofthespecificcircumstance.You’regoingtofindoutaboutthe

accompanyingstringoperations:

•Formattingstringsforshowcase

•Calculatingthelengthofastring

•Changingastring’scasetocapitalizedorlowercase

•Searchingforstringsinsideofstringsandgivingbackthepositionofthematch

•Returningonlyapartofastring,whichisasubstringWe’llbeginwitharranging

strings,sincethatwillhelpyouallthroughwhateverremainsofthesubjects.

FormattingStringsforDisplay

Inthisway,you’vebeenutilizingechoandprinttoshowstringswithoutmuch

modification.

You’llfindoutaroundtwofunctionscalledprintfandsprintf.Ifyou’rewellknown

withotherprogrammingdialects,forexample,C,you’llperceivethatthese

functionsworkthesamepathastheydoelsewhere.Trynottostressifyouhaven’t

utilizedthembefore—they’renotverydifficulttoworkwith.Themaindifference

betweenthetwoisthatprintfshowsanorganizedstringtotheoutputlikeprint

does,whilesprintfsparesthestringitmanufacturesasanotherstringwithaname

specifiedbyyou.

Usingprintf

Theprintffunctionlivesuptoexpectationsbytakingasitsfirstparameteran

extraordinarydesigningstring.Thearrangingstringworkslikeaformattodepict

howtoplugwhateverisleftoftheparametersintoonesubsequentstring.Youcan

specifysubtleelements,forexample,howtodesignnumbersinthestringorthe

cushioningofqualities.Everyparameterthatissetintothecomingaboutstring

hasaplaceholderinthedesigningstring.Caseinpoint,tooutputapaired

number.

Page 164: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

Cushioning

Youcanlikewisespecifycushioningforeveryfield.Toleftcushionafieldwith

zeros,putazeroafterthetransformationspecificationpercentsign(%)trailedby

thequantityofzerostocushionthesortspecifier,asdemonstratedinExample11-

4.Iftheoutputoftheparameteremploymentslessspacesthanthenumberyou

specify,zerosarefilledinontheleft.

Page 165: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

13.2Dateandtimefunctions

Someofthetimesyou’llneedtochangewhatnumberofdigitsshowsupaftera

decimalpointforagenuine(driftingpoint)number.Thisisparticularlygenuineif

youhavetoprintinmoneyposition.Tospecifythequantityofdigitstouseafter

thedecimalpoint,utilizeachangespecifiesthathasadecimalpointaftertherate

signtookafterbythenumberofdecimals.Caseinpoint,theaccompanyingcode

demonstratestoyoubestpracticestodoit:

%.number_of_decimals_to_displayf

DocumentManipulation

Theremaybetimeswhenyouwouldprefernottostoredatainadatabaseand

mayneedtoworkstraightforwardlywitharecord.Acaseisalogfilethattracks

whenyourapplicationcan’tjoinwiththedatabase.Itisdifficulttokeepthisdata

inthedatabaseinlightofthefactthatit’snotaccessibleatpreciselythetimeyou’d

requiretokeepintouchwithit.PHPgivesfunctionstorecordcontrolthatcan

performthefollowing:

•Checkthepresenceofarecord

•Createarecord

•Appendtoarecord

•Renamearecord

•Deletearecord

We’veofficiallytalkedabouttheincorporateandobligefunctionsforpullingdata

specificallyintoaPHPscript.Atthiscrossroads,we’llconcentrateonmeeting

expectationswithdocumentcontent.

FunctionsandPrecautions

Tocheckforthepresenceofadocument,utilizethefunctionfile_exists,which

takesthenameofthedocumenttocheckforitsparameter,asdemonstratedin

Example11-20.Iftherecordexists,itreturnsTRUE;else,itreturnsFALSE.

Asyouwouldexpect,therecorddoesexist:

Therecordexists.phpdoesexist.

Page 166: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

PHPgivesafewfunctionstoletyouknowaboutdifferentrecordproperties.PHP

hasthecapacitytoperuseinformationfrom,andcomposeinformationto,records

onyourframework.Ontheotherhand,itdoesn’tstopthere.Itaccompaniesafull-

highlighteddocumentand-catalogcontrolAPIthatpermitsyouto:

•Viewandmodifydocumentcharacteristics

•Readandrundowncatalogsubstance

•Alterdocumentconsents

•Retrievedocumentsubstanceintoanassortmentoflocalinformationstructures

•Searchfordocumentsinlightofspecificexamples

ThegreaterpartofthisdocumentcontrolthroughtheAPIisheartyandadaptable.

PHPhasaconsiderablemeasureofextraordinaryorders,includingallthe

documentcontrolones.

Page 167: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

13.3FileManipulation

Sinceyouknowadocumentexists,youmaybelieveyou’redone,yetyou’remost

certainlynot.Justsincetherecordistheredoesn’tmeanyoucanread,compose,

orexecuteit.Tocheckfortheseproperties,useis_readabletocheckforread

access,is_writabletocheckforcomposeaccess,andis_executabletocheckforthe

capacitytoexecutethedocument.Everyfunctiontakesafilenameasits

parameter.Unlessyouknowtherecordisinthesamecatalogasyourscript,you

mustspecifyafullwaytotherecordinthefilename.Youcanuseconnectingto

putthewayandfilenametogether,asin:

$file_name=$path_to_file.$file_name_only;

URLWrappers

TwoURLconventionsthatPHPhasconstructedinforutilizationwiththefile

systemfunctionsincorporateopenandduplicate.Notwithstandingthesetwo

wrappers,asofPHP4.3.0,youcancomposeyourownparticularwrappers

utilizingaPHPscriptandstream_wrapper_register.Thedefaultwrapperis

record://,utilizedwithPHP,anditisthenearbyfilesystem.Ifyouspecifya

relativeway,whichisonethatdoesn’tstartwith/,\,\,oraWindowsdriveletter,

forexample,C://,thewaygaveappliesagainstthepresentworkingindex.

Generallythisistheplacethescriptlives,unlessobviouslyit’sbeenchanged.With

afewfunctions,forexample,fopenandfile_get_contents,include_pathcanbe

usedtohuntdownrelativewaystoo.

Page 168: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

13.4CallingSystemCalls

It’sagenuinelybasicprerequisiteforaPHP-basedsitetopermitdocument

transfers.Forsample,onawebjournalwebpage,aclientmayneedtotransfera

picturetorunwithhispost.

We’llstrollthroughtheprogressionstotransferadocumentonthegroundsthat

you’llbeplanningawebsiteinSection17.PHPpermitsyoutodothiswiththe

assistanceofstructuresdata.

Whenyouutilizethedocumenttransferformfield,thecustomer’sprogrampulls

uparecordchoicedialog,soyoudon’tneedtostressoverdoingthat.Thecodeto

incorporateinthedocumenttransferfieldis<inputtype=”file”name=”file”>.You

shouldlikewiseincludeenctype=“multipart/structure”tothestructuretag.This

permitsadocumenttobesentwiththeformsubmission.

Page 169: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

CHAPTER14:XHTMLSinceyou’vetakenintheestablishmentsofutilizingPHPandMySQLtoassemble

dynamicpages,takesoonerorlatertoinvestigatechangestotheHTMLmarkup

thatstructuresthepremiseofyourwebsitepages.You’llfindoutaboutXHTML,

whatitrequests,andwhyit’sworththeadditionalpushtocreate.Keepinmind

thatsoastocreatequalitywebcontentfromyourPHPscripts,themarkupmust

bebenchmarksconformant.ConsidertheXHTMLoutputasthecompleteditem

duringthetimespentaskingforapageafterPHPandadatabasefunctions

process.We’lladditionallyexamineapprovingtheXHTMLoutputthatyour

scriptsproducetogetanymistakes.

XHTMLremainsforExtensibleHyperTextMarkupLanguage.XHTMLisa

markupdialectthatislikeHTML,howeverwithastrictergrammar,inlightofthe

prerequisitesofXML.HTMLwasbasedonSGML,whichisadaptableyetcomplex

tohandle,also,XMLstrippeddownSGMLtomakeitsimplertotransformifa

touchlessadaptable.XHTMLlinguisticstructurelooksmuchlikeHTMLlanguage

structure,utilizingmoreprominentandnotasmuchassigns(<furthermore,>)

tocharacterizelabels,yethasmuchstricternecessitiesforhowthoselabelsare

conveyed.XHTMLrecordsthatmeetthosesyntacticnecessitiesarecalledvery

muchframed,whileXHTMLrecordsthatmeetthelinguisticstructureinaddition

totheauxiliaryprinciplescontainedintheDTDsarecalledsubstantial.XHTML

reportscanbehandlednaturallyutilizinganystandardXMLlibrary,whilemost

HTMLusageutilizeareallymercifulparsernormallymodifiedforHTML

preparing.YoucanconsiderXHTMLthecrossingpointofHTMLandXMLin

numerousregards,sinceit’sareformulationofthemtwo.Probablythesimplest

approachtoexhibitwhatchangesistoshowareportinHTMLanditsXHTML

equivalent.Tobeginwith,hereisasubstantialHTML4.0report:

What’schangedhere?

•There’sanotherXMLdeclarationattheabsolutebeginning,identifyingthe

reportasXML1.0,utilizingtheUTF-8characterencoding.Youcanskirtthis

totallyifyourarchiveutilizestheUTF-8encoding(orASCII,whichisasubset).

•TheDOCTYPEpresentationhaschangedmarginally.

•AlloftheHTMLmarkupispresentlyinlowercase.(TheXHTMLspecrequires

Page 170: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

lowercase.)

•Thehtmlcomponentnowcontainsaxmlnsproperty(characterizingtheXHTML

namespace,depictedlaterinthispart),andinadditionaxml:langpropertythat

supplementstheearlierlangqualityforXMLprocessors.

•The<BR>tagispresentlya<br/>tag,withthecut(/)towardtheend

demonstratingthatit’san“unfilledcomponent”andwon’thaveanendtag.

•There’sanothershuttingtag,</p>,whichfinishesthe<p>onthefirstlineinside

ofthebody.XHTMLdoesn’tgiveyouachancetohaveabegintagwithoutanend

tagunlessyouutilizethevoidcomponentdocumentationutilizedfor<br/>.In

spiteofthefactthatthisrecordistooshorttoshowalotofit,therequestof

openingandshuttinglabelslikewiseneedstobesymmetrical;<b><i>Thisis

strikingitalic</i></b>isfine,however<b><i>Thisisstrikingitalic</b></i>

isn’tright.Thismakesthearchivestructureunequivocalforanysystemthatneeds

tohandleormodifyit.

Aswe’llseelater,thereareacoupleofdifferentconfinements,yetthesearethe

keythingstolookfor.

Page 171: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

14.1WhyXHTML?

TheWorldWideWebConsortium(W3C)madeXHTMLforvariousreasons,

includingthefollowing:

•WebsubstanceisconveyedtoalargernumberofgadgetsthancustomaryPCs,

forexample,Blackberries,phones,andothercellphones.XML’smoretightly

languagestructureevacuatesonelayerofcomplexhandlingforthesegadgetsand

theirbackingframeworktohandle.

•DevelopersworkingwithDynamicHTMLandotherscriptinginnovationsfound

thatHTML’sadaptabilitysomeofthetimeimpliedthatthearchivestructuresthey

expectedtocontrollookedsomewhatdifferentthananticipated,nowandthen

indeed,evendifferentfrombrowsertoprogram.XHTML’smoretightlystructures

uproottheseambiguities.

•AsmorearchiveadministrationinstrumentsincludedXMLbacking,XHTML’s

XMLsimilaritymadeitsimpletoutilizetheseapparatusesonXHTMLwithno

tweaking.

•Onawidescale,XHTMLempowersmoreprominentconsistencyamongreports.

WhileXML’sstrictermistakecheckingmaysoundlikeaweight,itmakesitsimple

tospotandrightmistakes.

•Whileithasn’tdiscoveredmuchprogrambolster,theW3Cwastrustingthat

movingtoaXMLestablishmentwouldletdesignersmakecustomvocabulariesfor

blendingwiththeexcellentHTMLvocabulary.TheW3C’sownarrangements

includeddealwithsightandsound,design,andstructures.

•XHTMLcouldlikewisebeblendedintootherXMLvocabularies,makingit

simplertoreusethisbroadlycomprehendedvocabularyinnewsettings.

XML’ssuddennotorietydroveareevaluatingofwhyandhowHTMLwasutilized,

atminimuminsideofnormsbodies.Whiledifferentprogramsmovedtobolster

XMLandXHTMLtosomedegree,it’salongwayfrombeinganobligedpieceof

thewebimprovementtoolbox.TheW3CacknowledgedthefirstformofXHTML

onJanuary26,2000.TheexcellenceofXMListhatitobligesprogramstofizzle

whenexperiencingerroneouslymadeXML.ThismeansaXHTMLprogramcan

moreoftenthannotrunallthemoreeffortlesslyfurthermore,speedieronlittler

gadgetsthanonatantamountHTMLprogram.ItmoreoverurgesWebcreatorsto

Page 172: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

delivermoresteadyrecords.Whilestricterlapsecheckingmaysoundlikea

weight,theproposalforprogramstopostanlapseasopposedtoendeavorto

rendermistakenlyshapedsubstanceoughttodisposeoftheissuebydriving

creatorstoredresstheirerrors.

Page 173: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

14.2XHTMLandXMLNamespaces

XMLisfantasticallynonexclusive.Itcharacterizespunctuationandfundamental

structure,howeveritdoesn’tspecifymuchaboutinquiries,forexample,what

componentsandqualitiesoughttobenamed.Anyindividualwhoneedstomakea

XMLvocabularycandoassuchwithoutneedingtocontacttheW3Coranother

gaugesbody.Thismakesanissue:Titleinoneconnectionmaymeansomething

completelydifferentthanTitleinadifferentconnection.TheNamespacesinXML

specification(whichcanbefoundathttp://www.w3.org/TR/REC-xml-names/)

givesasystemthatdesignerscanusetoidentifyspecificvocabulariesutilizing

UniformResourceIdentifiers(URIs).URIsareablendofthewellknownUniform

ResourceLocators(URLs)andUniformAssetNames(URNs).Fromthepointof

viewofXMLnamespaces,URIsarehelpfulonthegroundsthattheyjoinan

effortlesslyutilizedgrammarwithathoughtofpossession.TheW3Cclaimsnames

thatbeginwithhttp://www.w3.org/,soitbodeswellforthemtoutilizethoseas

identifiers.Inplain-vanillaXHTMLwithnodifferentvocabulariesblendedin,the

namespaceisannouncedonthehtmlcomponentutilizingtheXHTMLproperty

xmlns.Caseinpoint:

<htmlxmlns=”http://www.w3.org/1999/xhtml”>

ThenamespaceURIhttp://www.w3.org/1999/xhtmlnowappliestothehtml

componentitselfandtoanykidcomponents,insofarastheydon’thaveeither

theirownparticularxmlnstraitsornamesthatbeginwithaprefixandcolon.

Page 174: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

14.3XHTMLVersions

Sinceitsbeginning,theXHTMLstandardhasbeenalwaysadvancing.Thereare

threenoteworthyformsbeingusedtoday:

XHTML1.0

XHTML1.0hasthesamecontentsasHTML4.01,howeveritneedstheuseof

XMLsyntax.

XHTML1.1

XHTML1.1isamodule-basedreformattedformofthe1.0discharge.It’sstrict

sinceitutilizesanarrangementofmodulesthatarechosenfromamuchbiggerset

characterizedintheModularizationofXHTML.ThisisaW3Csuggestionthat

givesamodularizationstructure,modulesthathaveastandardsetandvarious

definitionsthatneedtoconformtotheXHTMLenvironment.Anydeplored

elementsofHTML,forexample,presentationalcomponentsandframesets,have

beenexpelledfromthisvariant.Allprogrambasedpresentationiscontrolledby

CascadingTemplates((CSS).Moreover,1.1includesRubymarkupbolster,which

isrequiredforEastAsiandialects.

Page 175: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

14.4CreatingXHTMLwithPHP

ProducingXHTMLfromyourPHPcodeisnotanymoredifficultthanmaking

plainoldHTML(seeExample14.4).

Illustration14.4.MakingaXHTMLrecordfromPHP

<?php

/Asktheprogramifitthinksabouttheapplication/xthml+xmlMIMEsort

/ThisisnecesaryasaresultofIE

if(stristr($_SERVER[“HTTP_ACCEPT”],”application/xhtml+xml”)){

header(‘Content-Type:application/xhtml+xml;charset=utf-8’);

}

else{

header(‘Content-Type:content/html;charset=utf-8’);

}

/Createthearchivesort

$doctype=‘<?xmlversion=”1.0”encoding=”UTF-8”?>’;

$doctype.=‘<!DOCTYPEhtmlPUBLIC“-/W3C//DTDXHTML1.0Strict//EN”‘;

$doctype.=““http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>‘;

/Createtheheading

$head=‘<htmlxmlns=”http://www.w3.org/1999/xhtml”xml:lang=”en”

lang=”en”>’;

$head.=“<head>’;

$head.=“<title>DocumentTypeDeclarationExample</title>’;

$head.=“</head>’;

/Createthebodycontent

$body=“<body>’;

$body.=“<p>Thesubstanceofthepagegoeshere.</p>’;

$body.=“</body>’;

Page 176: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

/Createthefootercontent

$footer=‘</html>’;

/Displayitalltogether

echo$doctype;

echo$head;

echo$body;

echo$footer;

?>

Becausewe’vesecuredXHTML,whichenhancesstandardHTMLandthe

compatibilityofyoursite,we’repreparedtoproceedonwardtoconceptsthatstart

toblendPHPandMySQLprocedurestogether.Inthefollowingchapter,we’ll

discussmodifyingdatabaseobjectsandinformationinMySQLfromwithinPHP.

We’llalsolearnhowtomakedynamicHTMLjoinsthatperformactionson

specificdatafromthedatabase.

Page 177: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

CHAPTER15:MODIFYINGMYSQLOBJECTSANDPHPDATA

Page 178: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

15.1ChangingDatabaseObjectsfromPHP

TheSQLinquirystringremainsthebasicapparatusforgivingdatabase

commands.YoucansimplymakeandmodifydatabaseobjectswithstandardSQL

thatiscalledthesamewayyouexecutequeries.Someofthetimeyou’llneedto

makedatabaseobjectsfromwithinPHP.We’llstartwithmakingatable,whichis

anexampleofmakingobjects.

Page 179: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

15.2ManipulatingTableData

We’vepreviouslymadethebooksandauthorstables,butwehaven’tmadethe

buyerstable.We’llmakeoneusingthePHPshownasapartofExample15.1.

Example15.1.MakingatablefromaPHPpageincreate_table.php

<?php

include(‘db_login.php’);

require_once(“DB.php”);

$connection=DB::connect(

“mysql://$db_username:$db_password@$db_host/$db_database”);

if(!$connection)

{

bitethedust(“Couldnotinterfacewiththedatabase:<br>”.DB::errorMessage(

));

};

$query=‘MakeTABLEbuys(

purchase_idint(11)NOTNULLauto_increment,

DroppingaTable

Illustration15.2dropsthetableyoucreatedfromtheabovecode.

Illustration15.2.Droppingthebuyerstableindrop.php

<?php

require_once(‘db_login.php’);

require_once(‘DB.php’);

$connection=

DB::connect(“mysql://$db_username:$db_password@$db_host/$db_database”);

if(DB::isError($connection)){

passon(“Couldnotassociatewiththedatabase:<br/>”.

DB::errorMessage($connection));

Page 180: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

}

$query=“DROPTABLEbuys”;

$result=$connection->query($query);

if(DB::isError($result)){

die(“Couldnotinquirythedatabase:<br/>”.$query.”

“.DB::errorMessage($result));

}

echo“Tabledroppedeffectively!”;

$connection->disconnect();

?>

Thatworkedincredibly,howeveryou’regoingtorequirethebuystable,sohow

aboutwereproducethetablebycallingthecreate_table.phpcodeinExample13-

1.Sinceyou’remodifyingobjects,there’saprobabilitythatthedatabasewon’tgive

youachancetodowhatyourequestthatitdo,whichistheplacelapsescan

happen.Droppingtablesdangersinformationmisfortune.Beextremelycautious

aboututilizingDROP!

LapsesHappen

Toverifyyouhandlealapselegitimatelysuchasagrammaticalerrorinthe

CREATEstatementthenagain,forthissituation,attemptingtomakeatablethat

asofnowexists—executethecreate_table.phpscriptoncemore.

Expectingthatyourobjectwasmadewithoutalapse,you’regoingtoneedto

controlandaddinformationtoitfromPHP.Hence,nextyou’lladdinformationto

acurrenttableinlightofinformationfromtheclient.

Page 181: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

15.3ManipulatingTableData

Sinceyou’veworkedonexecutingacoupleSQLcommandsthatcontroldatabase

objects,you’repreparedtoworkwiththedatainyourtables.Youwillbeutilizing

thesameSQLcommandsaswhenyoumadethemfromtheMySQLprompt,

however,nowwe’regoingtocoordinateclientinformationinsidePHP.

AddingData

Actually,you’llhavetoaddrowstoyourtablesbecausethatyou’reembedding

newdata.

Toaddabuytoyournewbuyerstable,you’lluseanINSERTstatementinyour

query.Illustration15.3showshowthisisdone.Feelfreetorunexample15.1again

soyouhaveatableinwhichtoinserttheinformation.

Example13.3.UsingapredefinedINSERTstatementasapartofinsert.php

<?php

require_once(‘db_login.php’);

require_once(‘DB.php’);

$connection=

DB::connect(“mysql://$db_username:$db_password@$db_host/$db_database”);

if(DB::isError($connection)){

bitethedust(“Couldnotassociatewiththedatabase:<br/>”.

DB::errorMessage($connection));

}

$query=“EmbedINTObuysVALUES(NULL,’mdavis’,2,NULL)”;

$result=$connection->query($query);

if(DB::isError($result)){

die(“Couldnotinquirythedatabase:<br/>”.$query.”

“.DB::errorMessage($result));

}

echo“Embeddedeffectively!”;

Page 182: PHP: The Ultimate Step by Step guide for beginners on how to learn PHP and MYSQL programming in just 6 hours

$connection->disconnect();

?>

DisplayingResultswithEmbeddedLinks

Youmayneedtogiveyourwebbrowserthecapacitytoclickahyperlinktolaunch

anactivitythatrelatestothepresentrowintheoutcomesfromaquery.Youdo

thisbyincludingURLlinkstotheresultsofthequerywhentheyshowonthe

screen.Thelinkscontainadistinctiveidentifiertotherowandthescriptthat

handlestheactivity.

ThePHPscriptthatisthetargetofthelinkmainlyqueriesthedatabaseinlightof

thedistinctiveidentifierthatwaspassedtoit.Thetypesofactivityyoucando

rangefromformattingorerasingarowtodevelopingdetailsfromarelatedtable,

forexample,writersforbooktitles.


Recommended